diff options
Diffstat (limited to 'debian/README')
-rw-r--r-- | debian/README | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/debian/README b/debian/README new file mode 100644 index 0000000..cfdb8c8 --- /dev/null +++ b/debian/README @@ -0,0 +1,109 @@ +Organization of the repository +============================== + +The debian package for each LLVM point release is maintained as a git branch. +For example, the 8 release lives at in the "8" branch. + +The current snapshot release is maintained in the "snapshot" branch. + +The easiest way to get all branches is probably to have one +clone per version: + +for f in 7 8 9 snapshot; do + git clone git@salsa.debian.org:pkg-llvm-team/llvm-toolchain.git -b $f $f +done + +Steps for manually building a snapshot release +============================================== + +1) Retrieve the latest snapshot and create original tarballs. + + Run the orig-tar.sh script, + + $ sh snapshot/debian/orig-tar.sh + + which will retrieve the latest version for each LLVM subproject (llvm, + clang, lldb, etc.) from the main development (upstream SVN). and repack it + as a set of tarballs. + +2) Unpack the original tarballs and apply quilt debian patches. + + From the branches/ directory run the unpack.sh script, + + $ sh unpack.sh + + which will unpack the source tree inside a new directory such as + branches/llvm-toolchain-snapshot_3.9~svn268942. Depending on the current + snapshot version number and svn release, the directory name will be + different. + + Quilt patches will then be applied. + +3) Build the binary packages using, + + $ fakeroot debian/rules binary + +When debugging, successive builds can be recompiled faster by using tools such +as ccache (PATH=/usr/lib/ccache:$PATH fakeroot debian/rules binary). + +Retrieving a specific branch or release candidate with orig-tar.sh +================================================================== + +When using orig-tar.sh, if you need to retrieve a specific branch, you can pass +the branch name as the first argument. For example, to get the 8 release +branch at + http://llvm.org/svn/llvm-project/{llvm,...}/branches/release_80 +you should use, + + $ sh 8/debian/orig-tar.sh release_80 + +To retrieve a specific release candidate, you can pass the branch name as the +first argument, and the tag rc number as the second argument. For example, to +get the 8.0.1 release candidate rc3 at + http://llvm.org/svn/llvm-project/{llvm,...}/tags/RELEASE_801/rc3 +you should use, + + $ sh 8/debian/orig-tar.sh RELEASE_801 rc3 8.0.1 + +For a stable release, the syntax is: + + $ sh 8/debian/orig-tar.sh RELEASE_800 final 8.0 + + +Additional maintainer scripts +============================= + +The script qualify-clang.sh that is found at the git debian/ directory +should be used to quickly test a newly built package. It runs a short +set of sanity-check tests and regression tests. + +The script releases/snapshot/debian/prepare-new-release.sh is used when +preparing a new point release. It automatically replaces version numbers +in various files of the package. + +Making a change to all versions +=============================== + +Sometimes, we want to make a change on all branches. +In that case, start to make the change from the older +version (example: 8), then, change branch (example: 9) and +$ git merge origin/8 +to retrieve the changes + + +Change in major upstream version +================================ +TODO update with the git commands + +$ svn copy snapshot VERSION +$ svn commit -m "VERSION branched" VERSION +$ cd VERSION +$ sed -i -e '0,/llvm-toolchain-snapshot/s/llvm-toolchain-snapshot/llvm-toolchain-VERSION/' debian/changelog debian/control +$ svn commit -m "snapshot => VERSION" +$ cd ../snapshot +$ emacs debian/prepare-new-release.sh +# Change the version +$ bash debian/prepare-new-release.sh +$ svn commit -m "new snapshot release" + +Now, try build build it. |