From 3ed8b3a58a39f7bf48e0edcf83d32ccbcdc9abcb Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Fri, 9 Dec 2011 00:51:41 +0000 Subject: [PATCH] - added fedora script to build rpms on fedora --- mk/fedora/buildRPMs.sh | 83 +++++++++++++++++++++++++++ mk/fedora/megaglest-rpm-meta.tar.bz2 | Bin 0 -> 17332 bytes 2 files changed, 83 insertions(+) create mode 100755 mk/fedora/buildRPMs.sh create mode 100755 mk/fedora/megaglest-rpm-meta.tar.bz2 diff --git a/mk/fedora/buildRPMs.sh b/mk/fedora/buildRPMs.sh new file mode 100755 index 00000000..d4aa7b46 --- /dev/null +++ b/mk/fedora/buildRPMs.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +# Run this script from its own folder on a Fedora based system. +# This script will install everything needed and copy the source and data archives +# then build RPM's and copy them to a destination. See the section below and +# change the variables as required (I build from my local system). Commented out +# below for example are wget calls to get source and data from the official +# sourceforge links + +# +# Start changes here +# +SOURCE_PACKAGE_VER=3.6.0.1 +DATA_PACKAGE_VER=$SOURCE_PACKAGE_VER + +SOURCE_PACKAGE_RPM_VER=3.6.0 +DATA_PACKAGE_RPM_VER=$SOURCE_PACKAGE_RPM_VER + +SOURCE_COPY_CMD="cp /media/dlinknas/games/MegaGlest/megaglest-source-$SOURCE_PACKAGE_VER.tar.xz ./" +DATA_COPY_CMD="cp /media/dlinknas/games/MegaGlest/megaglest-data-$DATA_PACKAGE_VER.tar.xz ./" + +#SOURCE_COPY_CMD="wget http://sourceforge.net/projects/megaglest/files/megaglest_$SOURCE_PACKAGE_RPM_VER/megaglest-source-$SOURCE_PACKAGE_VER.tar.xz/download -O megaglest-source-$SOURCE_PACKAGE_VER.tar.xz" +#DATA_COPY_CMD="wget http://sourceforge.net/projects/megaglest/files/megaglest_$DATA_PACKAGE_RPM_VER/megaglest-data-$DATA_PACKAGE_VER.tar.xz/download -O megaglest-data-$DATA_PACKAGE_VER.tar.xz" + +SOURCE_PUBLISH_CMD="cp RPMS/x86_64/*.rpm /media/dlinknas/games/MegaGlest/" +DATA_PUBLISH_CMD="cp RPMS/noarch/*.rpm /media/dlinknas/games/MegaGlest/; cp RPMS/x86/*.rpm /media/dlinknas/games/MegaGlest/; cp RPMS/x86_64/*.rpm /media/dlinknas/games/MegaGlest/" +# +# End changes here +# + +#remove old archives +[[ -f "megaglest-source-$SOURCE_PACKAGE_VER.tar.xz" ]] && rm "megaglest-source-$SOURCE_PACKAGE_VER.tar.xz" +[[ -f "megaglest-source-$SOURCE_PACKAGE_RPM_VER.tar.bz2" ]] && rm "megaglest-source-$SOURCE_PACKAGE_RPM_VER.tar.bz2" + +[[ -f "megaglest-data-$DATA_PACKAGE_VER.tar.xz" ]] && rm "megaglest-data-$DATA_PACKAGE_VER.tar.xz" +[[ -f "megaglest-data-$DATA_PACKAGE_RPM_VER.tar.bz2" ]] && rm "megaglest-data-$DATA_PACKAGE_RPM_VER.tar.bz2" + +# Get the source and data archives +echo "copying source archive [$SOURCE_COPY_CMD]" +$SOURCE_COPY_CMD + +echo "setting up source archive..." +tar Jxf megaglest-source-$SOURCE_PACKAGE_VER.tar.xz >/dev/null 2>&1 +tar -cvjf megaglest-source-$SOURCE_PACKAGE_RPM_VER.tar.bz2 megaglest-$SOURCE_PACKAGE_RPM_VER/ >/dev/null 2>&1 +rm -rf megaglest-$SOURCE_PACKAGE_RPM_VER/ +rm megaglest-source-$SOURCE_PACKAGE_VER.tar.xz + +echo "copying data archive [$DATA_COPY_CMD]" +$DATA_COPY_CMD + +echo "setting up data archive..." +tar Jxf megaglest-data-$DATA_PACKAGE_VER.tar.xz >/dev/null 2>&1 +cd megaglest-$DATA_PACKAGE_RPM_VER/ +tar -cvjf megaglest-data-$DATA_PACKAGE_RPM_VER.tar.bz2 * >/dev/null 2>&1 +cd ../ +mv megaglest-$DATA_PACKAGE_RPM_VER/megaglest-data-$DATA_PACKAGE_RPM_VER.tar.bz2 ./ +rm -rf megaglest-$DATA_PACKAGE_RPM_VER/ +rm megaglest-data-$DATA_PACKAGE_VER.tar.xz + +# Install fedora dev and package tools +echo "installing fedora build tools..." +sudo yum install @development-tools +sudo yum install fedora-packager + +# Install dependencies for Megaglest +echo "installing MegaGlest dependencies..." +sudo yum install cmake libX11-devel SDL-devel openal-soft-devel xerces-c-devel freeglut-devel krb5-devel libdrm-devel libidn-devel libjpeg-devel libpng-devel libssh2-devel openldap-devel libxml2-devel subversion mesa-libGL-devel mesa-libGLU-devel openal-soft-devel SDL-devel libcurl-devel c-ares-devel wxGTK-devel glew-devel libogg-devel libvorbis-devel lua-devel wxGTK-devel openssl-devel wxBase desktop-file-utils recode gcc gcc-c++ ftgl-devel ftgl autogen autogen-libopts + +# create an rpm user +echo "creating rpm user (please enter the password: makerpm)" +sudo /usr/sbin/useradd makerpm +echo makerpm | sudo /usr/bin/passwd makerpm --stdin + +echo "copying rpm config files..." +sudo cp megaglest-rpm-meta.tar.bz2 /home/makerpm +sudo cp megaglest-source-$SOURCE_PACKAGE_RPM_VER.tar.bz2 /home/makerpm/rpmbuild/SOURCES/ +sudo cp megaglest-data-$DATA_PACKAGE_RPM_VER.tar.bz2 /home/makerpm/rpmbuild/SOURCES/ + +# now build the binary and data rpms +echo "building rpms..." +su - makerpm -c "rpmdev-setuptree; cd rpmbuild/; tar xvf ../megaglest-rpm-meta.tar.bz2; cd SPECS/; rpmbuild -ba megaglest.spec; cd ../; cp RPMS/x86/*.rpm /media/dlinknas/games/MegaGlest/; $SOURCE_PUBLISH_CMD; mv SOURCES/megaglest-data-3.6.0.tar.bz2 ./; rm -f SOURCES/*; mv megaglest-data-3.6.0.tar.bz2 SOURCES/; rm -f SPECS/*; mv megaglest-data.spec SPECS/; cd SPECS/; rpmbuild -ba megaglest-data.spec; cd ../; $DATA_PUBLISH_CMD; rm -f SOURCES/*; rm -f SPECS/*;" + +echo "DONE building rpms" diff --git a/mk/fedora/megaglest-rpm-meta.tar.bz2 b/mk/fedora/megaglest-rpm-meta.tar.bz2 new file mode 100755 index 0000000000000000000000000000000000000000..b88fffb433e43dd646646e8247579d08a989a67b GIT binary patch literal 17332 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