fixup initscript for tvheadend
[openadk.git] / docs / customize-outside-adk.txt
blob575defa82da41ed12a8023786e537ff6c52a93c8
1 // -*- mode:doc -*- ;
3 [[outside-adk-custom]]
4 Keeping customizations outside OpenADK
5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 The OpenADK project recommends and encourages upstreaming to the
8 official OpenADK version the packages and board support that are
9 written by developers. However, it is sometimes not possible or
10 desirable because some of these packages or board support are highly
11 specific or proprietary.
13 In this case, OpenADK users are offered following choice using
14 here own git repository.
16 * Initialize your project
18 Personalize your Git environment via:
20 ---------------------
21  $ git config --global user.name "Waldemar Brodkorb"
22  $ git config --global user.email wbx@openadk.org
23 ---------------------
25 Get the latest version of OpenADK via anonymous git:
27 ---------------------
28  $ git clone --bare git://openadk.org/git/openadk myadk.git
29 ---------------------
31 Use git-daemon to make the repository public to your developers. After that clone your new shared project repository:
33 ---------------------
34  $ git clone git+ssh://myserver.com/git/myadk.git
35  $ cd myadk
36 ---------------------
38 Configure OpenADK remote git repository:
40 ---------------------
41  $ git remote add openadk git://openadk.org/git/openadk
42 ---------------------
44 * Create your firmware
46 Now you can either start with the latest version or use some older version:
48 ---------------------
49  $ git checkout -b stable_1_0 $sha1
50 ---------------------
51 You can find $sha1 via git log. $sha1 is the hash after the keyword “commit”.
53 Now build a firmware image for your target and test it. Fix bugs in the build
54 environment or add new stuff. You can use the “extra” directory to add local
55 unpackaged binaries and/or configuration files to overwrite packaged stuff.
57 Check your uncommitted changes:
59 ---------------------
60  $ git status
61  $ git diff --cached
62  $ git diff
63 ---------------------
65 Commit your git-added changes:
67 ---------------------
68  $ git commit 
69 ---------------------
70 Or just commit all changes:
72 ---------------------
73  $ git commit -a
74 ---------------------
75 It is a good style to make a lot of small atomic commits.
77 Push your changes back to your git repository.
78 For new local branches:
80 ---------------------
81  $ git push origin stable_1_0
82 ---------------------
84 Or in regulary usage via:
85 ---------------------
86  $ git push
87 ---------------------
89 * Working together with OpenADK
91 You can generate patches from all your changes against the remote master:
93 ---------------------
94  $ git format-patch -s origin 
95 ---------------------
97 Send all relevant patches to OpenADK author via eMail.
99 Update your master with changes from OpenADK:
101 ---------------------
102  $ git checkout master
103  $ git pull openadk master
104 ---------------------
106 If you want you can merge all changes to your branch:
108 ---------------------
109  $ git checkout stable_1_0
110  $ git merge master
111 ---------------------
113 Or just cherry-pick some of the commits:
115 ---------------------
116  $ git cherry-pick $sha1
117 ---------------------
119 * Releasing
121 Tag your tested stable branch:
123 ---------------------
124  $ git tag -a stable_1.0
125 ---------------------
126 Push your tag to your repository:
128 ---------------------
129  $ git push origin stable_1.0
130 ---------------------
132 Checkout your tag and build your firmware:
134 ---------------------
135  $ git clone git+ssh://myserver.com/git/myadk.git mytag
136  $ cd mytag 
137  $ git checkout stable_1.0
138 ---------------------
140 * Deleting unused branches
142 Deleting branches remotely:
144 ---------------------
145  $ git branch -r
146  $ git push origin :branchname
147 ---------------------
149 Deleting branches locally:
151 ---------------------
152  $ git branch
153  $ git branch -D branchname
154 ---------------------