How to compile in release mode?


(Gabriel A López López) #1

Hi! Everytime time I compile and install a LxQt app this is the ouput:

… [ 80%] Automatic MOC for target qtxdg-mat [ 80%] Built target qtxdg-mat_autogen [100%] Built target qtxdg-mat Install the project… – Install configuration: "debug" – Up-to-date: /usr/local/lib/pkgconfig/Qt5Xdg.pc – Up-to-date: /usr/local/lib/pkgconfig/Qt5XdgIconLoader.pc – Up-to-date: /usr/local/share/cmake/qt5xdg/qt5xdg-config.cmake …

Is this “debug” normal? Shouldn’t be release? Thanks in advance!


(Alf Gaida) #2

It is not normal - don’t know how you compile your things, anyways, you do it wrong :stuck_out_tongue:

Maybe a bit more information:

  • the release type will be set in LXQtCompilerOptions (lxqt-build-tools) - if nothing is set, it will be set to Release
  • depending on your distribution use the distribution packaging and tools instead of pure cmake - it is unlikely that you make a better job than the regulars
  • if using cmake - please set at least things like the install dirs right - /usr/local/bin will lead sooner or later to a funny build experience :D+

(Gabriel A López López) #3

:joy::joy::joy:

ok, I go to the project and:

mkdir build
cd build
cmake ..
make
sudo make install

lubuntu 19.04


(Gabriel A López López) #4

I prefer compiling and testing the latest. This solved some errors in my current lxqt environment


(Gabriel A López López) #5

because of this I have to apt remove my lxqt packages installed from repositories. If not they keep precendence in $PATH


(Gabriel A López López) #6

I’m going to check this and tell you. The steps I posted before and done in a fresh cloned lxqt github repo


(Pedram Pourang) #7

@glpzzz As a developer I always do that but I first make installable packages and then install them.

If you install something directly from the source, without making a package for your distro (dep package for Debian and its derivatives, for example), your package manager won’t know about it and that could cause various and serious troubles later. OK, one or two direct installations may not create a hassle but more than that will.


(Alf Gaida) #8

And here also a loud DAMN - whith the explanation following:

  • Go***mn, just use the $fword distribution tools - no matter which distribution you use
  • Go***mn, just use the $fword distribution packaging
  • Go***mn, do the whole shit in a clean environment :smiley:

One could try in in a current Ubuntu or Debian machine:

nano /etc/apt/sources.list (or sources.list.d/$foo)   # uncomment deb-src entries
apt update
apt install debhelper devscripts git lxqt-build-tools # all one need for a start™

mkdir work; cd work
apt source $package
apt build-dep $package
cd $sourcedir
dch        # make your own new version
dch -r     # and release it
debuild -j$NoOfJobs (for binary builds)
# if all things go well:
sudo apt install ../*deb

Done - this is the workflow for building and installing things the Debian or Ubuntu way

An you might guess it, there is a branch in debian’s salsa which is called èxperimental-snapshots - will work on a current Ubuntu too. Will be a different beast.

Edit: just leaved out the clean environment thing - one can use launchpad or pbuilder or sbuild or cowbuilder etc :smiley: Just don’t try to be clever and reinvent the wheel - one will fail the first years miserable :wink:


(Alf Gaida) #9

Btw - that are the packages i run - using more or less default debian tools. So running latest sources has nothing to do with anything else than knowledge and some stubborness - and to much spare time. The only packages directly from debian are the branding and libqtxdg - qtxdg has a reason, i uploaded it yesterday into sid, so it is leading.

agaida@ramme ~ % dpkg -l | egrep 'pcmanfm|lxqt|qtxdg' 
ii  libfm-qt-dev                                  0.14.2~103-g99b36d7-1                        amd64        file management support library for pcmanfm-qt (development files)
ii  libfm-qt6:amd64                               0.14.2~103-g99b36d7-1                        amd64        file management support for pcmanfm-qt
ii  liblxqt-globalkeys-ui0:amd64                  0.14.3-1                                     amd64        daemon used to register global keyboard shortcuts (ui files)
ii  liblxqt-globalkeys-ui0-dev                    0.14.3-1                                     amd64        daemon used to register global keyboard shortcuts (ui dev files)
ii  liblxqt-globalkeys0:amd64                     0.14.3-1                                     amd64        daemon used to register global keyboard shortcuts (shared libs)
ii  liblxqt-globalkeys0-dev                       0.14.3-1                                     amd64        daemon used to register global keyboard shortcuts (dev files)
ii  liblxqt-l10n                                  0.14.2~30-g06ab510-1                         all          Language package for liblxqt
ii  liblxqt0                                      0.14.2~30-g06ab510-1                         amd64        Shared libraries for LXQt desktop environment (libs)
ii  liblxqt0-dbgsym                               0.14.2~30-g06ab510-1                         amd64        debug symbols for liblxqt0
ii  liblxqt0-dev                                  0.14.2~30-g06ab510-1                         amd64        Shared libraries for LXQt desktop environment (dev)
ii  libqt5xdg-dev                                 3.4.0-1                                      amd64        Development files for libqtxdg
ii  libqt5xdgiconloader-dev                       3.4.0-1                                      amd64        Development files for libqtxdgiconloader
ii  lxqt:amd64                                    29                                           amd64        Metapackage for LXQt
ii  lxqt-about                                    0.14.2~35-g7be3d03-1                         amd64        About screen for LXQt
ii  lxqt-about-dbgsym                             0.14.2~35-g7be3d03-1                         amd64        debug symbols for lxqt-about
ii  lxqt-about-l10n                               0.14.2~35-g7be3d03-1                         all          Language package for lxqt-about
ii  lxqt-admin                                    0.14.2~18-g43650c9-1                         amd64        Admin tools for LXQt
ii  lxqt-admin-dbgsym                             0.14.2~18-g43650c9-1                         amd64        debug symbols for lxqt-admin
ii  lxqt-admin-l10n                               0.14.2~18-g43650c9-1                         all          Language package for lxqt-admin
ii  lxqt-archiver                                 0.0.97~140-gb7a44f6-1                        amd64        Archiv Manager for LXQt
ii  lxqt-archiver-l10n                            0.0.97~140-gb7a44f6-1                        all          Language package for lxqt-archiver
ii  lxqt-branding-debian                          0.14.0.3                                     all          Debian branding for LXQt
ii  lxqt-build-tools                              0.7.0~5-gf9c7700-1                           all          Build tools for the LXQt desktop environment
ii  lxqt-config                                   0.14.2~159-g044c33e-1                        amd64        LXQt system settings center
ii  lxqt-config-dbgsym                            0.14.2~159-g044c33e-1                        amd64        debug symbols for lxqt-config
ii  lxqt-config-l10n                              0.14.2~159-g044c33e-1                        all          Language package for lxqt-config
ii  lxqt-core                                     29                                           all          Metapackage for the LXQt core
ii  lxqt-globalkeys                               0.14.3-1                                     amd64        daemon used to register global keyboard shortcuts (appl.)
ii  lxqt-globalkeys-l10n                          0.14.3-1                                     all          Language package for lxqt-globalkeys
ii  lxqt-kcm                                      0.0.1-1                                      all          Metaoackage for LXQt KCM integration
ii  lxqt-kcm-appearance                           0.0.1-1                                      all          LXQt KCM appearance integration
ii  lxqt-kcm-bluetooth                            0.0.1-1                                      all          LXQt KCM bluetooth integration
rc  lxqt-kcm-colors-style                         0.1.0-1                                      amd64        Color and Style KCMs
ii  lxqt-kcm-kwin                                 0.0.1-1                                      all          LXQt KCM integration for kwin
ii  lxqt-kcm-sysinfo                              0.0.1-1                                      all          LXQt KCM sysinfo integration
ii  lxqt-notificationd                            0.14.2~39-g3102403-1                         amd64        LXQt notification daemon
ii  lxqt-notificationd-dbgsym                     0.14.2~39-g3102403-1                         amd64        debug symbols for lxqt-notificationd
ii  lxqt-notificationd-l10n                       0.14.2~39-g3102403-1                         all          Language package for lxqt-notificationd
ii  lxqt-openssh-askpass                          0.14.2~9-g8cb5987-1                          amd64        OpenSSH user/password GUI dialog for LXQt
ii  lxqt-openssh-askpass-l10n                     0.14.2~9-g8cb5987-1                          all          Language package for lxqt-openssh-askpass
ii  lxqt-organizer                                0.1.0-1                                      amd64        Simple LXQt PIM
ii  lxqt-organizer-dbgsym                         0.1.0-1                                      amd64        debug symbols for lxqt-organizer
ii  lxqt-panel                                    0.14.2~269-g296ff560-1                       amd64        LXQt desktop panel
ii  lxqt-panel-dbgsym                             0.14.2~269-g296ff560-1                       amd64        debug symbols for lxqt-panel
ii  lxqt-panel-l10n                               0.14.2~269-g296ff560-1                       all          Language package for lxqt-panel
ii  lxqt-policykit                                0.14.1-1                                     amd64        LXQt authentication agent for PolicyKit
ii  lxqt-policykit-l10n                           0.14.1-1                                     all          Language package for lxqt-policykit
ii  lxqt-powermanagement                          0.14.2~33-gf4d5ab4-1                         amd64        power management module for LXQt
ii  lxqt-powermanagement-l10n                     0.14.2~33-gf4d5ab4-1                         all          Language package for lxqt-powermanagement
ii  lxqt-qtplugin:amd64                           0.14.1~8-g02a9e71-2                          amd64        LXQt system integration plugin for Qt
ii  lxqt-runner                                   0.14.2~10-gb54e328-1                         amd64        LXQt program launcher
ii  lxqt-runner-dbgsym                            0.14.2~10-gb54e328-1                         amd64        debug symbols for lxqt-runner
ii  lxqt-runner-l10n                              0.14.2~10-gb54e328-1                         all          Language package for lxqt-runner
ii  lxqt-session                                  0.14.2~41-g180f291-1                         amd64        session manager component for LXQt
ii  lxqt-session-dbgsym                           0.14.2~41-g180f291-1                         amd64        debug symbols for lxqt-session
ii  lxqt-session-l10n                             0.14.2~41-g180f291-1                         all          Language package for lxqt-session
ii  lxqt-sudo                                     0.14.2~33-gcc12337-1                         amd64        Graphical QT frontend for plain sudo
ii  lxqt-sudo-dbgsym                              0.14.2~33-gcc12337-1                         amd64        debug symbols for lxqt-sudo
ii  lxqt-sudo-l10n                                0.14.2~33-gcc12337-1                         all          Language package for lxqt-sudo
ii  lxqt-system-theme                             0.14.0-1                                     all          System theme for LXQt
ii  lxqt-theme-debian                             0.14.0.3                                     all          Debian theme for LXQt
ii  lxqt-themes                                   0.14.0-1                                     all          Themes for LXQt
ii  paintitblack-lxqt-artwork                     2018.4.0~5                                   all          LXQt theme for PaintItBlack
ii  patience-lxqt-artwork                         2018.4.0~3                                   all          LXQt theme for Patience
ii  patience-lxqt-settings                        2018.4.0~3                                   all          LXQt settings in installed mode
ii  pcmanfm-qt                                    0.14.2~76-g492fee0-1                         amd64        extremely fast and lightweight file and desktop icon manager
ii  pcmanfm-qt-dbgsym                             0.14.2~76-g492fee0-1                         amd64        debug symbols for pcmanfm-qt
ii  pcmanfm-qt-l10n                               0.14.2~76-g492fee0-1                         all          Language package for pcmanfm-qt
ii  pkg-lxqt-archive-keyring                      2016.02.27                                   all          GnuPG archive keys of the lxqt-snapshots archive
ii  qtxdg-dev-tools                               3.4.0-1                                      amd64        Tools for QtXdg

(Gabriel A López López) #10

Or just wanting to learn…

The lxqt included in Lubuntu 19.04 have a few (weird for me) behaviors (I don’t want to say bugs because nothing exploded) that were fixed by compiling the latest source.


(Gabriel A López López) #11

Good to know. Thanks!


(Alf Gaida) #12

First answer was the general way for released software - now part two: Building from git

To build i suggest lxqt-build-tools (experimental-snapshots) - there is a binary (little script) included:

So the advise is: Just clone the repo and run git snapshot in the repo root - after that a simple ‘debuild’ should build the package

Next step apt install ../*deb. Done.