97 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
set -x
 | 
						|
 | 
						|
destdir=$1
 | 
						|
sourcedir=$2
 | 
						|
 | 
						|
#rm -rf $destdir
 | 
						|
mkdir -p  $destdir/
 | 
						|
 | 
						|
zypper --version
 | 
						|
z_res=$?
 | 
						|
yum --version
 | 
						|
y_res=$?
 | 
						|
 | 
						|
if [ $z_res -eq 127 ] && [ $y_res -eq 127 ] ; then
 | 
						|
# DEB-based system
 | 
						|
	arch_name=`dpkg --print-architecture`
 | 
						|
	arch="binary-$arch_name"
 | 
						|
	cd $destdir
 | 
						|
	debian_ver=`cat /etc/debian_version`
 | 
						|
	echo "Debian version: $debian_ver"
 | 
						|
	dist_name=$platform_version
 | 
						|
 | 
						|
	mkdir -p dists/$dist_name/main/$arch/
 | 
						|
 | 
						|
	cp ~/$sourcedir/* dists/$dist_name/main/$arch/
 | 
						|
	sudo apt-get update
 | 
						|
	sudo apt-get install -y dpkg-dev
 | 
						|
	dpkg-scanpackages dists/$dist_name/main/$arch/  /dev/null | gzip -9c > dists/$dist_name/main/$arch/Packages.gz
 | 
						|
	gunzip -c dists/$dist_name/main/$arch/Packages.gz > dists/$dist_name/main/$arch/Packages
 | 
						|
#	echo "Archive: main" > dists/$dist_name/main/$arch/Release
 | 
						|
#	echo "Suite: main" >> dists/$dist_name/main/$arch/Release
 | 
						|
	echo "Components: main" >> dists/$dist_name/main/$arch/Release
 | 
						|
	echo "Codename: $dist_name" >> dists/$dist_name/main/$arch/Release
 | 
						|
	echo "Origin: MariaDB" >> dists/$dist_name/main/$arch/Release
 | 
						|
	echo "Label: MariaDB Maxscale repository" >> dists/$dist_name/main/$arch/Release
 | 
						|
	uname -m | grep "x86_64"
 | 
						|
	if [ $? -eq 0 ] ; then
 | 
						|
# 		echo "Architectures: amd64 i386" >> dists/$dist_name/main/$arch/Release
 | 
						|
		mkdir -p dists/$dist_name/main/binary-i386/
 | 
						|
		dpkg-scanpackages dists/$dist_name/main/binary-i386/  /dev/null | gzip -9c > dists/$dist_name/main/binary-i386/Packages.gz
 | 
						|
	        gunzip -c dists/$dist_name/main/binary-i386/Packages.gz > dists/$dist_name/main/binary-i386/Packages
 | 
						|
#	else
 | 
						|
#		 echo "Architectures: ppc64el" >> dists/$dist_name/main/$arch/Release
 | 
						|
	fi
 | 
						|
	archs=`ls -1 dists/$dist_name/main | sed "s/binary-//" | tr '\n' ' '`
 | 
						|
	echo "Architectures: $archs" >> dists/$dist_name/main/$arch/Release
 | 
						|
	echo "Description:  MariaDB MaxScale" >> dists/$dist_name/main/$arch/Release
 | 
						|
	cp dists/$dist_name/main/$arch/Release dists/$dist_name/Release
 | 
						|
#	cp dists/$dist_name/main/$arch/Packages.gz dists/$dist_name
 | 
						|
	apt-ftparchive release dists/$dist_name/ >> dists/$dist_name/Release
 | 
						|
        if [ $? != 0 ] ; then
 | 
						|
                echo "Repo creation failed!"
 | 
						|
                exit 1
 | 
						|
        fi
 | 
						|
 | 
						|
	gpg -abs --digest-algo sha256 -o dists/$dist_name/Release.gpg dists/$dist_name/Release
 | 
						|
	if [ $? != 0 ] ; then
 | 
						|
		echo "Package signing failed!"
 | 
						|
		exit 1
 | 
						|
	fi
 | 
						|
else
 | 
						|
# RPM-based system
 | 
						|
	if [ ${y_res} == 0 ]; then
 | 
						|
		sudo yum install -y createrepo
 | 
						|
	fi
 | 
						|
	if [ ${z_res} == 0 ]; then
 | 
						|
		sudo zypper -n remove patterns-openSUSE-minimal_base-conflicts
 | 
						|
		sudo zypper -n install createrepo
 | 
						|
	fi
 | 
						|
	echo "%_signature gpg" >> ~/.rpmmacros
 | 
						|
        echo "%_gpg_name MariaDB Maxscale <maxscale@googlegroups.com>" >>  ~/.rpmmacros
 | 
						|
	echo "\r" |  setsid rpm --resign $sourcedir/*.rpm
 | 
						|
 | 
						|
        if [ $? != 0 ] ; then
 | 
						|
                echo "Package signing failed!"
 | 
						|
                exit 1
 | 
						|
        fi
 | 
						|
 | 
						|
	cp $sourcedir/* $destdir/
 | 
						|
	pushd ${destdir} >/dev/null 2>&1
 | 
						|
	    createrepo -d -s sha .
 | 
						|
	        if [ $? != 0 ] ; then
 | 
						|
        	        echo "Repo creation failed!"
 | 
						|
                	exit 1
 | 
						|
	        fi
 | 
						|
 | 
						|
	popd >/dev/null 2>&1
 | 
						|
	gpg --output repomd.xml.key --sign $destdir/repodata/repomd.xml
 | 
						|
	gpg -a --detach-sign $destdir/repodata/repomd.xml
 | 
						|
        if [ $? != 0 ] ; then
 | 
						|
                echo "Package signing failed!"
 | 
						|
                exit 1
 | 
						|
        fi
 | 
						|
fi
 |