diff options
author | Chris Johns <chrisj@rtems.org> | 2014-07-29 17:25:06 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2014-07-29 17:25:06 +1000 |
commit | 6b4f83c12f527a77db897f9d6cc29d9032fdbd09 (patch) | |
tree | 0156f1320887cfe5901f93c6a17ac4ea3747cbd3 /doc | |
parent | Version 0.4.0. (diff) | |
download | rtems-source-builder-6b4f83c12f527a77db897f9d6cc29d9032fdbd09.tar.bz2 |
doc: Add %hash.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/source-builder.txt | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/doc/source-builder.txt b/doc/source-builder.txt index 6458842..a63ad17 100644 --- a/doc/source-builder.txt +++ b/doc/source-builder.txt @@ -9,7 +9,7 @@ RTEMS Source Builder image:images/rtemswhitebg.jpg["RTEMS",width="30%"] Chris Johns <chrisj@rtems.org> -1.8, July 2014 +1.9, July 2014 RTEMS Tools From Source ----------------------- @@ -869,6 +869,16 @@ This examples shows how to declare a patch for gdb in the +lm32+ architecture: <2> The group of patches this patch belongs too. <3> The patch's URL. It is downloaded from here. +Patches require a checksum to avoid a warning. The +%hash+ directive can be +used to add a checksum for a patch that is used to verify the patch: + +------------------------------------------------------------- +%hash md5 <1> gdb-sim-lm32uart.diff <2> 77d070878112783292461bd6e7db17fb <3> +------------------------------------------------------------- +<1> The type of checksum, in the case an MD5 hash. +<2> The patch file the checksum is for. +<3> The MD5 hash. + The patches are applied when a patch +setup+ command is issued in the +%prep:+ section. All patches in the group are applied. To apply the GDB patch above use: @@ -891,6 +901,8 @@ see the patch is present and will not attempt to download it. Once you are happy with the patch submit it to the project and a core developer will review it and add it to the RTEMS Tools git repository. +File Checksums + Cross and Canadian Cross Building --------------------------------- @@ -2093,6 +2105,7 @@ The script language is implemented in terms of macros. The built-in list is: +%buildarch+:: The build architecture. +%source+:: Define a source code package. This macro has a number appended. +%patch+:: Define a patch. This macro has a is number appended. ++%hash+:: Define a checksum for a source or patch file. +%echo+:: Print the following string as a message. +%warning+:: Print the following string as a warning and continue. +%error+:: Print the following string as an error and exit. @@ -2482,7 +2495,6 @@ applying a group of patches to a specific source tree. The +__patchdir+ path is search. - To add a patch: ------------------------------------------------------------- @@ -2500,6 +2512,36 @@ Placing +%patch setup+ in the +%prep+ section will apply the groups patches. <1> The patch group. <2> The default option used to apply the patch. +%hash +^^^^^ + +The +%hash+ macro requires 3 arguments and defines a checksum for a specific +file. The checksum is not applied until the file is checked before downloading +and once downloaded. A patch or source file that does not has a hash defined +generates a warning. + +A file to be checksum must be unqiue in the any of the source and patch +directories. The basename of the file is used as the key for the hash. + +The hash algorthim can be 'md5', 'sha1', 'sha224', 'sha256', 'sha384', and +'sha512' and we typically use 'md5'. + +To add a hash: + +------------------------------------------------------------- +%hash md5 <1> net-snmp-%{net_snmp_version}.tar.gz <2> 7db683faba037249837b226f64d566d4 <3> +------------------------------------------------------------- +<1> The type of checksum. +<2> The file to checksum. It can contain macros that are expanded for you. +<3> The MD5 hash for the Net-SNMP file +net-snmp-5.7.2.1.tar.gz+. + +Do not include a path with the file name. Only the basename is required. Files +can be searched for from a number of places and having a path conponent would +create confusion. This does mean files with hashes must be unique. + +Downloading of repositories such as git and cvs cannot be checksumed. It is +assumed those protocols and tools manage the state of the files. + %echo ^^^^^ |