Build a 64bit DDS

From DDCIDeos
Jump to navigationJump to search

Here are the steps to accomplish a 64-bit DDS build:

  1. Reserve the ddsbuild machine on x9
  2. Use Microsoft's Remote Desktop to logon to the ddsbuild machine (username: scoretest, password: scteorste1, domain DDCI)

The Customer Information File

The customer information file is located at C:\DDCI_integration\DDS\customer_info.json and is used by the build scripts. The format of this file is in json syntax.

  1. Confirm the information for a customer is correct. This information doesn't change often.
  2. Update the Customer Information File (customer_info.json) - this is usually a one time thing to add a new customer or if this is the first DDS with verified components to be delivered to the customer, ensure that the customer_info.json specifies "verified" : "yes" for this customer.
  3. Remember to commit the customer_info.json file using the appropriate PCR.

Below is a portion of the customer information file with comments providing documentation for the contents:

###########################################
# Sample Customer Entry
#
# 1) the customer package name (ie. "customer-booyah"
# 2) the distribution that should be used (i.e., the 'distribution' line)
# 3) whether this customer receives verified components. Note: This should be set to yes when delivering verified versions
#    of the standard components, even if the customer specific BSP has not completed verification.
# 4) The description of the customer program (i.e., the 'desc' line) This is used when producing the cover letter
#
#
#  "customer-booyah" : {
#     "distribution": "indie",
#     "cygwin" : "cygwin-20180401",
#     "verified" : "no",
#     "desc" : "Multicore for AGM3 Project"
#  }

Building a Cygwin DDS

  1. Run c:\cygwindds\cygwin.bat to launch a Cygwin Terminal (Note: the "populateDDS cygwin2024 64bit" shortcut can be used to accomplish this).
  2. Make sure the English keyboard is being used by the shell.
  3. cd /cygdrive/c/DDCI_integration/DDS.
  4. svn up to ensure the latest updates to the scripts are being used.
  5. Run the cygwin-populateDDS.py script passing in a customer name, for example:
 cd /cygdrive/c/DDCI_integration/DDS
 ./cygwin-populateDDS.py customer-granite --progress

To see all options accepted by cygwin-populateDDS.py invoke with the --help option. NOTE:--ubuntu should not be used.

Building a Linux DDS

Login to docker (one time operation for DDSBUILD)
Start a cmd shell (e.g. DESK Console)
bash -i
docker login redhat5.ddci.com -u scoretest@ddci.com

  1. Start a Command Prompt
  2. Make sure the English keyboard is being used by the shell
  3. C:\User\scoretest>wsl -d ubuntu
  4. scoretest@DDSBUILD:/mnt/Users/scoretest$cd ../../DDCI_integration/DDS
  5. scoretest@DDSBUILD:/mnt/c/DDCI_integration/DDS$svn up
 Updating '.':
Authentication realm: <https://deos.ddci.com:443> DDC-I, Inc. Realm
Password for 'scoretest@ddci.com': **********
Password can be found at the top of this wiki
  1. Run the populateDDS.py script for example:
 scoretest@DDSBUILD:/mnt/c/DDCI_integration/DDS$ ./populateDDS.py --progress customer-throne none

TODO:instead of none, /mnt/ship/approved or other
When completed, 'Release created in folder: /mnt/c/DDCI_integration/<dds-name>' is printed and the release folder will be created in the C:\DDCI_integration folder under the name: DDS-docker-<customer-name>-deos-<distribution>-<yyyymmdd>[-x] where the '-x' is optional and used only when more than one invocation occurs on a given day.

To see all options accepted by populateDDS.py invoke with the --help option.

Build a tar file for a Linux docker distribution

tar -cf <dds-docker-image>.tar --group=root --owner=root --mode=go-w,a+rx -C //nx3000.ddci.com/ship/dds/ubuntu/approved/DDS-docker-<name> .

Rationale for no -j or -J: The vast majority of the content is a docker image which is compressed using .xz so compressing again is a time sink and can actually increase the size of the image.

NOTE: The tar command *MUST* be executed from a Cygwin shell in order to ensure that the "mode" on the script files is set properly. The files going into the tar file are on a windows share which does not properly encode the "mode", but Cygwin has special hacks to ensure that files with shebang lines get set to the equivalent of chmod a+x.

Don't forget to unlock x9