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

                    pylint3 and pip3 broken

                    Missing snmpget and snmpwalk

                    How to enroll fingerprints to Ubuntu 17.10 with VFS491