github.com/duglin/docker@v1.13.1/hack/make/release-rpm (about)

     1  #!/bin/bash
     2  set -e
     3  
     4  # This script creates the yum repos for the .rpm files generated by hack/make/build-rpm
     5  #
     6  # The following can then be used as a yum repo:
     7  # 	http://yum.dockerproject.org/repo/$release/$distro/$distro-version
     8  #
     9  # For example:
    10  # 	http://yum.dockerproject.org/repo/main/fedora/23
    11  # 	http://yum.dockerproject.org/repo/testing/centos/7
    12  # 	http://yum.dockerproject.org/repo/experimental/fedora/23
    13  # 	http://yum.dockerproject.org/repo/main/centos/7
    14  #
    15  # ... and so on and so forth for the builds created by hack/make/build-rpm
    16  
    17  : ${DOCKER_RELEASE_DIR:=$DEST}
    18  YUMDIR=$DOCKER_RELEASE_DIR/yum/repo
    19  : ${GPG_KEYID:=releasedocker}
    20  
    21  # get the release
    22  release="main"
    23  
    24  if [[ "$VERSION" == *-rc* ]]; then
    25  	release="testing"
    26  fi
    27  
    28  if [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then
    29  	release="experimental"
    30  fi
    31  
    32  # Setup the yum repo
    33  for dir in bundles/$VERSION/build-rpm/*/; do
    34  	version="$(basename "$dir")"
    35  	suite="${version##*-}"
    36  	distro="${version%-*}"
    37  
    38  	REPO=$YUMDIR/$release/$distro
    39  
    40  	# if the directory does not exist, initialize the yum repo
    41  	if [[ ! -d $REPO/$suite/Packages ]]; then
    42  		mkdir -p "$REPO/$suite/Packages"
    43  
    44  		createrepo --pretty "$REPO/$suite"
    45  	fi
    46  
    47  	# path to rpms
    48  	RPMFILE=( "bundles/$VERSION/build-rpm/$version/RPMS/"*"/docker-engine"*.rpm "bundles/$VERSION/build-rpm/$version/SRPMS/docker-engine"*.rpm )
    49  
    50  	# if we have a $GPG_PASSPHRASE we may as well
    51  	# sign the rpms before adding to repo
    52  	if [ ! -z $GPG_PASSPHRASE ]; then
    53  		# export our key to rpm import
    54  		gpg --armor --export "$GPG_KEYID" > /tmp/gpg
    55  		rpm --import /tmp/gpg
    56  
    57  		# sign the rpms
    58  		echo "yes" | setsid rpm \
    59  			--define "_gpg_name $GPG_KEYID" \
    60  			--define "_signature gpg" \
    61  			--define "__gpg_check_password_cmd /bin/true" \
    62  			--define "__gpg_sign_cmd %{__gpg} gpg --batch --no-armor --digest-algo 'sha512' --passphrase '$GPG_PASSPHRASE' --no-secmem-warning -u '%{_gpg_name}' --sign --detach-sign --output %{__signature_filename} %{__plaintext_filename}" \
    63  			--resign "${RPMFILE[@]}"
    64  	fi
    65  
    66  	# copy the rpms to the packages folder
    67  	cp "${RPMFILE[@]}" "$REPO/$suite/Packages"
    68  
    69  	# update the repo
    70  	createrepo --pretty --update "$REPO/$suite"
    71  done