Changes between Version 8 and Version 9 of BuildingAndUploading


Ignore:
Timestamp:
07/01/15 12:17:43 (6 years ago)
Author:
jdreed
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BuildingAndUploading

    v8 v9  
    1 (these are my rough notes, please correct them) 
    2  
    31[[PageOutline]] 
    42 
    5 == Building == 
     3= Building and Uploading = 
    64 
    75Building is done on magrathea.mit.edu (originally debuild.mit.edu, then zulu.mit.edu), using the builder account. 
    86Do not forward your root tickets when ssh'ing to builder@magrathea. 
    97 
    10 '''Building a new package that hasn't been built before?  Run `gen-packages` in `/mit/debathena/packages`''' 
     8=== Package Names === 
    119 
     10The build-system uses the **submodule name**, not the package name.  For example, the `getcluster` software is provided by the `debathena-getcluster` package, but is in the `getcluster` submodule. 
    1211 
    13 1. '''cd /mit/debathena/packages/''subdir'' ''' 
    14  * ''subdir'' corresponds to the subdirectories under trunk/debathena in the repository.  Note that trunk/athena is also here. 
     12In the instructions below, `<package>` refers to the submodule name. 
    1513 
    16 2. '''dasource ''packagename'' ''' 
    17  * This checks out the latest revision of the package, unpacks it, and builds the source package. 
     14== Building == 
    1815 
    19 3. '''cd ''packagename'' ''' 
     16**Non-native packages**: Prior to building, non-native packages must also prepare an upstream tarball: 
     17* `athena-upstream-tarball -p <package>` 
    2018 
    21 4. '''da [-A] sbuildhack ''dsc-file'' ''' 
    22  * ''dsc-file'' is the `.dsc` file for the current version of the package (created by dasource). [[BR]] 
    23  * '''da''' essentially runs its arguments for all distributions and architectures that we know about.  '''-A''' is used when building an architecture-independent (`Architecture: all`) package.  It only builds one architecture for each distribution (currently, amd64).  If the da script fails, you will be prompted to continue or give up.  It will print a summary of the successful builds when it completes. 
     19* `dasource -u <package>` 
     20 * builds source package 
     21* `dapublish <package>` 
     22 * publish source package to repo, sign and tag 
     23 * You may also pass `all` in place of the package name, but that might break. 
     24* `dabuild all` 
     25 * builds any package for which there are source but no binary 
     26 * You may also pass a package name in place of `all`, but it's good practice to ensure there's nothing unbuilt 
    2427 
    25 5. Verify that the .debs were created in the current directory.  Proceeding to '''Uploading''' 
    26  
    27 == Uploading == 
    28  
    29 NOTE: The cwd is assumed to be  /mit/debathena/packages/''subdir''/''packagename'' (where the '''Building''' step ended).   
    30  
    31 1. '''daupload-proposed [-A] ''source-changes'' ''' 
    32  * ''source-changes'' is the source package's `.changes` file. 
    33  * Like '''da''', '''daupload''' and friends take '''-A''' if the package is architecture independent 
    34  * To upload to the -development repository instead, replace '''daupload-proposed''' with '''daupload-dev''' 
    35  
    36 2. '''dasnapshot''' 
     28At the end of this process, the packages will be in the `-development` APT repository.  They can then be moved, as described below.  Typically, packages sit in -development until they're tested at least once, then go to -proposed for 3 business days, and then production. 
    3729 
    3830== Moving between repositories == 
    3931 
     32**NOTE**: Unlike the build process, moving packages **does** use the package's full name (e.g. `debathena-getcluster` instead of just `getcluster`).  Yes, this is confusing. 
     33 
    4034Packages can be moved between repositories with '''damove'''.  This is the normal way in which packages should migrate from -proposed to the production repository. 
    4135 
    42 1. '''damove''' ''destination'' ''source'' ''packagename'' 
    43  * ''destination'' is the repository you are moving the package '''to'''.  Use an empty string (`""`) to indicate the production repository. 
    44  * ''source'' is the repository you are moving the package '''from'''. 
    45  * ''packagename'' is the name of the package 
    46  * '''damove''' will warn you if you accidentally swap the ''desintation'' and ''source'' arguments 
    47  
    48 2. '''dasnapshot''' 
    49  
    50 == Equivs Packages == 
    51  
    52 NOTE: The equivs packages are all located in `/mit/debathena/packages/meta`. 
    53  
    54 1. '''cd /mit/debathena/packages/meta/''packagename'' ''' 
    55  * ''packagename is the name of the package (without the `debathena-` prefix) 
    56  
    57 2. '''svn update''' 
    58  * There is no '''dasource''' for equivs packages. 
    59  
    60 3. '''equivs-build --full ''equivs-file'' ''' 
    61  * ''equivs-file'' is the name of the `.equivs` file for the package 
    62  * Errors regarding package signing and (for now) tempfile creation and known and ignorable. 
    63  
    64 4. '''daupload-equivs-proposed ''source-changes'' ''' 
    65  * ''source-changes'' is the ~~source package's `.changes` file.~~ No, it's the amd64.changes file 
    66  * To upload to the -development repository instead, replace '''daupload-equivs-proposed''' with '''daupload-equis-dev''' 
    67  
    68 5. '''dasnapshot''' 
    69  
    70 6. When moving the equivs package between repositories, the same '''damove''' syntax is used as with regular packages. 
    71  
    72 == Example == 
    73  
    74 An example, using version 1.18.2 of the package debathena-printing-config, whose source is located at trunk/debathena/config/printing-config 
    75  
    76 1. cd /mit/debathena/packages/config 
    77  
    78 2. dasource debathena-printing-config 
    79  
    80 3. cd debathena-printing-config 
    81  
    82 4. da -A sbuildhack debathena-printing-config_1.18.2.dsc 
    83  
    84 5. daupload-proposed -A debathena-printing-config_1.18.2_source.changes 
    85  
    86 6. dasnapshot 
    87  
    88 7. (wait for  3 days of testing)  
    89  
    90 8. damove "" "-proposed" debathena-printing-config 
    91  
    92 9. dasnapshot 
    93  
    94  == Manual Config == 
    95  
    96  
    97 1.  builder@magrathea:/mit/debathena/packages/manual-config$ ./make-manual-config  
    98  
    99 2.   builder@magrathea:/mit/debathena/packages/manual-config$ ./do-upload           
    100  
    101 3. Eventually move from proposed to production 
     36`damove <destination> <source> <packagename>` 
     37 * ''<destination>'' is the repository you are moving the package '''to'''. (one of `production`, or `proposed`) 
     38 * ''<source>'' is the repository you are moving the package '''from'''.  (one of `proposed` or `development`) 
     39 * ''<packagename>'' is the name of the package 
     40 * '''damove''' will warn you if you accidentally swap arguments