Return to repo list

suckless-gf-st

Gentoo-friendly patches for Suckless's st.
Return to HMagellan.com

README (4611B)


      1 suckless-gf-st - Gentoo-Friendly Patches for Suckless's st
      2 
      3 == What Is This? ==
      4 
      5     This repository contains a host of patches that can be applied to st, the simple terminal implementation from suckless.org. These
      6 patches have been modified to work with Gentoo's st package, and are specifically compatible with the 'savedconfig' USE flag. Each
      7 patch in this repository has its own directory. Each of these directories contains the actual patch file itself (ending in '.patch',
      8 for Portage compatibility reasons), and a file called USAGE that informs the user of any manual changes that should or might be
      9 applied in order to use the patch. Be sure to read USAGE carefully before applying the patch, and follow the instructions therein!
     10 
     11     This project exists because of a problem with the default way that Suckless programs work in a Gentoo environment. Gentoo's
     12 package manager, Portage, offers a built-in utility for patching programs, and this utility works nicely with the patches for st
     13 that can be found on suckless.org. Additionally, since Portage is a source-based package manager, it also offers a utility for 
     14 editing config.h files in Suckless programs by using the 'savedconfig' USE flag. This USE flag, when enabled, will create a directory 
     15 in /etc/portage/savedconfig that contains a header file (this file is located in /etc/portage/savedconfig/x11-terms/ in st's case).
     16 This header file can be edited just like the one that you would edit if you were working with a git repository or other copy of the
     17 st code directly. Edits made to this file are applied as a diff to config.def.h at emerge time, thus providing a very simple and
     18 convenient way of incorporating Suckless's recommended modification methodology in a Portage-friendly fashion. There is a problem
     19 with this, however; because of the way that Portage patches programs as part of ebuilds, most of the time any patches that make
     20 changes to config.def.h themselves will be totally incompatible with a custom savedconfig header file, and emerge will fail if you
     21 try to apply such a patch while 'savedconfig' is enabled. The solution to this dilemma is to modify the patches in such a way as to
     22 make them never make any changes to config.def.h, and thus make them compatible with 'savedconfig' and friendly to Gentoo. Any
     23 changes that the patch originally tried to make to config.def.h could either be applied manually to the savedconfig header file by
     24 the user, or potentially included in another file as part of the patching process, depending on what the changes do.
     25 
     26     A side-goal of this repository is to make each target patch (see below) support the current stable version of x11-terms/st as
     27 offered by Gentoo tree (currently st version 0.8.4). Many of the patches suckless-gf-st targets are not themselves considered to be
     28 compatible with this modern version of st, but the project intends to fix any compatibilty issues that the target patches have with 
     29 the unmodified current st codebase and thus make them work. This could potentially result in substantial changes coming to individual 
     30 patches, or perhaps the total rewrite of patches altogether. Compatibility changes will be noted in individual patches' USAGE files.
     31 
     32     These patches are ALL compatible with Portage and savedconfig. Effort has also been taken to ensure the patches are themselves
     33 cross-compatible; that is, that they do not conflict with each other. Despite this effort, lack of conflict between patches is not 
     34 guaranteed at this time. If any specific patches are known to be incompatible with each other, the conflict will be noted inside the 
     35 patches' USAGE files. Normally, this should serve to document most incompatiblities, but in the case of the user applying a great many 
     36 patches all at once, it is possible that novel conflicts may occur. Be aware of this should you try to emerge with a huge number of 
     37 patches!
     38 
     39 == Target Patches ==
     40 
     41     suckless-gf-st targets the patches located at the following locations:
     42 
     43         (1). https://st.suckless.org/patches/
     44 
     45     CURRENT PROGRESS: 1/51 patches supported
     46                       0/51 patches unsupported
     47 
     48     USUPPORTED PATCHES:
     49         None so far :-)
     50 
     51     NOTE THAT UNSUPPORTED PATCHES SHOULD BE SUPPORTED IN THE FUTURE!!!
     52 
     53 == License ==
     54 
     55     suckless-gf-st is released under the MIT/X Consortium License, the same license that st itself is under:
     56     (https://git.suckless.org/st/file/LICENSE.html)
     57 
     58     See the LICENSE file for details.
     59 
     60 == Maintainer ==
     61 
     62     suckless-gf-st is maintained by Erik Letson <hmagellan@hmagellan.com>. Please direct any questions or patches to that email.