74 lines
3.5 KiB
Plaintext
74 lines
3.5 KiB
Plaintext
------------------------------------------------------
|
|
Quick Guide To Patching This Package For The Impatient
|
|
------------------------------------------------------
|
|
|
|
1. Make sure you have quilt installed
|
|
2. Unpack the package as usual with "dpkg-source -x"
|
|
3. Run the "patch" target in debian/rules
|
|
4. Create a new patch with "quilt new" (see quilt(1))
|
|
5. Edit all the files you want to include in the patch with "quilt edit"
|
|
(see quilt(1)).
|
|
6. Write the patch with "quilt refresh" (see quilt(1))
|
|
7. Run the "clean" target in debian/rules
|
|
|
|
Alternatively, instead of using quilt directly, you can drop the patch in to
|
|
debian/patches and add the name of the patch to debian/patches/series.
|
|
|
|
------------------------------------
|
|
Guide To The X Strike Force Packages
|
|
------------------------------------
|
|
|
|
The X Strike Force team maintains X packages in git repositories on
|
|
git.debian.org in the pkg-xorg subdirectory. Most upstream packages
|
|
are actually maintained in git repositories as well, so they often
|
|
just need to be pulled into git.debian.org in a "upstream-*" branch.
|
|
Otherwise, the upstream sources are manually installed in the Debian
|
|
git repository.
|
|
|
|
The .orig.tar.gz upstream source file could be generated using this
|
|
"upstream-*" branch in the Debian git repository but it is actually
|
|
copied from upstream tarballs directly.
|
|
|
|
Due to X.org being highly modular, packaging all X.org applications
|
|
as their own independent packages would have created too many Debian
|
|
packages. For this reason, some X.org applications have been grouped
|
|
into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils,
|
|
x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils.
|
|
Most packages, including the X.org server itself and all libraries
|
|
and drivers are, however maintained independently.
|
|
|
|
The Debian packaging is added by creating the "debian-*" git branch
|
|
which contains the aforementioned "upstream-*" branch plus the debian/
|
|
repository files.
|
|
When a patch has to be applied to the Debian package, two solutions
|
|
are involved:
|
|
* If the patch is available in one of the upstream branches, it
|
|
may be git'cherry-picked into the Debian repository. In this
|
|
case, it appears directly in the .diff.gz.
|
|
* Otherwise, the patch is added to debian/patches/ which is managed
|
|
with quilt as documented in /usr/share/doc/quilt/README.source.
|
|
|
|
quilt is actually invoked by the Debian X packaging through a larger
|
|
set of scripts called XSFBS. XSFBS brings some other X specific
|
|
features such as managing dependencies and conflicts due to the video
|
|
and input driver ABIs.
|
|
XSFBS itself is maintained in a separate repository at
|
|
git://git.debian.org/pkg-xorg/xsfbs.git
|
|
and it is pulled inside the other Debian X repositories when needed.
|
|
|
|
The XSFBS patching system requires a build dependency on quilt. Also
|
|
a dependency on $(STAMP_DIR)/patch has to be added to debian/rules
|
|
so that the XSFBS patching occurs before the actual build. So the
|
|
very first target of the build (likely the one running autoreconf)
|
|
should depend on $(STAMP_DIR)/patch. It should also not depend on
|
|
anything so that parallel builds are correctly supported (nothing
|
|
should probably run while patching is being done). And finally, the
|
|
clean target should depend on the xsfclean target so that patches
|
|
are unapplied on clean.
|
|
|
|
When the upstream sources contain some DFSG-nonfree files, they are
|
|
listed in text files in debian/prune/ in the "debian-*" branch of
|
|
the Debian repository. XSFBS' scripts then take care of removing
|
|
these listed files during the build so as to generate a modified
|
|
DFSG-free .orig.tar.gz tarball.
|