www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/06/16/06:30:34

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <82fa66380806160329j7c6d37d7s25e05be3270d92f3@mail.gmail.com>
Date: Mon, 16 Jun 2008 20:29:52 +1000
From: "SJ Kissane" <skissane AT gmail DOT com>
To: cygwin AT cygwin DOT com
Subject: Convert cygwin packages to RPM
MIME-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

------=_Part_18565_32151236.1213612192809
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi all

I've become interested in making a Cygwin distribution based on RPM.
My main reasons for doing this:
(1) I come from a RHEL/OEL/Fedora background, so I'd rather use yum
than setup.exe
(2) I like the fact that rpm has a proper database of which file owns
which package, so I can
do things like rpm -qf $(which foo), and quickly find out where foo comes from.
I don't see any so-obvious way of doing that with setup.exe

Please find attached cyg2rpm.pl, which converts Cygwin binary packages
into RPMs.
Of course, this is just a hacky first attempt, but it shows where I'm going.

Example of usage:
$ ./cyg2rpm.pl http://mirror.aarnet.edu.au/pub/cygwin/ work

Cheers
Simon

------=_Part_18565_32151236.1213612192809
Content-Type: application/octet-stream; name=cyg2rpm.pl
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fhiwxq6v0
Content-Disposition: attachment; filename=cyg2rpm.pl

IyEvdXNyL2Jpbi9wZXJsIC13CnVzZSBzdHJpY3Q7CnVzZSBMV1A6OlVzZXJB
Z2VudDsKdXNlIERpZ2VzdDo6TUQ1Owp1c2UgRGF0YTo6RHVtcGVyOwp1c2Ug
SU86OkZpbGU7CgojPT09PT09IENvbGxlY3QgQXJndW1lbnRzID09PT09PSMK
ZGllICJ1c2FnZTogY3lnMnJwbS5wbCA8bWlycm9yIFVSTD4gPHdvcmtpbmcg
ZGlyPlxuIgoJaWYgQEFSR1YgIT0gMjsKbXkgJG1pcnJvciA9ICRBUkdWWzBd
OwpteSAkd29yayA9ICRBUkdWWzFdOwokbWlycm9yID1+IHN7LyskfXt9ZzsK
JHdvcmsgPX4gc3svKyR9e31nOwoKIyM9PT09PT0gRmV0Y2ggYSBVUkwgPT09
PT09IwpzdWIgZmV0Y2hfdXJsIHsKCW15ICgkdXJsKSA9IEBfOwoJcHJpbnQg
IkAgRmV0Y2ggJHVybFxuIjsKICAgICAgICBteSAkdWEgPSBMV1A6OlVzZXJB
Z2VudC0+bmV3OwogICAgICAgICR1YS0+YWdlbnQoImN5ZzJycG0iKTsKICAg
ICAgICBteSAkcmVxID0gSFRUUDo6UmVxdWVzdC0+bmV3KEdFVCA9PiAkdXJs
KTsKICAgICAgICBteSAkcmVzID0gJHVhLT5yZXF1ZXN0KCRyZXEpOwogICAg
ICAgIGRpZSAkcmVzLT5zdGF0dXNfbGluZSAuICIgYXQgJHVybFxuIgogICAg
ICAgICAgICAgICAgaWYgISRyZXMtPmlzX3N1Y2Nlc3M7CglyZXR1cm4gJHJl
cy0+Y29udGVudDsKfQoKIz09PT09PSBGZXRjaCBzZXR1cC5pbmkgPT09PT09
IwpzdWIgZmV0Y2hfc2V0dXBfaW5pIHsKCXJldHVybiBmZXRjaF91cmwoIiRt
aXJyb3Ivc2V0dXAuaW5pIik7Cn0KCiM9PT09PT0gUHJvY2VzcyBhIHBhY2th
Z2UgZGVmaW5pdGlvbiA9PT09PT0jCnN1YiBwcm9jZXNzX3BhY2thZ2VfZGVm
IHsKCW15ICgkcGtnKSA9IEBfOwoKCWZvciBteSAka2V5IChrZXlzICUkcGtn
KSB7CgkJaWYgKCRrZXkgPX4gbS9eKC4qOik/KGluc3RhbGx8c291cmNlKSQv
KSB7CgkJCW15ICgkcGF0aCwkc2l6ZSwkbWQ1KSA9IHNwbGl0IC8gLywgJHBr
Zy0+eyRrZXl9LCAzOwoJCQkkcGtnLT57JGtleX0gPSB7J3BhdGgnPT4kcGF0
aCwnc2l6ZSc9PiRzaXplLCdtZDUnPT4kbWQ1fTsKCQl9CgkJZWxzaWYgKCRr
ZXkgPX4gbS9eKHJlcXVpcmVzfGNhdGVnb3J5KSQvKSB7CgkJCSRwa2ctPnsk
a2V5fSA9IFsgc3BsaXQgL1xzKy8sICRwa2ctPnska2V5fSBdOwoJCX0KCQll
bHNpZiAoJGtleSA9fiBtL14oc2Rlc2N8bGRlc2MpJC8pIHsKCQkJJHBrZy0+
eyRrZXl9ID1+IHMvXiIvLzsKCQkJJHBrZy0+eyRrZXl9ID1+IHMvIiQvLzsK
CQl9CgoJCWlmICgka2V5ID1+IG0vOi8pIHsKCQkJIyBGb3Igbm93IHdlIGFy
ZSBkaXNpbnRlcmVzdGVkIGluIGFsdGVybmF0ZSB2ZXJzaW9ucyAoZWcuIHRl
c3QsIHByZXYpCgkJCSMgV2UgbWF5IGNoYW5nZSBvdXIgbWluZCBvbmUgZGF5
CgkJCWRlbGV0ZSAkcGtnLT57JGtleX07CgkJfQoJfQoKCSRwa2ctPntyZXF1
aXJlc30gPSBbXSBpZiAhZGVmaW5lZCAkcGtnLT57cmVxdWlyZXN9OwoJJHBr
Zy0+e3NkZXNjfSA9fiBzL1xuLyAvZyBpZiBkZWZpbmVkICRwa2ctPntzZGVz
Y307Cn0KCiM9PT09PT0gUGFyc2Ugc2V0dXAuaW5pID09PT09IwpzdWIgcGFy
c2Vfc2V0dXBfaW5pIHsKCW15ICgkc2V0dXBfaW5pKSA9IEBfOwoJbXkgJGN1
cnJlbnRfcGFja2FnZSA9ICcnOwoJbXkgJGluX3F1b3RlID0gMDsKCW15ICRw
YWNrYWdlcyA9IHt9OwoJbXkgJGN1cl9wa2cgPSB7fTsKCW15ICRjdXJfa2V5
d29yZCA9ICcnOwoJbXkgJHByZWZpeCA9ICcnOwoJbG9jYWwgKCRfKTsKCWZv
ciAkXyAoc3BsaXQgL1xyP1xuLywgJHNldHVwX2luaSkgewoJCW5leHQgaWYg
bS9eI3xeXHMqJC87CgoJCWlmIChtL15AICguKikkLykgewoJCQkmcHJvY2Vz
c19wYWNrYWdlX2RlZigkY3VyX3BrZyk7CgkJCSRwYWNrYWdlcy0+eyRjdXJy
ZW50X3BhY2thZ2V9ID0gJGN1cl9wa2c7CgkJCSRjdXJyZW50X3BhY2thZ2Ug
PSAkMTsKCQkJJHByZWZpeCA9ICcnOwoJCQkkY3VyX3BrZyA9IHt9OwoJCX0K
CQllbHNpZiAobS9eXFsoLiopXF0kLykgewoJCQkkcHJlZml4ID0gIiQxOiI7
CgkJfQoJCWVsc2lmICghJGluX3F1b3RlKSB7CgkJCWRpZSAiR290OlskX10i
IGlmICFtLzogLzsKCQkJbXkgKCRrZXl3b3JkLCR2YWx1ZSkgPSBzcGxpdCAv
OiAvLCAkXywgMjsKCQkJJGN1cl9rZXl3b3JkID0gJHByZWZpeCAuICRrZXl3
b3JkOwoJCQkkY3VyX3BrZy0+eyRjdXJfa2V5d29yZH0gPSAkdmFsdWU7CgkJ
CSRpbl9xdW90ZSA9IDEgaWYgJHZhbHVlID1+IG0vXlteIl0qIlteIl0qJC87
CgkJCSRjdXJfcGtnLT57JGN1cl9rZXl3b3JkfSAuPSAiXG4iIGlmICRpbl9x
dW90ZTsKCQl9CgkJZWxzZSB7CgkJCSRjdXJfcGtnLT57JGN1cl9rZXl3b3Jk
fSAuPSAkXzsKCQkJJGluX3F1b3RlID0gMCBpZiBtLyIvOwoJCQkkY3VyX3Br
Zy0+eyRjdXJfa2V5d29yZH0gLj0gIlxuIiBpZiAkaW5fcXVvdGU7CgkJfQoJ
fQoJJnByb2Nlc3NfcGFja2FnZV9kZWYoJGN1cl9wa2cpOwoJJHBhY2thZ2Vz
LT57JGN1cnJlbnRfcGFja2FnZX0gPSAkY3VyX3BrZzsKCXJldHVybiAkcGFj
a2FnZXM7Cn0KCiM9PT09PT0gRmV0Y2ggYW5kIHByb2Nlc3Mgc2V0dXAuaW5p
ID09PT09PSMKbXkgJHBhY2thZ2VzID0gcGFyc2Vfc2V0dXBfaW5pKGZldGNo
X3NldHVwX2luaSk7CgojPT09PT09IE1ENSBmaWxlID09PT09PSMKc3ViIG1k
NV9maWxlIHsKCW15ICgkcGF0aCkgPSBAXzsKCW15ICRmaCA9IG5ldyBJTzo6
RmlsZSAibWQ1c3VtICRwYXRofCI7CiAgICAgICAgZGllICJvcGVuKG1kNXN1
bSAkcGF0aHwpOiAkIVxuIiBpZiAhZGVmaW5lZCAkZmg7CglteSAkbCA9IDwk
Zmg+OwoJY2hvbXAgJGw7CglyZXR1cm4gKHNwbGl0IC8gLywgJGwpWzBdOwp9
CgojPT09PT09IFNsdXJwIGZpbGUgPT09PT09IwpzdWIgc2x1cnBfZmlsZSB7
CiAgICAgICAgbXkgKCRwYXRoKSA9IEBfOwogICAgICAgIG15ICRmaCA9IG5l
dyBJTzo6RmlsZSAkcGF0aCwgInIiOwoJZGllICJvcGVuKDwkcGF0aCk6ICQh
XG4iIGlmICFkZWZpbmVkICRmaDsKICAgICAgICBsb2NhbCAoJC8pOwogICAg
ICAgIG15ICRkYXRhID0gPCRmaD47CglyZXR1cm4gJGRhdGE7Cn0KCiM9PT09
PT0gTGVuZ3RoIGZpbGUgPT09PT09IwpzdWIgbGVuZ3RoX2ZpbGUgewoJbXkg
KCRwYXRoKSA9IEBfOwogICAgICAgIG15ICgkZGV2LCRpbm8sJG1vZGUsJG5s
aW5rLCR1aWQsJGdpZCwkcmRldiwkc2l6ZSwKICAgICAgICAgICAgJGF0aW1l
LCRtdGltZSwkY3RpbWUsJGJsa3NpemUsJGJsb2NrcykKICAgICAgICAJPSBz
dGF0KCRwYXRoKTsKCXJldHVybiAkc2l6ZTsKfQoKIz09PT09PSBGZXRjaCBh
IHBhY2thZ2UgPT09PT09IwpzdWIgZmV0Y2hfcGFja2FnZSB7CglteSAoJHBr
Z25hbWUpID0gQF87CglkaWUgIk5vIHN1Y2ggcGFja2FnZTogJHBrZ25hbWVc
biIgaWYgIWRlZmluZWQgJHBhY2thZ2VzLT57JHBrZ25hbWV9OwoJbXkgJHBr
Z2RlZiA9ICRwYWNrYWdlcy0+eyRwa2duYW1lfTsKCglteSAkZGVzdGRpciA9
ICR3b3JrIC4gIi8iIC4gJHBrZ25hbWUgLiAiLSIgLiAkcGtnZGVmLT57dmVy
c2lvbn07CglwcmludCAiLSBEZXN0aW5hdGlvbiBkaXJlY3Rvcnk6ICRkZXN0
ZGlyXG4iOwoJc3lzdGVtKCJta2RpciAtcCAkZGVzdGRpciIpOwoJbXkgJGRl
c3QgPSAiJGRlc3RkaXIvcGFja2FnZS50YXIuYnoyIjsKCW15ICR1cmwgPSAk
bWlycm9yIC4gIi8iIC4gJHBrZ2RlZi0+e2luc3RhbGx9LT57cGF0aH07CgoJ
bXkgJG5lZWRzTmV3ID0gMDsKCglpZiAoIS1lICRkZXN0KSB7ICRuZWVkc05l
dyA9IDE7IH0KCWVsc2UgewoJCW15ICRtZDUgPSBtZDVfZmlsZSgkZGVzdCk7
CgkJbXkgJGxlbmd0aCA9IGxlbmd0aF9maWxlKCRkZXN0KTsKCQlpZiAoJG1k
NSBuZSAkcGtnZGVmLT57aW5zdGFsbH0tPnttZDV9KSB7CgkJCXByaW50ICIq
KiogTUQ1IGZhaWxlZCBmb3IgJHBrZ25hbWUgLSByZXRyaWV2ZSBhZ2FpbiBb
Z290ICRtZDUgZXhwZWN0ICIgLiAkcGtnZGVmLT57aW5zdGFsbH0tPnttZDV9
IC4gIl1cbiI7CgkJCSRuZWVkc05ldyA9IDE7CgkJfQoJCWVsc2lmICgkbGVu
Z3RoICE9ICRwa2dkZWYtPntpbnN0YWxsfS0+e3NpemV9KSB7CgkJCXByaW50
ICIqKiogU2l6ZSBmYWlsZWQgZm9yICRwa2duYW1lIC0gcmV0cmlldmUgYWdh
aW5cbiI7CgkJCSRuZWVkc05ldyA9IDE7CgkJfQoJfQoKCWlmICgkbmVlZHNO
ZXcpIHsKCQlteSAkb3V0ID0gbmV3IElPOjpGaWxlICRkZXN0LCAidyI7CgkJ
ZGllICJvcGVuKD4kZGVzdCk6ICQhXG4iIGlmICFkZWZpbmVkICRvdXQ7CgkJ
JG91dC0+cHJpbnQoZmV0Y2hfdXJsKCR1cmwpKTsKCQkkb3V0LT5jbG9zZTsK
CgkJZGllICJNRDUgZmFpbGVkIGZvciAkcGtnbmFtZVxuIgoJCQlpZiBtZDVf
ZmlsZSgkZGVzdCkgbmUgJHBrZ2RlZi0+e2luc3RhbGx9LT57bWQ1fTsKCQlk
aWUgIlNpemUgZmFpbGVkIGZvciAkcGtnbmFtZVxuIgoJCQlpZiBsZW5ndGhf
ZmlsZSgkZGVzdCkgIT0gJHBrZ2RlZi0+e2luc3RhbGx9LT57c2l6ZX07CQoJ
fQoKCW15IEB2cGFydHMgPSBzcGxpdCAnLScsICRwa2dkZWYtPnt2ZXJzaW9u
fTsKCW15ICRvdmVyID0gam9pbigiXyIsQHZwYXJ0c1swLi4kI3ZwYXJ0cy0x
XSk7CglteSAkb3JlbCA9ICR2cGFydHNbJCN2cGFydHNdOwoKCglzeXN0ZW0o
Im1rZGlyIC1wICRkZXN0ZGlyL2J1aWxkIik7CglteSAkYnJvb3QgPSBgcmVh
bHBhdGggJGRlc3RkaXIvYnVpbGRgOwoJY2hvbXAgJGJyb290OwoKCW15ICRz
cGVjID0gbmV3IElPOjpGaWxlICIkZGVzdGRpci9wYWNrYWdlLnNwZWMiLCAi
dyI7Cgkkc3BlYy0+cHJpbnQoIkJ1aWxkUm9vdDogJGJyb290XG4iKTsKCSRz
cGVjLT5wcmludCgiU3VtbWFyeTogIiAuICRwa2dkZWYtPntzZGVzY30gLiAi
XG4iKTsKCSRzcGVjLT5wcmludCgiTmFtZTogJHBrZ25hbWVcbiIpOwoJJHNw
ZWMtPnByaW50KCJWZXJzaW9uOiAkb3ZlclxuIik7Cgkkc3BlYy0+cHJpbnQo
IlJlbGVhc2U6ICIgLiAkb3JlbCAuICJjeWdcbiIpOwoJJHNwZWMtPnByaW50
KCJQYWNrYWdlcjogY3lnMnJwbVxuIik7Cgkkc3BlYy0+cHJpbnQoIlNvdXJj
ZTogJHVybFxuIik7Cgkkc3BlYy0+cHJpbnQoIkRpc3RyaWJ1dGlvbjogY3ln
MnJwbVxuIik7Cgkkc3BlYy0+cHJpbnQoIlJlcXVpcmVzOiAiIC4gam9pbigi
LCAiLEB7JHBrZ2RlZi0+e3JlcXVpcmVzfX0pIC4gIlxuIikKCQlpZiBAeyRw
a2dkZWYtPntyZXF1aXJlc319ID4gMDsKCSRzcGVjLT5wcmludCgiUHJvdmlk
ZXM6IC9iaW4vc2hcbiIpCgkJaWYgJHBrZ25hbWUgZXEgImJhc2giOwoJJHNw
ZWMtPnByaW50KCJHcm91cDogVW5rbm93blxuIik7Cgkkc3BlYy0+cHJpbnQo
IkxpY2Vuc2U6IFVua25vd25cbiIpOwoJJHNwZWMtPnByaW50KCIlZGVzY3Jp
cHRpb25cbiIpOwoJJHNwZWMtPnByaW50KCRwa2dkZWYtPntsZGVzY30gLiAi
XG4iKQoJCWlmIGRlZmluZWQgJHBrZ2RlZi0+e2xkZXNjfTsKCSRzcGVjLT5w
cmludCgiJWZpbGVzXG4iKTsKCSRzcGVjLT5wcmludCgiJXZlcmlmeShzaXpl
IG1kNSBtb2RlKSAvXG4iKTsKCSRzcGVjLT5wcmludCgiJXBvc3RcbiIpOwoJ
Zm9yIG15ICRmIChnbG9iKCIkYnJvb3QvZXRjL3Bvc3RpbnN0YWxsLyouc2gi
KSkgewoJCW5leHQgaWYgJGYgIX4gbXsvKFteL10rKVwuc2gkfTsKCQkkc3Bl
Yy0+cHJpbnQoIi9ldGMvcG9zdGluc3RhbGwvJDEuc2hcbiIpOwoJCSRzcGVj
LT5wcmludCgibXYgL2V0Yy9wb3N0aW5zdGFsbC8kMS5zaCAvZXRjL3Bvc3Rp
bnN0YWxsLyQxLnNoLmRvbmUiKTsKCX0KCSRzcGVjLT5jbG9zZTsKCQoJbXkg
JHJwbW5hbWUgPSAiJHBrZ25hbWUtJG92ZXItJG9yZWwiIC4gImN5Zy5jeWd3
aW4uaTM4Ni5ycG0iOwoJbXkgJG5lZWRzUnBtID0gMDsKCW15ICRzcGVjX21k
NSA9IG1kNV9maWxlKCIkZGVzdGRpci9wYWNrYWdlLnNwZWMiKTsKCW15ICRh
cmNfbWQ1ID0gbWQ1X2ZpbGUoIiRkZXN0ZGlyL3BhY2thZ2UudGFyLmJ6MiIp
OwoJJG5lZWRzUnBtID0gMSBpZiAhIC1mICIkd29yay9SUE1TLyRycG1uYW1l
IjsKCSRuZWVkc1JwbSA9IDEgaWYgISAtZiAiJGRlc3RkaXIvcnBtY2FjaGUi
OwoKCWlmICghJG5lZWRzUnBtKSB7IAoJCW15ICRycG1fbWQ1ID0gbWQ1X2Zp
bGUoIiR3b3JrL1JQTVMvJHJwbW5hbWUiKTsKCQlteSAkcnBtY2FjaGUgPSBz
bHVycF9maWxlKCIkZGVzdGRpci9ycG1jYWNoZSIpOwoJCSRycG1jYWNoZSA9
fiBzLyhccj9cbikrLy9nOwoJCW15ICgkZXhwZWN0X3JwbSwkZXhwZWN0X3Nw
ZWMsJGV4cGVjdF9hcmMpID0gc3BsaXQoLyAvLCAkcnBtY2FjaGUsIDMpOwoJ
CWlmICgkZXhwZWN0X3JwbSBuZSAkcnBtX21kNSkgeyBwcmludCAiIyBFeHBl
Y3RlZCBSUE0gTUQ1PSRleHBlY3RfcnBtLCBnb3QgTUQ1PSRycG1fbWQ1XG4i
OyAkbmVlZHNScG0gPSAxOyB9CiAgICAgICAgICAgICAgICBpZiAoJGV4cGVj
dF9zcGVjIG5lICRzcGVjX21kNSkgeyBwcmludCAiIyBFeHBlY3RlZCBzcGVj
IE1ENT0kZXhwZWN0X3NwZWMsIGdvdCBNRDU9JHNwZWNfbWQ1XG4iOyAkbmVl
ZHNScG0gPSAxOyB9CiAgICAgICAgICAgICAgICBpZiAoJGV4cGVjdF9hcmMg
bmUgJGFyY19tZDUpIHsgcHJpbnQgIiMgRXhwZWN0ZWQgYXJjaGl2ZSBNRDU9
JGV4cGVjdF9hcmMsIGdvdCBNRDU9JGFyY19tZDVcbiI7ICRuZWVkc1JwbSA9
IDE7IH0KCX0gCgoJaWYgKCRuZWVkc1JwbSkgewoJCXN5c3RlbSgicm0gLXJm
ICRkZXN0ZGlyL2J1aWxkIik7CgkJc3lzdGVtKCJta2RpciAtcCAkZGVzdGRp
ci9idWlsZCIpOwoJCXN5c3RlbSgiY2QgJGRlc3RkaXIvYnVpbGQ7IHRhciB4
anBmIC4uL3BhY2thZ2UudGFyLmJ6MiIpOwoJCXN5c3RlbSgiY2QgJGRlc3Rk
aXI7IHJwbWJ1aWxkIC1iYiBwYWNrYWdlLnNwZWMiKTsKCQlzeXN0ZW0oIm1r
ZGlyIC1wICR3b3JrL1JQTVMiKTsKCQlzeXN0ZW0oIm12IC91c3Ivc3JjL3Jw
bS9SUE1TL2kzODYvJHJwbW5hbWUgJHdvcmsvUlBNUyIpOwoKCQlteSAkcnBt
X21kNSA9IG1kNV9maWxlKCIkd29yay9SUE1TLyRycG1uYW1lIik7CgkJbXkg
JHJwbWNhY2hlID0gbmV3IElPOjpGaWxlICIkZGVzdGRpci9ycG1jYWNoZSIs
ICJ3IjsKCQkkcnBtY2FjaGUtPnByaW50KCIkcnBtX21kNSAkc3BlY19tZDUg
JGFyY19tZDVcbiIpOwoJCSRycG1jYWNoZS0+Y2xvc2U7Cgl9Cn0KCmZvciBt
eSAkcGtnIChrZXlzICUkcGFja2FnZXMpIHsKCW5leHQgaWYgJHBrZyBlcSAi
IjsKCW5leHQgaWYgIWRlZmluZWQgJHBhY2thZ2VzLT57JHBrZ30tPntpbnN0
YWxsfTsKCXByaW50ICIqKiogUHJvY2Vzc2luZyAkcGtnXG4iOwoJZmV0Y2hf
cGFja2FnZSgkcGtnKTsKfQo=


------=_Part_18565_32151236.1213612192809
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
------=_Part_18565_32151236.1213612192809--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019