How can I remove a prefix from {latest-tag} in a Launchpad recipe?












3















I have a Launchpad recipe that looks like this:



# git-build-recipe format 0.4 deb-version {latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}
lp:kvantum master
nest packaging lp:~krisives/kvantum/+git/kvantum-packaging debian master


However, the upstream prefixes the version numbers with a V which causes the packaging process to complain that versions must begin with a number. The author wants to keep his V prefixed tag names.



Other than manually modifying the changelog in my packaging repository is there a way to have the recipe automatically use the {latest-tag} without breaking the build process?










share|improve this question



























    3















    I have a Launchpad recipe that looks like this:



    # git-build-recipe format 0.4 deb-version {latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}
    lp:kvantum master
    nest packaging lp:~krisives/kvantum/+git/kvantum-packaging debian master


    However, the upstream prefixes the version numbers with a V which causes the packaging process to complain that versions must begin with a number. The author wants to keep his V prefixed tag names.



    Other than manually modifying the changelog in my packaging repository is there a way to have the recipe automatically use the {latest-tag} without breaking the build process?










    share|improve this question

























      3












      3








      3








      I have a Launchpad recipe that looks like this:



      # git-build-recipe format 0.4 deb-version {latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}
      lp:kvantum master
      nest packaging lp:~krisives/kvantum/+git/kvantum-packaging debian master


      However, the upstream prefixes the version numbers with a V which causes the packaging process to complain that versions must begin with a number. The author wants to keep his V prefixed tag names.



      Other than manually modifying the changelog in my packaging repository is there a way to have the recipe automatically use the {latest-tag} without breaking the build process?










      share|improve this question














      I have a Launchpad recipe that looks like this:



      # git-build-recipe format 0.4 deb-version {latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}
      lp:kvantum master
      nest packaging lp:~krisives/kvantum/+git/kvantum-packaging debian master


      However, the upstream prefixes the version numbers with a V which causes the packaging process to complain that versions must begin with a number. The author wants to keep his V prefixed tag names.



      Other than manually modifying the changelog in my packaging repository is there a way to have the recipe automatically use the {latest-tag} without breaking the build process?







      ppa packaging launchpad recipe






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 10 '18 at 17:14









      Kristopher IvesKristopher Ives

      1,89011016




      1,89011016






















          1 Answer
          1






          active

          oldest

          votes


















          2





          +500









          One workaround is to simply make sure that the upstream version part of your package version does start with a digit by inserting one. For example, you could use:



          # git-build-recipe format 0.4 deb-version 0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}


          Note that this will compare lower than anything you might have already published with your current expansion, however, since for example 0V1 sorts after V1. If you must, you could use an epoch (eg. 1:0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging} to ensure it sorts higher than anything published previously, but this bump is not reversible and so should be avoided if at all possible.



          For further information:




          • You can find an explanation of how packaging version strings work in
            section 5.6.1.2 of Debian
            policy.


          • You can find the exact implementation of the variable expansions by starting with
            the source of the git-build-recipe
            package.


          • See the documentation of how recipes
            work,
            including details on the variable
            expansions.
            Note though that this documentation is really for bzr-based recipes,
            and the implementation for git is merely documented as "similar"
            (there's a bug open on
            this).


          • You can test package version string comparisons with dpkg --compare-versions, for example dpkg --compare-versions 0V1 gt V1 && echo true || echo false. See dpkg(1) for details.



          I don't see any option in the documentation to do anything with the "latest upstream tag" apart from to embed it in your final version string, nor any other way to grab the upstream version if the tag is the only place upstream declare it. Therefore I think my workaround, or something like it, is your only option at the moment, but we can see if anyone else has any other answers.



          If the workaround is not acceptable to you, bug reports against git-build-recipe are welcome including for feature requests to cover new use cases such as this. I can't speak for what the answer will be as to what enhancements would be suitable in general, though. An enhancement to provide a regexp-based substitution inside an expansion might be possible, for example, but would probably need to be implemented in a way that ensures that malicious code cannot be executed on the host running git-build-recipe in the face of an untrusted recipe input. It would probably be best to find agreement in a bug first, before attempting to implement such a feature enhancement.






          share|improve this answer
























          • Thanks. Do you know if it's possible to run something in debian/rules like sed to replace the version of the debian/changelog and how that might affect the final deb version of a git-build-recipe?

            – Kristopher Ives
            Dec 13 '18 at 19:36











          • It might work as a hack. Binary package versions don't have to match the source package version so you could arrange in debian/rules for at least the binary versions to end up using exactly what you want using sed or other tooling. However this won't help with the source package version, unless Launchpad's pipeline doesn't care that the source package that went in mismatches the source package that came out (which might well be the case). So try it and see! You'll need to ensure that the source package version uploaded to the PPA does change, since otherwise the next upload will be rejected.

            – Robie Basak
            Dec 13 '18 at 21:57











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "89"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1099844%2fhow-can-i-remove-a-prefix-from-latest-tag-in-a-launchpad-recipe%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          2





          +500









          One workaround is to simply make sure that the upstream version part of your package version does start with a digit by inserting one. For example, you could use:



          # git-build-recipe format 0.4 deb-version 0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}


          Note that this will compare lower than anything you might have already published with your current expansion, however, since for example 0V1 sorts after V1. If you must, you could use an epoch (eg. 1:0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging} to ensure it sorts higher than anything published previously, but this bump is not reversible and so should be avoided if at all possible.



          For further information:




          • You can find an explanation of how packaging version strings work in
            section 5.6.1.2 of Debian
            policy.


          • You can find the exact implementation of the variable expansions by starting with
            the source of the git-build-recipe
            package.


          • See the documentation of how recipes
            work,
            including details on the variable
            expansions.
            Note though that this documentation is really for bzr-based recipes,
            and the implementation for git is merely documented as "similar"
            (there's a bug open on
            this).


          • You can test package version string comparisons with dpkg --compare-versions, for example dpkg --compare-versions 0V1 gt V1 && echo true || echo false. See dpkg(1) for details.



          I don't see any option in the documentation to do anything with the "latest upstream tag" apart from to embed it in your final version string, nor any other way to grab the upstream version if the tag is the only place upstream declare it. Therefore I think my workaround, or something like it, is your only option at the moment, but we can see if anyone else has any other answers.



          If the workaround is not acceptable to you, bug reports against git-build-recipe are welcome including for feature requests to cover new use cases such as this. I can't speak for what the answer will be as to what enhancements would be suitable in general, though. An enhancement to provide a regexp-based substitution inside an expansion might be possible, for example, but would probably need to be implemented in a way that ensures that malicious code cannot be executed on the host running git-build-recipe in the face of an untrusted recipe input. It would probably be best to find agreement in a bug first, before attempting to implement such a feature enhancement.






          share|improve this answer
























          • Thanks. Do you know if it's possible to run something in debian/rules like sed to replace the version of the debian/changelog and how that might affect the final deb version of a git-build-recipe?

            – Kristopher Ives
            Dec 13 '18 at 19:36











          • It might work as a hack. Binary package versions don't have to match the source package version so you could arrange in debian/rules for at least the binary versions to end up using exactly what you want using sed or other tooling. However this won't help with the source package version, unless Launchpad's pipeline doesn't care that the source package that went in mismatches the source package that came out (which might well be the case). So try it and see! You'll need to ensure that the source package version uploaded to the PPA does change, since otherwise the next upload will be rejected.

            – Robie Basak
            Dec 13 '18 at 21:57
















          2





          +500









          One workaround is to simply make sure that the upstream version part of your package version does start with a digit by inserting one. For example, you could use:



          # git-build-recipe format 0.4 deb-version 0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}


          Note that this will compare lower than anything you might have already published with your current expansion, however, since for example 0V1 sorts after V1. If you must, you could use an epoch (eg. 1:0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging} to ensure it sorts higher than anything published previously, but this bump is not reversible and so should be avoided if at all possible.



          For further information:




          • You can find an explanation of how packaging version strings work in
            section 5.6.1.2 of Debian
            policy.


          • You can find the exact implementation of the variable expansions by starting with
            the source of the git-build-recipe
            package.


          • See the documentation of how recipes
            work,
            including details on the variable
            expansions.
            Note though that this documentation is really for bzr-based recipes,
            and the implementation for git is merely documented as "similar"
            (there's a bug open on
            this).


          • You can test package version string comparisons with dpkg --compare-versions, for example dpkg --compare-versions 0V1 gt V1 && echo true || echo false. See dpkg(1) for details.



          I don't see any option in the documentation to do anything with the "latest upstream tag" apart from to embed it in your final version string, nor any other way to grab the upstream version if the tag is the only place upstream declare it. Therefore I think my workaround, or something like it, is your only option at the moment, but we can see if anyone else has any other answers.



          If the workaround is not acceptable to you, bug reports against git-build-recipe are welcome including for feature requests to cover new use cases such as this. I can't speak for what the answer will be as to what enhancements would be suitable in general, though. An enhancement to provide a regexp-based substitution inside an expansion might be possible, for example, but would probably need to be implemented in a way that ensures that malicious code cannot be executed on the host running git-build-recipe in the face of an untrusted recipe input. It would probably be best to find agreement in a bug first, before attempting to implement such a feature enhancement.






          share|improve this answer
























          • Thanks. Do you know if it's possible to run something in debian/rules like sed to replace the version of the debian/changelog and how that might affect the final deb version of a git-build-recipe?

            – Kristopher Ives
            Dec 13 '18 at 19:36











          • It might work as a hack. Binary package versions don't have to match the source package version so you could arrange in debian/rules for at least the binary versions to end up using exactly what you want using sed or other tooling. However this won't help with the source package version, unless Launchpad's pipeline doesn't care that the source package that went in mismatches the source package that came out (which might well be the case). So try it and see! You'll need to ensure that the source package version uploaded to the PPA does change, since otherwise the next upload will be rejected.

            – Robie Basak
            Dec 13 '18 at 21:57














          2





          +500







          2





          +500



          2




          +500





          One workaround is to simply make sure that the upstream version part of your package version does start with a digit by inserting one. For example, you could use:



          # git-build-recipe format 0.4 deb-version 0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}


          Note that this will compare lower than anything you might have already published with your current expansion, however, since for example 0V1 sorts after V1. If you must, you could use an epoch (eg. 1:0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging} to ensure it sorts higher than anything published previously, but this bump is not reversible and so should be avoided if at all possible.



          For further information:




          • You can find an explanation of how packaging version strings work in
            section 5.6.1.2 of Debian
            policy.


          • You can find the exact implementation of the variable expansions by starting with
            the source of the git-build-recipe
            package.


          • See the documentation of how recipes
            work,
            including details on the variable
            expansions.
            Note though that this documentation is really for bzr-based recipes,
            and the implementation for git is merely documented as "similar"
            (there's a bug open on
            this).


          • You can test package version string comparisons with dpkg --compare-versions, for example dpkg --compare-versions 0V1 gt V1 && echo true || echo false. See dpkg(1) for details.



          I don't see any option in the documentation to do anything with the "latest upstream tag" apart from to embed it in your final version string, nor any other way to grab the upstream version if the tag is the only place upstream declare it. Therefore I think my workaround, or something like it, is your only option at the moment, but we can see if anyone else has any other answers.



          If the workaround is not acceptable to you, bug reports against git-build-recipe are welcome including for feature requests to cover new use cases such as this. I can't speak for what the answer will be as to what enhancements would be suitable in general, though. An enhancement to provide a regexp-based substitution inside an expansion might be possible, for example, but would probably need to be implemented in a way that ensures that malicious code cannot be executed on the host running git-build-recipe in the face of an untrusted recipe input. It would probably be best to find agreement in a bug first, before attempting to implement such a feature enhancement.






          share|improve this answer













          One workaround is to simply make sure that the upstream version part of your package version does start with a digit by inserting one. For example, you could use:



          # git-build-recipe format 0.4 deb-version 0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}


          Note that this will compare lower than anything you might have already published with your current expansion, however, since for example 0V1 sorts after V1. If you must, you could use an epoch (eg. 1:0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging} to ensure it sorts higher than anything published previously, but this bump is not reversible and so should be avoided if at all possible.



          For further information:




          • You can find an explanation of how packaging version strings work in
            section 5.6.1.2 of Debian
            policy.


          • You can find the exact implementation of the variable expansions by starting with
            the source of the git-build-recipe
            package.


          • See the documentation of how recipes
            work,
            including details on the variable
            expansions.
            Note though that this documentation is really for bzr-based recipes,
            and the implementation for git is merely documented as "similar"
            (there's a bug open on
            this).


          • You can test package version string comparisons with dpkg --compare-versions, for example dpkg --compare-versions 0V1 gt V1 && echo true || echo false. See dpkg(1) for details.



          I don't see any option in the documentation to do anything with the "latest upstream tag" apart from to embed it in your final version string, nor any other way to grab the upstream version if the tag is the only place upstream declare it. Therefore I think my workaround, or something like it, is your only option at the moment, but we can see if anyone else has any other answers.



          If the workaround is not acceptable to you, bug reports against git-build-recipe are welcome including for feature requests to cover new use cases such as this. I can't speak for what the answer will be as to what enhancements would be suitable in general, though. An enhancement to provide a regexp-based substitution inside an expansion might be possible, for example, but would probably need to be implemented in a way that ensures that malicious code cannot be executed on the host running git-build-recipe in the face of an untrusted recipe input. It would probably be best to find agreement in a bug first, before attempting to implement such a feature enhancement.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Dec 13 '18 at 2:07









          Robie BasakRobie Basak

          12.5k24676




          12.5k24676













          • Thanks. Do you know if it's possible to run something in debian/rules like sed to replace the version of the debian/changelog and how that might affect the final deb version of a git-build-recipe?

            – Kristopher Ives
            Dec 13 '18 at 19:36











          • It might work as a hack. Binary package versions don't have to match the source package version so you could arrange in debian/rules for at least the binary versions to end up using exactly what you want using sed or other tooling. However this won't help with the source package version, unless Launchpad's pipeline doesn't care that the source package that went in mismatches the source package that came out (which might well be the case). So try it and see! You'll need to ensure that the source package version uploaded to the PPA does change, since otherwise the next upload will be rejected.

            – Robie Basak
            Dec 13 '18 at 21:57



















          • Thanks. Do you know if it's possible to run something in debian/rules like sed to replace the version of the debian/changelog and how that might affect the final deb version of a git-build-recipe?

            – Kristopher Ives
            Dec 13 '18 at 19:36











          • It might work as a hack. Binary package versions don't have to match the source package version so you could arrange in debian/rules for at least the binary versions to end up using exactly what you want using sed or other tooling. However this won't help with the source package version, unless Launchpad's pipeline doesn't care that the source package that went in mismatches the source package that came out (which might well be the case). So try it and see! You'll need to ensure that the source package version uploaded to the PPA does change, since otherwise the next upload will be rejected.

            – Robie Basak
            Dec 13 '18 at 21:57

















          Thanks. Do you know if it's possible to run something in debian/rules like sed to replace the version of the debian/changelog and how that might affect the final deb version of a git-build-recipe?

          – Kristopher Ives
          Dec 13 '18 at 19:36





          Thanks. Do you know if it's possible to run something in debian/rules like sed to replace the version of the debian/changelog and how that might affect the final deb version of a git-build-recipe?

          – Kristopher Ives
          Dec 13 '18 at 19:36













          It might work as a hack. Binary package versions don't have to match the source package version so you could arrange in debian/rules for at least the binary versions to end up using exactly what you want using sed or other tooling. However this won't help with the source package version, unless Launchpad's pipeline doesn't care that the source package that went in mismatches the source package that came out (which might well be the case). So try it and see! You'll need to ensure that the source package version uploaded to the PPA does change, since otherwise the next upload will be rejected.

          – Robie Basak
          Dec 13 '18 at 21:57





          It might work as a hack. Binary package versions don't have to match the source package version so you could arrange in debian/rules for at least the binary versions to end up using exactly what you want using sed or other tooling. However this won't help with the source package version, unless Launchpad's pipeline doesn't care that the source package that went in mismatches the source package that came out (which might well be the case). So try it and see! You'll need to ensure that the source package version uploaded to the PPA does change, since otherwise the next upload will be rejected.

          – Robie Basak
          Dec 13 '18 at 21:57


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Ask Ubuntu!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1099844%2fhow-can-i-remove-a-prefix-from-latest-tag-in-a-launchpad-recipe%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to change which sound is reproduced for terminal bell?

          Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

          Can I use Tabulator js library in my java Spring + Thymeleaf project?