Difference between revisions of "Learn Debian Packaging"

1,005 bytes added ,  12:46, 5 February 2022
→‎Level 0: Basics of release process and setup a development environment: Mention node-pretty-ms only for build from source
(add more details to different levels)
(→‎Level 0: Basics of release process and setup a development environment: Mention node-pretty-ms only for build from source)
Tags: Mobile edit Mobile web edit
 
(7 intermediate revisions by 2 users not shown)
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.


== Level 0: Setting up a Debian Sid environment for packaging ==
== Level 0: Basics of release process and setup a development environment ==
 
* [http://www.queryadmin.com/2203/how-to-install-a-deb-file-on-debian-linux-via-command-line/ How to Install a .Deb File via Command-Line]
* [https://debian-handbook.info/browse/stable/sect.release-lifecycle.html Lifecycle of a Release]
* [https://raphaelhertzog.com/2010/10/18/understanding-debians-release-process/ Understanding Debian’s release process]
* [https://backports.debian.org/Instructions/ How to install packages from stable-backports]
* [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]
* [https://wiki.debian.org/BuildingTutorial Building existing packages from source] (node-pretty-ms instructions is recent so fdupes example in the tutorial can be skipped)


By this time you should be familiar with  
By this time you should be familiar with  
# apt source/dget,  
# apt source/dget,  
# dpkg-source -x,  
# dpkg-source -x,  
# dpkg-buildpackage,  
# dpkg-buildpackage/debuild,  
# apt build-dep,  
# apt build-dep,  
# apt-source -b  
# apt-source -b  
Line 30: Line 34:
# push your work to a public git hosting service like salsa.debian.org (git push -u --all --follow-tags)
# push your work to a public git hosting service like salsa.debian.org (git push -u --all --follow-tags)


== Level 2: Packaging more complicated modules ==
== Level 2: Update existing packages to new upstream minor or patch versions ==
Once you get a clear picture of packaging a simple module, we can move to the next stage of updating existing packages
 
* [https://wiki.debian.org/UpdatingaPackagetoNewUpstreamVersion Update packages to new upstream version on Debian Wiki]
* [https://wiki.debian.org/UsingQuilt Using Quilt on Debian Wiki]
 
# How to send RFS mails
# Using Quilt to modify upstream source if required
 
== Level 3: 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.
Next step is 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.


* [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]
Line 42: Line 55:
# Build packages with typescript sources
# Build packages with typescript sources


== Level 3: Pick an unpackaged but useful module and upload to archive ==
== Level 4: 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]
Line 48: Line 61:
By this time you should know,
By this time you should know,
# How to file ITP
# How to file ITP
# How to send RFS mails