Note: Currently new registrations are closed, if you want an account Contact us
Difference between revisions of "Learn Debian Packaging"
(create a course outline) |
(→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 |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
We are guiding some learners of [https://camp.fsf.org.in | 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: 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/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 | |||
# apt source/dget, | |||
# dpkg-source -x, | |||
# dpkg-buildpackage/debuild, | |||
# apt build-dep, | |||
# apt-source -b | |||
commands to rebuild an existing debian package from source. | |||
== Learn basics of Packaging == | == 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) | ||
* [https://wiki.abrahamraji.in/simple-packaging-tutorial/ | * [https://wiki.abrahamraji.in/simple-packaging-tutorial/ Abraham Raji's simple packaging tutorial] | ||
* [https://wiki.debian.org/SimplePackagingTutorial | * [https://wiki.debian.org/SimplePackagingTutorial Simple Packaging Tutorial on Debian Wiki] | ||
Once you understand the basic concepts, use npm2deb to automate some of those tasks like getting source tarball, a better debian directory template than the ones created by dh_make/debmake as npm2deb knows more details specific to node modules. You will still have to fix the remaining issues flagged by lintian. | Once you understand the basic concepts, use npm2deb to automate some of those tasks like getting source tarball, a better debian directory template than the ones created by dh_make/debmake as npm2deb knows more details specific to node modules. You will still have to fix the remaining issues flagged by lintian. | ||
* [https://wiki.debian.org/Javascript/Nodejs/Npm2Deb/Tutorial | * [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) | |||
== | == 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] | |||
* [https://wiki.debian.org/Javascript/Nodejs/Npm2Deb/AdvancedTutorial | # How to send RFS mails | ||
# Using Quilt to modify upstream source if required | |||
== Level 3: Packaging more complicated modules == | |||
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] | |||
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 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] | |||
By this time you should know, | |||
# How to file ITP |
Latest revision as of 12:46, 5 February 2022
We are guiding some learners of Free Software Camp to learn Debian Packaging and this page will be used to track the progress of the tasks.
Level 0: Basics of release process and setup a development environment
- How to Install a .Deb File via Command-Line
- Lifecycle of a Release
- Understanding Debian’s release process
- How to install packages from stable-backports
- Different options for setting up a Debian Sid environment
- 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
- apt source/dget,
- dpkg-source -x,
- dpkg-buildpackage/debuild,
- 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)
Once you understand the basic concepts, use npm2deb to automate some of those tasks like getting source tarball, a better debian directory template than the ones created by dh_make/debmake as npm2deb knows more details specific to node modules. You will still have to fix the remaining issues flagged by lintian.
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)
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
- How to send RFS mails
- Using Quilt to modify upstream source if required
Level 3: Packaging more complicated modules
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.
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 4: Pick an unpackaged but useful module and upload to archive
By this time you should know,
- How to file ITP