Difference between revisions of "Learn Debian Packaging"

add more details to different levels
(add section about unpackaged modules)
(add more details to different levels)
Line 1: Line 1:
We are guiding some learners of [https://camp.fsf.org.in Free Software Camp] to learn Debian Packaging and this page will be used to track the progress of the tasks.
We are guiding some learners of [https://camp.fsf.org.in Free Software Camp] to learn Debian Packaging and this page will be used to track the progress of the tasks.


== Setting up a Debian Sid environment for packaging ==
== Level 0: Setting up a Debian Sid environment for packaging ==


* [https://wiki.debian.org/Packaging/Pre-Requisites Different options for setting up a Debian Sid environment]
* [https://wiki.debian.org/Packaging/Pre-Requisites Different options for setting up a Debian Sid environment]


== Learn basics of Packaging ==
By this time you should be familiar with
# apt source/dget,
# dpkg-source -x,
# dpkg-buildpackage,
# apt build-dep,
# apt-source -b
commands to rebuild an existing debian package from source.
 
== Level 1: Learn basics of Packaging ==


Understand the basic concepts using debmake/dh_make (getting source tarballs, creating source package, building the binary package, making it lintian clean)
Understand the basic concepts using debmake/dh_make (getting source tarballs, creating source package, building the binary package, making it lintian clean)
Line 16: Line 24:
* [https://wiki.debian.org/Javascript/Nodejs/Npm2Deb/Tutorial npm2deb Tutorial on Debian Wiki]
* [https://wiki.debian.org/Javascript/Nodejs/Npm2Deb/Tutorial npm2deb Tutorial on Debian Wiki]


By this time you should know creating lintian clean packages for simple modules and building it in a clean environment like sbuild.
By this time you should know,
# creating lintian clean packages for simple modules and  
# building it in a clean environment like sbuild.  
# You should also know to import a dsc file to a git repo (gbp import-dsc --pristine-tar) and
# push your work to a public git hosting service like salsa.debian.org (git push -u --all --follow-tags)


== Packaging more complicated modules ==
== Level 2: Packaging more complicated modules ==


Once you get a clear picture of packaging a simple module, we can move to the next stage of packaging more complicated modules that will involve things like, modifying some upstream files, removing some files from source tarball, generating some files from source, getting the source tarball from a git commit etc.
Once you get a clear picture of packaging a simple module, we can move to the next stage of packaging more complicated modules that will involve things like, modifying some upstream files, removing some files from source tarball, generating some files from source, getting the source tarball from a git commit etc.
Line 24: Line 36:
* [https://wiki.debian.org/Javascript/Nodejs/Npm2Deb/AdvancedTutorial Advanced tutorial for more complicated modules]
* [https://wiki.debian.org/Javascript/Nodejs/Npm2Deb/AdvancedTutorial Advanced tutorial for more complicated modules]


== Pick an unpackaged but useful module and upload to archive ==
By this time you should know,
# Creating patches with quilt
# Repacking orig.tar and exclude specific files
# Use pkg-js-tools options to build from source files
# Build packages with typescript sources
 
== Level 3: Pick an unpackaged but useful module and upload to archive ==


* [https://git.fosscommunity.in/debian-ruby/TaskTracker/-/issues/175 List of node dependencies for gitlab]
* [https://git.fosscommunity.in/debian-ruby/TaskTracker/-/issues/175 List of node dependencies for gitlab]
By this time you should know,
# How to file ITP
# How to send RFS mails