diff options
Diffstat (limited to 'CONTRIBUTING.md')
| -rw-r--r-- | CONTRIBUTING.md | 180 | 
1 files changed, 0 insertions, 180 deletions
| diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index c8a29e7..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,180 +0,0 @@ - -Building from git clone ------------------------ - -``` shell -$ ./bootstrap -$ ./configure -``` - -The bootstrap script will use autotools to set up the build environment -and create the `configure` script. - -Use `./configure --help` for options. Use `--prefix` to make an install in -your home directory. This is necessary to test python scripts. The systemd -user unit directory should be set to avoid writing to the system location. - -Systemd will look for the unit files in `~/.config/systemd/user` so this -directory can be used as a target if the unit files will be used. Otherwise -the location can be set to `no` to disable the systemd files. - -Example: - -``` shell -$ ./configure --prefix=$HOME/redshift/root \ -   --with-systemduserunitdir=$HOME/.config/systemd/user -``` - -Now, build the files: - -``` shell -$ make -``` - -The main redshift program can be run at this point. To install to the -prefix directory run: - -``` shell -$ make install -``` - -You can now run the python script. Example: - -``` shell -$ $HOME/redshift/root/bin/redshift-gtk -``` - - -Dependencies ------------- - -* autotools, gettext -* intltool, libtool -* libdrm (Optional, for DRM support) -* libxcb, libxcb-randr (Optional, for RandR support) -* libX11, libXxf86vm (Optional, for VidMode support) -* Glib 2 (Optional, for GeoClue2 support) - -* python3, pygobject, pyxdg (Optional, for GUI support) -* appindicator (Optional, for Ubuntu-style GUI status icon) - -Ubuntu users will find all these dependencies in the packages listed in ``.travis.yml``. - - -Coding style for C code ------------------------ - -Redshift follows roughly the Linux coding style -<http://www.kernel.org/doc/Documentation/CodingStyle>. Some specific rules to -note are: - -* Lines should not be longer than 80 characters in new code. If lines are -  longer than this the code could likely be improved by moving some parts to a -  smaller function. -* All structures are typedef'ed. -* Avoid Yoda conditions; they make the logic unnecessarily hard to comprehend. -* Avoid multiline if-statements without braces; either use a single line or add -  the braces. -* Use only C-style comments (`/* */`). - - -Creating a pull request ------------------------ - -1. Create a topic branch for your specific changes. You can base this off the -   master branch or a specific version tag if you prefer (`git co -b topic master`). -2. Create a commit for each logical change on the topic branch. The commit log -   must contain a one line description (max 80 chars). If you cannot describe -   the commit in 80 characters you should probably split it up into multiple -   commits. The first line can be followed by a blank line and a longer -   description (split lines at 80 chars) for more complex commits. If the commit -   fixes a known issue, mention the issue number in the first line (`Fix #11: -   ...`). -3. The topic branch itself should tackle one problem. Feel free to create many -   topic branches and pull requests if you have many different patches. Putting -   them into one branch makes it harder to review the code. -4. Push the topic branch to Github, find it on github.com and create a pull -   request to the master branch. If you are making a bug fix for a specific -   release you can create a pull request to the release branch instead -   (e.g. `release-1.9`). -5. Discussion will ensue. If you are not prepared to partake in the discussion -   or further improve your patch for inclusion, please say so and someone else -   may be able to take on responsibility for your patch. Otherwise we will -   assume that you will be open to criticism and suggestions for improvements -   and that you will take responsibility for further improving the patch. You -   can add further commits to your topic branch and they will automatically be -   added to the pull request when you push them to Github. -6. You may be asked to rebase the patch on the master branch if your patch -   conflicts with recent changes to the master branch. However, if there is no -   conflict, there is no reason to rebase. Please do not merge the master back -   into your topic branch as that will convolute the history unnecessarily. -7. Finally, when your patch has been refined, you may be asked to squash small -   commits into larger commits. This is simply so that the project history is -   clean and easy to follow. Remember that each commit should be able to stand -   on its own, be able to compile and function normally. Commits that fix a -   small error or adds a few comments to a previous commit should normally just -   be squashed into that larger commit. - -If you want to learn more about the Git branching model that we use please see -<http://nvie.com/posts/a-successful-git-branching-model/> but note that we use -the `master` branch as `develop`. - - -Contributing translations -------------------------- - -You can contribute translations directly at -[Launchpad Translations for Redshift](https://translations.launchpad.net/redshift). -Updated translations will be pulled back into the `po` files on Github -before a release is made. - - -Creating a new release ----------------------- - -1. Select a commit in master to branch from, or if making a bugfix release -   use previous release tag as base (e.g. for 1.9.1 use 1.9 as base) -2. Create release branch `release-X.Y` -3. Apply any bugfixes for release -4. Import updated translations from launchpad and commit. Remember to update -   `po/LINGUAS` if new languages were added -5. Update version in `configure.ac` and create entry in NEWS -6. Run `make distcheck` -7. Commit and tag release (`vX.Y` or `vX.Y.Z`) -8. Push tag to Github and also upload source dist file to Github - -Also remember to check before release that - -* Windows build is ok -* Build files for distributions are updated - - -Build Fedora RPMs ------------------ - -Run `make dist-xz` and copy the `.tar.xz` file to `~/rpmbuild/SOURCES`. Then run - -``` shell -$ rpmbuild -ba contrib/redshift.spec -``` - -If successful this will place RPMs in `~/rpmbuild/RPMS`. - - -Cross-compile for Windows -------------------------- - -Install MinGW and run `configure` using the following command line. Use -`i686-w64-mingw32` as host for 32-bit builds. - -``` shell -$ ./configure --disable-drm --disable-randr --disable-vidmode --enable-wingdi \ -  --disable-quartz --disable-geoclue2 --disable-corelocation --disable-gui \ -  --disable-ubuntu --host=x86_64-w64-mingw32 -``` - - -Notes ------ -* verbose flag is (currently) only held in redshift.c; thus, write all -  verbose messages there. | 
