GLEP: XXX Title: Default structure and proceses for patches inclusion. Version: $Revision: 1.0 $ Last-Modified: $Date: 2009/02/11 12:09:20 $ Author: Tomáš Chvátal <scarabeus@gentoo.org>, Status: Draft Type: Standards Track Content-Type: text/x-rst Created: 11 Feb 2009 Post-History: 14-Aug-2003
The reasons and ideas for this GLEP are heavily inspired by Debian patch tracking system.
Dealing with patches reasonably for easy reviewing and tracking upstream.
With simple and standardised directory structure and patch naming conventions, there would be easy way to create patch tracking system which might allow us to share patches with other distributions and upstream. Also it will ease patch inspections and reviews due to easier "on first look" determination what is patch for.
When we deal with patches we can cross 4 different types of them when packaging.
We will have to define default directory structure, and naming conventions for files in those directories.
The directory structure must reflect the state of the above categories and must be still kept simple:
+-kdelibs/
|
+-files/
|
+-dist/
|
+-init/
|
+-script/
|
+-upstream/
|
+-4.1.3/
|
+-4.2.1/
Here we can see that in this fabricated kdelibs package we have some distribution patches, init scripts, some normal scripts and even upstream patches for version 4.1.3 and 4.2.1.
Folders should be created and exist only if they contain some files. There is no need to keep the directory structure for empty folders.
Versioned directories should be added only for the upstream patches, because in other cases we don't know if the patch will be needed in the future.
There should be also no files directly in directories files and upstream. For the files directory there might be some exceptions but in most cases there should be NO files.
Also the patch itself should have in its content some long explanation about what is going on:
# This patch fixes upstream smallest font choice from 4 to 8 pts. # Created by Tomas Chvatal <i-like@my-mail.org> # Verified by Jorge Manuel B. S. Vicetto <he-like@his-mail-too.org> #this line is optional. diff -urN a/app/src/font_size.c b/app/src/font_size.c ...
These files should track upstream commit number and short explanation:
9a7f9abf569-fix_library_detection.patch
These patches dont need the explanation of what they does in the files but reason for their addition must be explained in Changelog/commit message.
These files dont need some special naming convetion there is only need to add bug number to their name. So we can track where it came from:
554-autologin.sh
When this glep gets implemented in the tree we can create web service that will show up what patches are used for what and enable quick searching and sorting among them.
This GLEP does not break any previous compatibility, only patches which are not using it as reference wont be listed on the patch tracking system.
Copyright (c) 2009 by Tomáš Chvátal. This document has been placed in the public domain.
vim: tw=79 ts=2 expandtab: