-
O link mencionado por muru em outra questão é o melhor para começar: link
-
O software comercial de empacotamento é quase o mesmo que o software livre. Apenas algumas diferenças como você vai publicar o pacote binário deb apenas (sem fonte, sem public ppa). Então o pacote Debian construindo quase o mesmo (Se você for construir localmente)
Se você usar
pbuilder
ou qualquer outro auxiliar de compilação, ele executará, por padrão, uma ferramenta de controle de qualidade chamadalintian
. Verifique o log muito bem e você verá algumas mensagens dele.Como você pode re-executar sempre o deb binário final, aqui está um exemplo executado no teamviewer:
$ lintian Downloads/teamviewer_10.0.41499_amd64.deb W: teamviewer: hardening-no-relro opt/teamviewer/tv_bin/RTlib/libQtCore.so.4 W: teamviewer: hardening-no-relro opt/teamviewer/tv_bin/RTlib/libQtGui.so.4 E: teamviewer: embedded-library opt/teamviewer/tv_bin/RTlib/libQtNetwork.so.4: openssl W: teamviewer: hardening-no-relro opt/teamviewer/tv_bin/RTlib/libQtNetwork.so.4 E: teamviewer: embedded-library opt/teamviewer/tv_bin/RTlib/libQtWebKit.so.4: sqlite W: teamviewer: hardening-no-relro ... use --no-tag-display-limit to see all (or pipe to a file/program) E: teamviewer: embedded-library opt/teamviewer/tv_bin/TVGuiDelegate: libjsoncpp E: teamviewer: embedded-library ... use --no-tag-display-limit to see all (or pipe to a file/program) E: teamviewer: statically-linked-binary opt/teamviewer/tv_bin/wine/bin/wine-preloader E: teamviewer: changelog-file-missing-in-native-package E: teamviewer: no-copyright-file E: teamviewer: description-starts-with-package-name W: teamviewer: extended-description-line-too-long W: teamviewer: extended-description-line-too-long W: teamviewer: unknown-section non-free/internet E: teamviewer: dir-or-file-in-opt opt/teamviewer/ E: teamviewer: dir-or-file-in-opt opt/teamviewer/config/ E: teamviewer: dir-or-file-in-opt opt/teamviewer/doc/ E: teamviewer: dir-or-file-in-opt ... use --no-tag-display-limit to see all (or pipe to a file/program) W: teamviewer: extra-license-file opt/teamviewer/doc/License.txt W: teamviewer: extra-license-file opt/teamviewer/tv_bin/wine/COPYING.LIB W: teamviewer: extra-license-file opt/teamviewer/tv_bin/wine/LICENSE W: teamviewer: extra-license-file ... use --no-tag-display-limit to see all (or pipe to a file/program) W: teamviewer: duplicate-font-file opt/teamviewer/tv_bin/wine/share/wine/fonts/marlett.ttf also in fonts-wine-development W: teamviewer: duplicate-font-file opt/teamviewer/tv_bin/wine/share/wine/fonts/symbol.ttf also in fonts-wine-development W: teamviewer: duplicate-font-file opt/teamviewer/tv_bin/wine/share/wine/fonts/tahoma.ttf also in fonts-wine-development W: teamviewer: duplicate-font-file ... use --no-tag-display-limit to see all (or pipe to a file/program) W: teamviewer: file-in-unusual-dir var/log/teamviewer W: teamviewer: binary-without-manpage usr/bin/teamviewer E: teamviewer: maintainer-script-does-not-check-for-existence-of-updatemenus postrm:22 W: teamviewer: postrm-has-useless-call-to-update-menus W: teamviewer: script-not-executable opt/teamviewer/tv_bin/script/tvw_aux W: teamviewer: script-not-executable opt/teamviewer/tv_bin/script/tvw_config W: teamviewer: script-not-executable opt/teamviewer/tv_bin/script/tvw_daemon W: teamviewer: script-not-executable ... use --no-tag-display-limit to see all (or pipe to a file/program) W: teamviewer: executable-not-elf-or-script opt/teamviewer/tv_bin/RTlib/doc/Qt4/TeamViewerNote.txt W: teamviewer: executable-not-elf-or-script opt/teamviewer/tv_bin/RTlib/doc/Qt4/WEBKIT-LICENSE.LGPL W: teamviewer: maintainer-script-ignores-errors postinst W: teamviewer: maintainer-script-ignores-errors postrm W: teamviewer: maintainer-script-ignores-errors preinst W: teamviewer: maintainer-script-ignores-errors ... use --no-tag-display-limit to see all (or pipe to a file/program) E: teamviewer: shlib-with-non-pic-code opt/teamviewer/tv_bin/RTlib/libQtNetwork.so.4 E: teamviewer: shlib-with-executable-bit opt/teamviewer/tv_bin/wine/lib/libwine.so.1.0 0755