foobarwidget / debian-packaging-for-the-modern-developer Goto Github PK
View Code? Open in Web Editor NEWDebian packaging tutorials for the modern developer
Debian packaging tutorials for the modern developer
The main readme says there is 12 tutorials
I only see 5
In recent versions of debhelper, it has become possible to remove the debian/compat
file by replacing it with a Build-Depends: debhelper-compat (= X)
, where X is the number you would have put in debian/compat
(requires debhelper >= 11.3
and X >= 9
). This makes packaging feel a bit more "DRY". :)
The existing method still works and is still supported if you are stuck on older versions of debhelper or need older compat versions than 9.
$ lintian hello_2.0.0-1_all.deb
E: hello: debian-changelog-file-missing
E: hello: no-copyright-file
W: hello: binary-without-manpage usr/bin/hello
How to fix the issue?
Thanks
I tried to follow tutorial 3. I modified the source a bit to have a dependency (on mariadb). Otherwise the same.
Package is built and is ok except dependency not set. I get:
dpkg-gencontrol: warning: Depends field of package hello: substitution variable ${shlibs:Depends} used, but is not defined
Please advise.
Hi and thanks for those tutorials, they helped me a lot.
In Tutorial 3, you forgot the dh_shlibdeps
command in the rules file, wich is supposed to eval the ${shlibs:Depends}
variable.
This is why you get from the output :
dpkg-gencontrol: warning: Depends field of package hello: unknown substitution variable ${shlibs:Depends}
Hi,
Regarding "Debian packages are supposed to be built as root, for reasons that I also do not totally comprehend." in https://raw.githubusercontent.com/phusion/debian-packaging-for-the-modern-developer/master/tutorial-5/README.md. In Debian 10 (buster), it is possible to "opt-out" from the requirement for (fake)root has been removed.
This is done by setting Rules-Requires-Root: no
in debian/control in the source paragraph along with removing any behaviours that require fakeroot or real root.
As for the rationale: Part of the reason for using root when building debs have been to ensure the "owner" and "group" of the files in the deb are recorded as root:root. This was often done with calls to "install -o root -g root ..." which attempted to chown the files to root. The use of (fake)root is still necessary for a few packages in the Debian archive that reason use "static ownership" recorded directly in the deb (as opposed dynamically creating the user at install time and using the postinst
script to reassign ownership of the files/directories).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.