From 6878d2cefc393d5b194e02fa68610714adcf0441 Mon Sep 17 00:00:00 2001 From: TiynGER Date: Sun, 27 Dec 2020 19:21:17 +0100 Subject: [PATCH] suckless: added patching guide --- wiki/suckless.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 wiki/suckless.md diff --git a/wiki/suckless.md b/wiki/suckless.md new file mode 100644 index 0000000..1fa92ad --- /dev/null +++ b/wiki/suckless.md @@ -0,0 +1,33 @@ +# Suckless + +Suckless is a community that is best known for minimalist free software. +Notable works include `dwm` and `dmenu`. + +## Workflow for installation + +Programs written by the suckless community are minimal by default. +`.diff` files are available to patch functionality. +Configuring is done in the `config.h` file. +Expressions in `<>` may need replacement. + +- If not already created initialize a git repository +- Create and switch to the `base` brach with `git branch base` +- Download the default version of the suckless program you want to patch +- Add and commit all the files in the `base` branch +- Clean the master branch +with `make clean & rm -f config.h & git reset --hard origin/base` +- Apply patches (this has to be done only once for each branch (except updates)) + - Create and switch to a new branch for the patch with `git branch ` + - Download the `.diff` file of the according feature into your directory + - Apply the patch to the current directory with `git apply .diff` + - Add and commit all the files in the `` branch +- Merge all branches into master branch (sometimes you can skip already merged +ones) + - Merge each branch (except the new feature) into master with `git merge ` + - (maybe you have to manually merge some errors) +- If you have a `config` branch merge `config` into `master` before adding the +new `feature` +- Finally update the `config` branch + - If not created already create a `config` branch from the `base` branch + - Get the `config.def.h` of `master` into `config` with + `git checkout master config.def.h`