• First draft of dh-coq

    From julien.puydt@gmail.com@21:1/5 to All on Fri Jun 3 15:40:02 2022
    Hi,

    here is some very preliminary code for dh-coq, which should avoid
    breaking user systems with every upload. Indeed, each time I upload one
    of the libcoq-* packages, it introduces inconsistent assumptions that
    break other packages (none or all depending on the dep graph). The goal
    here is that when I upload a new package, user systems see it will
    break the rest and won't update until they have compatible versions for
    all installed packages.

    The trivial coq.pm should go to
    /usr/share/perl5/Debian/Debhelper/Sequence/, and the less trivial
    dh_coq should be executable and in $PATH.

    After that, it should be possible to take one of the fourteen coq
    packages and:
    - in d/control add ${coq:Depends} to the libcoq-foo package's Depends ;
    - in d/control add ${coq:Provides} to the libcoq-foo package's
    Provides.
    - in d/rules add "coq" to the "dh $@ --with" line.

    It is then expected that the binary libcoq-foo packages contains a new /var/lib/coq/md5sums/libcoq-foo.checksum with a short code ; the dpkg-
    deb -I command should tell you that the package provides libcoq-foo-
    <code> (and the code is the one in the .checksum), and in the depends,
    you should see the libcoq-* your package build-depends on (un-
    checksummed). Now cheat, create /var/lib/coq/md5sum/libcoq-bar.checksum containing 314159, rebuild and (assuming libcoq-bar is indeed one of
    the b-deps) the package should now depend on libcoq-bar-314159.

    What's missing?

    1. I learnt Perl today just to write this code, so it probably needs
    review by a more experience developer ;
    2. it isn't commented (I'll work on it next) ;
    3. it isn't a Debian package yet (I'll work on it next next) ;
    4. it doesn't auto-detect the real deps -- it merely parses d/control's
    B-Deps -- for the moment it's not possible to do better as far as I
    know.

    Comments and suggestions are welcome,

    J.Puydt

    IyEvdXNyL2Jpbi9wZXJsCnVzZSB3YXJuaW5nczsKdXNlIHN0cmljdDsKdXNlIERlYmlhbjo6RGVi aGVscGVyOjpEaF9MaWI7CgppbnNlcnRfYmVmb3JlKCJkaF9nZW5jb250cm9sIiwgImRoX2NvcSIp OwoKMTsK


    IyEvdXNyL2Jpbi9wZXJsIC13Cgp1c2Ugc3RyaWN0OwoKdXNlIERlYmlhbjo6RGViaGVscGVyOjpE aF9MaWI7CnVzZSBEaWdlc3Q6Ok1ENTsKdXNlIERwa2c6OkNvbnRyb2w7CnVzZSBGaWxlOjpGaW5k OwoKaW5pdCgpOwoKdW1hc2sgMDAyMjsKCm15ICRtZDVkaXIgPSAiL3Zhci9saWIvY29xL21kNXN1 bXMiOwpteSAkbWQ1ZXh0ID0gIi5jaGVja3N1bSI7CgpzdWIgaXNfY29xcGFja2FnZQp7CiAgICAo JF8pID0gQF87CiAgICBpZiAoL15saWJjb3EoLiopLW9jYW1sLWRldiQvKSB7CglyZXR1cm4gMDsK ICAgIH07CiAgICBpZiAoL15saWJjb3EoLiopLW9jYW1sJC8pIHsKCXJldHVybiAwOwogICAgfTsK ICAgIGlmICgvXmxpYmNvcSguKikkLykgewoJcmV0dXJuIDE7CiAgICB9OwogICAgcmV0dXJuIDA7 Cn07CgpzdWIgY29tcHV0ZV9jaGVja3N1bQp7CiAgICBteSAoJGZpbGVsaXN0KSA9IEBfOyAKICAg IG15ICRjdHggPSBEaWdlc3Q6Ok1ENS0+bmV3OwogICAgb3BlbiBGTCwgJGZpbGVsaXN0OwogICAg Zm9yZWFjaCAoPEZMPikKICAgIHsKCW9wZW4gRkgsICRfOwoJJGN0eC0+YWRkZmlsZSgqRkgpOwog ICAgfTsKICAgIG15ICRoYXNoID0gJGN0eC0+aGV4ZGlnZXN0KCk7CiAgICAjIG5vdyB3ZSBkbyBs aWtlIGluIG9jYW1sLW1kNXN1bXM6IHNvbWUgYmFzZSAzNiBlbmNvZGluZyBvZiB0aGUgZmlyc3Qg ZGlnaXRzLAogICAgIyBzbyBpdCdzIHNob3J0ZXIKICAgIG15ICRzaWcgPSBoZXgoc3Vic3RyKCRo YXNoLCAwLCA2KSk7CiAgICBteSAkZGlnaXQ7CiAgICBteSBAYWNjdTsKICAgIGZvciAobXkgJGkg PSAwOyAkaSA8IDU7ICRpKyspCiAgICB7CgkkZGlnaXQgPSAkc2lnICUgMzY7Cgkkc2lnID0gJHNp ZyAvIDM2OwoJcHVzaChAYWNjdSwgKGNociAoJGRpZ2l0ICsgKCRkaWdpdCA8IDEwID8gKG9yZCAn MCcpIDogKChvcmQgJ2EnKS0xMCkpKSkpOwogICAgfTsKICAgIHJldHVybiBqb2luICIiLCBAYWNj dTsKfTsKCnZlcmJvc2VfcHJpbnQgIkRldGVjdCBDb3EgcGFja2FnZXMiOwpteSBAY29xX3BhY2th Z2VzOwpmb3JlYWNoIChAeyRkaHtET1BBQ0tBR0VTfX0pIHsKICAgIGlmIChpc19jb3FwYWNrYWdl KCRfKSkgewoJcHVzaChAY29xX3BhY2thZ2VzLCAkXyk7CiAgICB9Owp9OwoKdmVyYm9zZV9wcmlu dCAiQ29tcHV0ZSB0aGUgbGlzdCBvZiB0aGVpciAudm8gZmlsZXMiOwpteSAldm9saXN0Owpmb3Jl YWNoIG15ICRwYWNrYWdlIChAY29xX3BhY2thZ2VzKQp7CiAgICBteSAkdm9saXN0X2ZuID0gImRl Ymlhbi8iLihwa2dleHQgJHBhY2thZ2UpLiJ2b2xpc3QuZGViaGVscGVyIjsKICAgICR2b2xpc3R7 JHBhY2thZ2V9ID0gJHZvbGlzdF9mbjsKICAgICMgcmVtb3ZlIGV4aXN0aW5nIGZpbGUgd2UgY291 bGQgaGF2ZSBidWlsdAogICAgaWYgKCR2b2xpc3RfZm4pCiAgICB7Cgl2ZXJib3NlX3ByaW50KCJc dGZpcnN0IHJlbW92ZSBwcmV2aW91cyAkdm9saXN0X2ZuIik7Cgl1bmxpbmsgJHZvbGlzdF9mbiB1 bmxlc3MgJGRoe05PX0FDVH07CiAgICB9OwogICAgIyBpZiBkZXZlbG9wZXIgcHJvdmlkZWQgYSB2 b2xpc3QgZmlsZSwgdXNlIHRoYXQKICAgIGlmIChwa2dmaWxlKCRwYWNrYWdlLCAidm9saXN0Iikp CiAgICB7CglpZiAoISRkaHtOT19BQ1R9KQoJewoJICAgIG9wZW4oRklOLCAiPCIsIHBrZ2ZpbGUo JHBhY2thZ2UsICJ2b2xpc3QiKSk7CgkgICAgb3BlbihGT1VULCAiPiIsICR2b2xpc3RfZm4pOwoJ ICAgIGZvcmVhY2ggKDxGSU4+KQoJICAgIHsKCQlwcmludCBGT1VUICh0bXBkaXIgJHBhY2thZ2Up LiIvJF9cbiI7CgkgICAgfTsKCSAgICBjbG9zZShGSU4pOwoJICAgIGNsb3NlKEZPVVQpOwoJfTsK ICAgIH0KICAgIGVsc2UgIyBubyBsaXN0IHByb3ZpZGVkLCBhdXRvZGV0ZWN0CiAgICB7CglpZiAo ISRkaHtOT19BQ1R9KQoJewoJICAgIG15IEBzZWFyY2hfcGF0aCA9IHRtcGRpciAkcGFja2FnZTsK CSAgICBvcGVuKFZPTElTVCwgIj4iLCAkdm9saXN0X2ZuKTsKCSAgICBmaW5kIHsKCQknd2FudGVk JyA9PiBzdWIgeyAoLWYgJF8pICYmICgvXC52byQvKQoJCQkJICAgICAgJiYgKHByaW50IFZPTElT VCAkRmlsZTo6RmluZDo6bmFtZS4iXG4iKSB9CgkgICAgfSwgQHNlYXJjaF9wYXRoOwoJICAgIGNs b3NlKFZPTElTVCk7CgkgICAgZG9pdCgnY2F0JywgJHZvbGlzdF9mbikgaWYgJGRoe1ZFUkJPU0V9 OwoJfTsKICAgIH07Cn0KCnZlcmJvc2VfcHJpbnQgIkNvbXB1dGUgdGhlIGNoZWNrc3VtcyBvZiB0 aGUgY29xIHBhY2thZ2VzIjsKbXkgJWNoZWNrc3VtczsKZm9yZWFjaCBteSAkcGFja2FnZSAoQGNv cV9wYWNrYWdlcykKewogICAgbXkgJG1kNXN1bV9mbiA9ICh0bXBkaXIgJHBhY2thZ2UpLiIvJG1k NWRpci8kcGFja2FnZSRtZDVleHQiOwogICAgZG9pdChxdy9ta2RpciAtcC8sIGRpcm5hbWUgJG1k NXN1bV9mbik7CiAgICBteSAkY2hlY2tzdW0gPSBjb21wdXRlX2NoZWNrc3VtKCR2b2xpc3R7JHBh Y2thZ2V9KTsKICAgIG9wZW4gRkgsICI+IiwgJG1kNXN1bV9mbjsKICAgIHByaW50IEZIICRjaGVj a3N1bTsKICAgICRjaGVja3N1bXN7JHBhY2thZ2V9ID0gJGNoZWNrc3VtOwp9OwoKdmVyYm9zZV9w cmludCAiQ29tcHV0ZSBjb3E6RGVwZW5kcycgdmFsdWUiOwpteSBAZGVwczsKbXkgJGNvbnRyb2wg PSBEcGtnOjpDb250cm9sLT5uZXcodHlwZSA9PiBDVFJMX0lORk9fU1JDKTsKaWYgKCRjb250cm9s LT5sb2FkKCdkZWJpYW4vY29udHJvbCcpKQp7CiAgICBmb3IgbXkgJGZpZWxkIChncmVwIC9eQnVp bGQtRGVwZW5kcy8sIGtleXMgJXskY29udHJvbH0pCiAgICB7CglteSAkYnVpbGRkZXBzID0gJGNv bnRyb2wtPnskZmllbGR9OwoJd2hpbGUgKCRidWlsZGRlcHMgPX4gLyhbLWEtel0qKSg/OlssXChd KS9nKQoJewoJICAgIG15ICRkZXAgPSAkMTsKCSAgICBpZiAoaXNfY29xcGFja2FnZSgkZGVwKSkK CSAgICB7CgkJdmVyYm9zZV9wcmludCAkZGVwOwoJCWlmICgtZiAiJG1kNWRpci8kZGVwJG1kNWV4 dCIpCgkJewoJCSAgICBvcGVuIENLLCAiJG1kNWRpci8kZGVwJG1kNWV4dCI7CgkJICAgIG15ICRj aGVja3N1bSA9IDxDSz47CgkJICAgIHB1c2ggQGRlcHMsICIkZGVwLSRjaGVja3N1bSI7CgkJfQoJ CWVsc2UKCQl7CgkJICAgIHB1c2ggQGRlcHMsICRkZXA7CgkJfQoJICAgIH07Cgl9OwogICAgfTsK fTsKbXkgJGRlcHMgPSBqb2luKCcsICcsIEBkZXBzKTsKCnZlcmJvc2VfcHJpbnQgIkV4cG9ydCB0 aGUgc3Vic3ZhcnMiOwpmb3JlYWNoIG15ICRwYWNrYWdlIChAY29xX3BhY2thZ2VzKQp7CiAgICBk ZWxzdWJzdHZhciAkcGFja2FnZSwgImNvcTpQcm92aWRlcyI7CiAgICBkZWxzdWJzdHZhciAkcGFj a2FnZSwgImNvcTpEZXBlbmRzIjsKICAgIGFkZHN1YnN0dmFyICRwYWNrYWdlLCAiY29xOlByb3Zp ZGVzIiwgIiRwYWNrYWdlLSIuJGNoZWNrc3Vtc3skcGFja2FnZX07CiAgICBhZGRzdWJzdHZhciAk cGFja2FnZSwgImNvcTpEZXBlbmRzIiwgIiRkZXBzIjsKfTsK

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)