diff options
author | Ernie Hershey <ernie.hershey@10gen.com> | 2013-12-20 16:29:07 -0500 |
---|---|---|
committer | Ernie Hershey <ernie.hershey@10gen.com> | 2013-12-20 16:29:07 -0500 |
commit | 5d29b14ecf01637f2a0a2e27e02abb7f645d6881 (patch) | |
tree | 69587f6a593457a06d459baedcfbc35981e4d56c /buildscripts | |
parent | 82bc60e052b4d226632bf2c9d73e8fb2c3b509ec (diff) | |
download | mongo-5d29b14ecf01637f2a0a2e27e02abb7f645d6881.tar.gz |
SERVER-9246 Create Yum and Apt repositories for enterprise edition
Diffstat (limited to 'buildscripts')
-rwxr-xr-x | buildscripts/consolidate-repos-enterprise.sh | 94 | ||||
-rwxr-xr-x | buildscripts/packager-enterprise.py | 2 |
2 files changed, 95 insertions, 1 deletions
diff --git a/buildscripts/consolidate-repos-enterprise.sh b/buildscripts/consolidate-repos-enterprise.sh new file mode 100755 index 00000000000..d02355f4cd2 --- /dev/null +++ b/buildscripts/consolidate-repos-enterprise.sh @@ -0,0 +1,94 @@ +#!/bin/bash +# +# consolidate-repos-enterprise.sh +# +# Create new repo directory under /var/www-enterprise/repo.consolidated +# containing every deb and every rpm under /var/www-enterprise/ with proper +# repo metadata for apt and yum +# + +source_dir=/var/www-enterprise/ + +repodir=/var/www-enterprise/repo.consolidated + +gpg_recip='<richard@10gen.com>' + +echo "Using directory: $repodir" + +# set up repo dirs if they don't exist +# +for distro in debian-sysvinit redhat ubuntu-upstart +do + mkdir -p "$repodir/$distro" +done + +mkdir -p "$repodir" + +echo "Scanning and copying package files from $source_dir" +echo ". = skipping existing file, @ = copying file" +for package in $(find "$source_dir" -not \( -path "$repodir" -prune \) -and \( -name \*.rpm -o -name \*.deb -o -name Release \)) +do + new_package_location="$repodir$(echo "$package" | sed 's/\/var\/www-enterprise\/[^\/]*//;')" + # skip if the directory structure looks weird + # + if echo "$new_package_location" | grep -q /repo/ + then + continue + fi + + # skip if not enterprise package + # + if ! echo "$new_package_location" | grep -q enterprise + then + continue + fi + # skip if it's already there + # + if [ -e "$new_package_location" -a "$(basename "$package")" != "Release" ] + then + echo -n . + else + mkdir -p "$(dirname "$new_package_location")" + echo -n @ + cp "$package" "$new_package_location" + fi +done +echo + +# packages are in place, now create metadata +# +for debian_dir in "$repodir"/ubuntu-* "$repodir"/debian-* +do + cd "$debian_dir" + for arch_dir in dists/dist/10gen/{binary-i386,binary-amd64} + do + echo "Generating Packages file under $debian_dir/$arch_dir" + if [ ! -d $arch_dir ] + then + mkdir $arch_dir + fi + dpkg-scanpackages --multiversion "$arch_dir" > "$arch_dir"/Packages + gzip -9c "$arch_dir"/Packages > "$arch_dir"/Packages.gz + done + + release_dir="$debian_dir"/dists/dist + echo "Generating Release file under $release_dir" + cd $release_dir + tempfile=$(mktemp /tmp/ReleaseXXXXXX) + tempfile2=$(mktemp /tmp/ReleaseXXXXXX) + mv Release $tempfile + head -9 $tempfile > $tempfile2 + apt-ftparchive release . >> $tempfile2 + cp $tempfile2 Release + chmod 644 Release + rm Release.gpg + echo "Signing Release file" + gpg -r "$gpg_recip" --no-secmem-warning -abs --output Release.gpg Release +done + +for redhat_dir in "$repodir"/redhat/os/* +do + echo "Generating redhat repo metadata under $redhat_dir" + cd "$redhat_dir" + createrepo . +done diff --git a/buildscripts/packager-enterprise.py b/buildscripts/packager-enterprise.py index f7079b1fcff..28d94a14852 100755 --- a/buildscripts/packager-enterprise.py +++ b/buildscripts/packager-enterprise.py @@ -415,7 +415,7 @@ Label: mongodb Suite: mongodb Codename: %s Version: %s -Architectures: i386 amd64 +Architectures: amd64 Components: mongodb Description: mongodb packages """ % ("dist", "dist") |