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" To: cygwin AT cygwin DOT com Subject: Convert cygwin packages to RPM MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_18565_32151236.1213612192809" Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , 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--