A working version of checkinstall

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP








up vote
0
down vote

favorite












What's I'm doing:



I'm trying to build a deb package of a compiled version of qt.



Where I'm at:



$ wget http://download.qt.io/official_releases/qt/5.10/5.10.0/single/qt-everywhere-src-5.10.0.tar.xz
$ tar -xf qt-everywhere-src-5.10.0.tar.xz ~/src/qt
$ cd ~/src/qt/qt-everywhere-src-5.10.0
$ ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip qtcharts --skip qtvirtualkeyboard --skip qtdatavis3d --silent --nomake examples --nomake tests
$ make


If I run sudo make install, everything installs fine, but I need a .deb package so that other people in my organization can also install the same binaries without the need to re-compile.



The problematic step:



I've read that the tool I should use is checkinstall. I tried checkinstall with a simple helloworld example and things seemed to be fine. This is the perfect situation and is exactly what I was expecting. However, when I try to install this Qt project, I get errors like so:



$ checkinstall -D --install=no --pkgname=sim-qt --pkgversion=5.10.0 --pkgrelease=0 --pkglicense=LGPL --nodoc
...
/home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/bin/qmake -install qinstall /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/include/QtGui/QDragLeaveEvent /opt/sim-qt/include/QtGui/QDragLeaveEvent
Error copying /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/include/QtGui/QDragLeaveEvent to /opt/sim-qt/include/QtGui/QDragLeaveEvent: Cannot create /opt/sim-qt/include/QtGui/QDragLeaveEvent for output
Makefile:69204: recipe for target 'install_class_headers' failed
make[3]: [install_class_headers] Error 3 (ignored)
...


Identifying the problem:



It sounds like this is an old bug with checkinstall which has existed since at least 2007 (that was the oldest report I could find).



Trying a work-around:



Some people recommended to use --fstrans=no, and when I do that I see that now I can at least install folders, but the files all fail to deploy:



$ checkinstall -D --install=no --pkgname=sim-qt --pkgversion=5.10.0 --pkgrelease=0 --pkglicense=LGPL --nodoc --fstrans=no
...
/home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/bin/qmake -install qinstall /home/stew/src/qt/qt-everywhere-src-5.10.0/qttranslations/translations/qtscript_en.qm /opt/sim-qt/translations/qtscript_en.qm
Error copying /home/stew/src/qt/qt-everywhere-src-5.10.0/qttranslations/translations/qtscript_en.qm to /opt/sim-qt/translations/qtscript_en.qm: Cannot create /opt/sim-qt/translations/qtscript_en.qm for output
Makefile:2841: recipe for target 'install_translations' failed
make[2]: [install_translations] Error 3 (ignored)
...


What's next:



This is where everyone seems to stop. If checkinstall had a cripling bug for 11 years that renders it totally useless, then I would imagine that it wouldn't exist anymore. But it does. So I'm missing the work-around that people seem to be finding. Otherwise, I'm confused on what to do next.



How do people package deb files?



I found this tutorial for ubuntu. But it assumes that you are using Canonical's bzr for a version control system and uses the VCS as part of its operation? I'm not planning to push this package to Ubuntu and so I don't really understand why the instructions also include bzr commit... and stuff.



I also found this tutorial for debain. I like it because it doesn't rely on some strange version control system automatically generating stuff. But it also seems to assume that I have pre-debianized tar.gz source archives and I intend to submit the packages to debian. It also assumes that I don't want to add any parameters to ./configure which is false. I've tried adding common-line parameters to debian/rules in the override_dh_auto_configure section but I can't tell if it's working as everything seems to be failing about 10000 lines before I get my command prompt back.



Here's another tutorial on the subject but this one requires you to have a gpg key, something I am expecting my apt repository to handle when I reprepro the deb package to the apt repo. When running through this solution I also had problems with the build failing. Because it prints out tens of thousands of lines, I can't tell where/why it is failing. Only that dh_auto_clean: make -j10 clean returned exit code 2



Basically, I wanted something exactly like checkinstall, just without a crippling bug that prevents it from actually working. What I am getting is the broken checkinstall, and three alternative methods, all of which will require me to invest my entire week on troubleshooting (I've already spent several days). Is there a way to fix checkinstall, or to have a 2-3 command solution to get from my "make" solution to a .deb solution?



Normally I use cpack to make my deb packages, but since this source uses autoconf, I am a bit stuck with how to proceed.










share|improve this question

























    up vote
    0
    down vote

    favorite












    What's I'm doing:



    I'm trying to build a deb package of a compiled version of qt.



    Where I'm at:



    $ wget http://download.qt.io/official_releases/qt/5.10/5.10.0/single/qt-everywhere-src-5.10.0.tar.xz
    $ tar -xf qt-everywhere-src-5.10.0.tar.xz ~/src/qt
    $ cd ~/src/qt/qt-everywhere-src-5.10.0
    $ ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip qtcharts --skip qtvirtualkeyboard --skip qtdatavis3d --silent --nomake examples --nomake tests
    $ make


    If I run sudo make install, everything installs fine, but I need a .deb package so that other people in my organization can also install the same binaries without the need to re-compile.



    The problematic step:



    I've read that the tool I should use is checkinstall. I tried checkinstall with a simple helloworld example and things seemed to be fine. This is the perfect situation and is exactly what I was expecting. However, when I try to install this Qt project, I get errors like so:



    $ checkinstall -D --install=no --pkgname=sim-qt --pkgversion=5.10.0 --pkgrelease=0 --pkglicense=LGPL --nodoc
    ...
    /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/bin/qmake -install qinstall /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/include/QtGui/QDragLeaveEvent /opt/sim-qt/include/QtGui/QDragLeaveEvent
    Error copying /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/include/QtGui/QDragLeaveEvent to /opt/sim-qt/include/QtGui/QDragLeaveEvent: Cannot create /opt/sim-qt/include/QtGui/QDragLeaveEvent for output
    Makefile:69204: recipe for target 'install_class_headers' failed
    make[3]: [install_class_headers] Error 3 (ignored)
    ...


    Identifying the problem:



    It sounds like this is an old bug with checkinstall which has existed since at least 2007 (that was the oldest report I could find).



    Trying a work-around:



    Some people recommended to use --fstrans=no, and when I do that I see that now I can at least install folders, but the files all fail to deploy:



    $ checkinstall -D --install=no --pkgname=sim-qt --pkgversion=5.10.0 --pkgrelease=0 --pkglicense=LGPL --nodoc --fstrans=no
    ...
    /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/bin/qmake -install qinstall /home/stew/src/qt/qt-everywhere-src-5.10.0/qttranslations/translations/qtscript_en.qm /opt/sim-qt/translations/qtscript_en.qm
    Error copying /home/stew/src/qt/qt-everywhere-src-5.10.0/qttranslations/translations/qtscript_en.qm to /opt/sim-qt/translations/qtscript_en.qm: Cannot create /opt/sim-qt/translations/qtscript_en.qm for output
    Makefile:2841: recipe for target 'install_translations' failed
    make[2]: [install_translations] Error 3 (ignored)
    ...


    What's next:



    This is where everyone seems to stop. If checkinstall had a cripling bug for 11 years that renders it totally useless, then I would imagine that it wouldn't exist anymore. But it does. So I'm missing the work-around that people seem to be finding. Otherwise, I'm confused on what to do next.



    How do people package deb files?



    I found this tutorial for ubuntu. But it assumes that you are using Canonical's bzr for a version control system and uses the VCS as part of its operation? I'm not planning to push this package to Ubuntu and so I don't really understand why the instructions also include bzr commit... and stuff.



    I also found this tutorial for debain. I like it because it doesn't rely on some strange version control system automatically generating stuff. But it also seems to assume that I have pre-debianized tar.gz source archives and I intend to submit the packages to debian. It also assumes that I don't want to add any parameters to ./configure which is false. I've tried adding common-line parameters to debian/rules in the override_dh_auto_configure section but I can't tell if it's working as everything seems to be failing about 10000 lines before I get my command prompt back.



    Here's another tutorial on the subject but this one requires you to have a gpg key, something I am expecting my apt repository to handle when I reprepro the deb package to the apt repo. When running through this solution I also had problems with the build failing. Because it prints out tens of thousands of lines, I can't tell where/why it is failing. Only that dh_auto_clean: make -j10 clean returned exit code 2



    Basically, I wanted something exactly like checkinstall, just without a crippling bug that prevents it from actually working. What I am getting is the broken checkinstall, and three alternative methods, all of which will require me to invest my entire week on troubleshooting (I've already spent several days). Is there a way to fix checkinstall, or to have a 2-3 command solution to get from my "make" solution to a .deb solution?



    Normally I use cpack to make my deb packages, but since this source uses autoconf, I am a bit stuck with how to proceed.










    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      What's I'm doing:



      I'm trying to build a deb package of a compiled version of qt.



      Where I'm at:



      $ wget http://download.qt.io/official_releases/qt/5.10/5.10.0/single/qt-everywhere-src-5.10.0.tar.xz
      $ tar -xf qt-everywhere-src-5.10.0.tar.xz ~/src/qt
      $ cd ~/src/qt/qt-everywhere-src-5.10.0
      $ ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip qtcharts --skip qtvirtualkeyboard --skip qtdatavis3d --silent --nomake examples --nomake tests
      $ make


      If I run sudo make install, everything installs fine, but I need a .deb package so that other people in my organization can also install the same binaries without the need to re-compile.



      The problematic step:



      I've read that the tool I should use is checkinstall. I tried checkinstall with a simple helloworld example and things seemed to be fine. This is the perfect situation and is exactly what I was expecting. However, when I try to install this Qt project, I get errors like so:



      $ checkinstall -D --install=no --pkgname=sim-qt --pkgversion=5.10.0 --pkgrelease=0 --pkglicense=LGPL --nodoc
      ...
      /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/bin/qmake -install qinstall /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/include/QtGui/QDragLeaveEvent /opt/sim-qt/include/QtGui/QDragLeaveEvent
      Error copying /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/include/QtGui/QDragLeaveEvent to /opt/sim-qt/include/QtGui/QDragLeaveEvent: Cannot create /opt/sim-qt/include/QtGui/QDragLeaveEvent for output
      Makefile:69204: recipe for target 'install_class_headers' failed
      make[3]: [install_class_headers] Error 3 (ignored)
      ...


      Identifying the problem:



      It sounds like this is an old bug with checkinstall which has existed since at least 2007 (that was the oldest report I could find).



      Trying a work-around:



      Some people recommended to use --fstrans=no, and when I do that I see that now I can at least install folders, but the files all fail to deploy:



      $ checkinstall -D --install=no --pkgname=sim-qt --pkgversion=5.10.0 --pkgrelease=0 --pkglicense=LGPL --nodoc --fstrans=no
      ...
      /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/bin/qmake -install qinstall /home/stew/src/qt/qt-everywhere-src-5.10.0/qttranslations/translations/qtscript_en.qm /opt/sim-qt/translations/qtscript_en.qm
      Error copying /home/stew/src/qt/qt-everywhere-src-5.10.0/qttranslations/translations/qtscript_en.qm to /opt/sim-qt/translations/qtscript_en.qm: Cannot create /opt/sim-qt/translations/qtscript_en.qm for output
      Makefile:2841: recipe for target 'install_translations' failed
      make[2]: [install_translations] Error 3 (ignored)
      ...


      What's next:



      This is where everyone seems to stop. If checkinstall had a cripling bug for 11 years that renders it totally useless, then I would imagine that it wouldn't exist anymore. But it does. So I'm missing the work-around that people seem to be finding. Otherwise, I'm confused on what to do next.



      How do people package deb files?



      I found this tutorial for ubuntu. But it assumes that you are using Canonical's bzr for a version control system and uses the VCS as part of its operation? I'm not planning to push this package to Ubuntu and so I don't really understand why the instructions also include bzr commit... and stuff.



      I also found this tutorial for debain. I like it because it doesn't rely on some strange version control system automatically generating stuff. But it also seems to assume that I have pre-debianized tar.gz source archives and I intend to submit the packages to debian. It also assumes that I don't want to add any parameters to ./configure which is false. I've tried adding common-line parameters to debian/rules in the override_dh_auto_configure section but I can't tell if it's working as everything seems to be failing about 10000 lines before I get my command prompt back.



      Here's another tutorial on the subject but this one requires you to have a gpg key, something I am expecting my apt repository to handle when I reprepro the deb package to the apt repo. When running through this solution I also had problems with the build failing. Because it prints out tens of thousands of lines, I can't tell where/why it is failing. Only that dh_auto_clean: make -j10 clean returned exit code 2



      Basically, I wanted something exactly like checkinstall, just without a crippling bug that prevents it from actually working. What I am getting is the broken checkinstall, and three alternative methods, all of which will require me to invest my entire week on troubleshooting (I've already spent several days). Is there a way to fix checkinstall, or to have a 2-3 command solution to get from my "make" solution to a .deb solution?



      Normally I use cpack to make my deb packages, but since this source uses autoconf, I am a bit stuck with how to proceed.










      share|improve this question













      What's I'm doing:



      I'm trying to build a deb package of a compiled version of qt.



      Where I'm at:



      $ wget http://download.qt.io/official_releases/qt/5.10/5.10.0/single/qt-everywhere-src-5.10.0.tar.xz
      $ tar -xf qt-everywhere-src-5.10.0.tar.xz ~/src/qt
      $ cd ~/src/qt/qt-everywhere-src-5.10.0
      $ ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip qtcharts --skip qtvirtualkeyboard --skip qtdatavis3d --silent --nomake examples --nomake tests
      $ make


      If I run sudo make install, everything installs fine, but I need a .deb package so that other people in my organization can also install the same binaries without the need to re-compile.



      The problematic step:



      I've read that the tool I should use is checkinstall. I tried checkinstall with a simple helloworld example and things seemed to be fine. This is the perfect situation and is exactly what I was expecting. However, when I try to install this Qt project, I get errors like so:



      $ checkinstall -D --install=no --pkgname=sim-qt --pkgversion=5.10.0 --pkgrelease=0 --pkglicense=LGPL --nodoc
      ...
      /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/bin/qmake -install qinstall /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/include/QtGui/QDragLeaveEvent /opt/sim-qt/include/QtGui/QDragLeaveEvent
      Error copying /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/include/QtGui/QDragLeaveEvent to /opt/sim-qt/include/QtGui/QDragLeaveEvent: Cannot create /opt/sim-qt/include/QtGui/QDragLeaveEvent for output
      Makefile:69204: recipe for target 'install_class_headers' failed
      make[3]: [install_class_headers] Error 3 (ignored)
      ...


      Identifying the problem:



      It sounds like this is an old bug with checkinstall which has existed since at least 2007 (that was the oldest report I could find).



      Trying a work-around:



      Some people recommended to use --fstrans=no, and when I do that I see that now I can at least install folders, but the files all fail to deploy:



      $ checkinstall -D --install=no --pkgname=sim-qt --pkgversion=5.10.0 --pkgrelease=0 --pkglicense=LGPL --nodoc --fstrans=no
      ...
      /home/stew/src/qt/qt-everywhere-src-5.10.0/qtbase/bin/qmake -install qinstall /home/stew/src/qt/qt-everywhere-src-5.10.0/qttranslations/translations/qtscript_en.qm /opt/sim-qt/translations/qtscript_en.qm
      Error copying /home/stew/src/qt/qt-everywhere-src-5.10.0/qttranslations/translations/qtscript_en.qm to /opt/sim-qt/translations/qtscript_en.qm: Cannot create /opt/sim-qt/translations/qtscript_en.qm for output
      Makefile:2841: recipe for target 'install_translations' failed
      make[2]: [install_translations] Error 3 (ignored)
      ...


      What's next:



      This is where everyone seems to stop. If checkinstall had a cripling bug for 11 years that renders it totally useless, then I would imagine that it wouldn't exist anymore. But it does. So I'm missing the work-around that people seem to be finding. Otherwise, I'm confused on what to do next.



      How do people package deb files?



      I found this tutorial for ubuntu. But it assumes that you are using Canonical's bzr for a version control system and uses the VCS as part of its operation? I'm not planning to push this package to Ubuntu and so I don't really understand why the instructions also include bzr commit... and stuff.



      I also found this tutorial for debain. I like it because it doesn't rely on some strange version control system automatically generating stuff. But it also seems to assume that I have pre-debianized tar.gz source archives and I intend to submit the packages to debian. It also assumes that I don't want to add any parameters to ./configure which is false. I've tried adding common-line parameters to debian/rules in the override_dh_auto_configure section but I can't tell if it's working as everything seems to be failing about 10000 lines before I get my command prompt back.



      Here's another tutorial on the subject but this one requires you to have a gpg key, something I am expecting my apt repository to handle when I reprepro the deb package to the apt repo. When running through this solution I also had problems with the build failing. Because it prints out tens of thousands of lines, I can't tell where/why it is failing. Only that dh_auto_clean: make -j10 clean returned exit code 2



      Basically, I wanted something exactly like checkinstall, just without a crippling bug that prevents it from actually working. What I am getting is the broken checkinstall, and three alternative methods, all of which will require me to invest my entire week on troubleshooting (I've already spent several days). Is there a way to fix checkinstall, or to have a 2-3 command solution to get from my "make" solution to a .deb solution?



      Normally I use cpack to make my deb packages, but since this source uses autoconf, I am a bit stuck with how to proceed.







      apt package-management dpkg






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 13 at 15:42









      Stewart

      1276




      1276




















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote



          accepted










          Turns out that checkinstall was actually working. The problem was the project that I was trying to install. checkinstall (like dh_make) sets DESTDIR=some/temp/location during the make install step.



          This project uses qmake, and the Makefile generated by qmake does not understand the DESTDIR directive. Instead INSTALL_ROOT was required.



          I ended up using dh_make and hard-coded override_dh_auto_install to set INSTALL_ROOT manually instead of DESTDIR.



          The dh_make command generates rules files needed to configure, build, install, and package the project.



          After running dh_make, edit the newly generated debian/rules file to look like this:



          #!/usr/bin/make -f
          %:
          dh $@ --with autotools-dev --parallel
          override_dh_auto_configure:
          ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip=qtcharts --skip=qtvirtualkeyboard --skip=qtdatavis3d --skip=qtwebengine --silent --nomake=examples --nomake=tests QMAKE_ARGS+=INSTALL_ROOL=/opt/sim-qt QMAKE_ARGS+=DESTDIR=

          override_dh_auto_install:
          dh_auto_install -Smakefile -- INSTALL_ROOT=$(CURDIR)/debian/sim-qt/


          Then configure, build and package with one command:



          fakeroot dpkg-buildpackage -nc -j10 -us -uc





          share|improve this answer




















            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',
            convertImagesToLinks: true,
            noModals: false,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            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%2f1014619%2fa-working-version-of-checkinstall%23new-answer', 'question_page');

            );

            Post as a guest






























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote



            accepted










            Turns out that checkinstall was actually working. The problem was the project that I was trying to install. checkinstall (like dh_make) sets DESTDIR=some/temp/location during the make install step.



            This project uses qmake, and the Makefile generated by qmake does not understand the DESTDIR directive. Instead INSTALL_ROOT was required.



            I ended up using dh_make and hard-coded override_dh_auto_install to set INSTALL_ROOT manually instead of DESTDIR.



            The dh_make command generates rules files needed to configure, build, install, and package the project.



            After running dh_make, edit the newly generated debian/rules file to look like this:



            #!/usr/bin/make -f
            %:
            dh $@ --with autotools-dev --parallel
            override_dh_auto_configure:
            ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip=qtcharts --skip=qtvirtualkeyboard --skip=qtdatavis3d --skip=qtwebengine --silent --nomake=examples --nomake=tests QMAKE_ARGS+=INSTALL_ROOL=/opt/sim-qt QMAKE_ARGS+=DESTDIR=

            override_dh_auto_install:
            dh_auto_install -Smakefile -- INSTALL_ROOT=$(CURDIR)/debian/sim-qt/


            Then configure, build and package with one command:



            fakeroot dpkg-buildpackage -nc -j10 -us -uc





            share|improve this answer
























              up vote
              0
              down vote



              accepted










              Turns out that checkinstall was actually working. The problem was the project that I was trying to install. checkinstall (like dh_make) sets DESTDIR=some/temp/location during the make install step.



              This project uses qmake, and the Makefile generated by qmake does not understand the DESTDIR directive. Instead INSTALL_ROOT was required.



              I ended up using dh_make and hard-coded override_dh_auto_install to set INSTALL_ROOT manually instead of DESTDIR.



              The dh_make command generates rules files needed to configure, build, install, and package the project.



              After running dh_make, edit the newly generated debian/rules file to look like this:



              #!/usr/bin/make -f
              %:
              dh $@ --with autotools-dev --parallel
              override_dh_auto_configure:
              ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip=qtcharts --skip=qtvirtualkeyboard --skip=qtdatavis3d --skip=qtwebengine --silent --nomake=examples --nomake=tests QMAKE_ARGS+=INSTALL_ROOL=/opt/sim-qt QMAKE_ARGS+=DESTDIR=

              override_dh_auto_install:
              dh_auto_install -Smakefile -- INSTALL_ROOT=$(CURDIR)/debian/sim-qt/


              Then configure, build and package with one command:



              fakeroot dpkg-buildpackage -nc -j10 -us -uc





              share|improve this answer






















                up vote
                0
                down vote



                accepted







                up vote
                0
                down vote



                accepted






                Turns out that checkinstall was actually working. The problem was the project that I was trying to install. checkinstall (like dh_make) sets DESTDIR=some/temp/location during the make install step.



                This project uses qmake, and the Makefile generated by qmake does not understand the DESTDIR directive. Instead INSTALL_ROOT was required.



                I ended up using dh_make and hard-coded override_dh_auto_install to set INSTALL_ROOT manually instead of DESTDIR.



                The dh_make command generates rules files needed to configure, build, install, and package the project.



                After running dh_make, edit the newly generated debian/rules file to look like this:



                #!/usr/bin/make -f
                %:
                dh $@ --with autotools-dev --parallel
                override_dh_auto_configure:
                ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip=qtcharts --skip=qtvirtualkeyboard --skip=qtdatavis3d --skip=qtwebengine --silent --nomake=examples --nomake=tests QMAKE_ARGS+=INSTALL_ROOL=/opt/sim-qt QMAKE_ARGS+=DESTDIR=

                override_dh_auto_install:
                dh_auto_install -Smakefile -- INSTALL_ROOT=$(CURDIR)/debian/sim-qt/


                Then configure, build and package with one command:



                fakeroot dpkg-buildpackage -nc -j10 -us -uc





                share|improve this answer












                Turns out that checkinstall was actually working. The problem was the project that I was trying to install. checkinstall (like dh_make) sets DESTDIR=some/temp/location during the make install step.



                This project uses qmake, and the Makefile generated by qmake does not understand the DESTDIR directive. Instead INSTALL_ROOT was required.



                I ended up using dh_make and hard-coded override_dh_auto_install to set INSTALL_ROOT manually instead of DESTDIR.



                The dh_make command generates rules files needed to configure, build, install, and package the project.



                After running dh_make, edit the newly generated debian/rules file to look like this:



                #!/usr/bin/make -f
                %:
                dh $@ --with autotools-dev --parallel
                override_dh_auto_configure:
                ./configure --prefix=/opt/sim-qt --opensource --confirm-license --skip=qtcharts --skip=qtvirtualkeyboard --skip=qtdatavis3d --skip=qtwebengine --silent --nomake=examples --nomake=tests QMAKE_ARGS+=INSTALL_ROOL=/opt/sim-qt QMAKE_ARGS+=DESTDIR=

                override_dh_auto_install:
                dh_auto_install -Smakefile -- INSTALL_ROOT=$(CURDIR)/debian/sim-qt/


                Then configure, build and package with one command:



                fakeroot dpkg-buildpackage -nc -j10 -us -uc






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 20 at 11:17









                Stewart

                1276




                1276



























                     

                    draft saved


                    draft discarded















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1014619%2fa-working-version-of-checkinstall%23new-answer', 'question_page');

                    );

                    Post as a guest













































































                    Popular posts from this blog

                    Which professions warranted travel in Medieval times?

                    How do so many people here on Academia.SE, and in general, afford lavish higher education programs?

                    Trouble downloading packages list due to a “Hash sum mismatch” error