Browse Source

Allow for more architectures

Nathaniel van Diepen 10 years ago
parent
commit
80716e54b8
8 changed files with 97 additions and 82 deletions
  1. 1 1
      bin/package-add
  2. 78 77
      bin/repo-build
  3. 14 0
      bin/repo-clean
  4. 0 0
      etc/arch.d/i686
  5. 1 1
      etc/arch.d/x86_64
  6. 1 1
      examples/PKGBUILDS/calcpkg
  7. 1 1
      examples/PKGBUILDS/system-msg
  8. 1 1
      skel/index.php

+ 1 - 1
bin/package-add

@@ -29,7 +29,7 @@ if [[ "$1" != "" ]];then
 		cp etc/PKGBUILD.in src/$1/PKGBUILD;
 		case $btype in
 			git)
-				echo -e "pkgver=0.0.0\npkgver() {\n\tcd \"${srcdir%/*}/source\"\n\tif git describe --tags > /dev/null 2>&1;then\n\t\tgit describe --long | sed -E 's/([^-]*-g)/r\1/;s/-/./g';\n\telse\n\t\tdate +%Y%m%d;\n\tfi;}"|cat - src/$1/PKGBUILD > /tmp/out && mv /tmp/out src/$1/PKGBUILD;
+				echo -e "pkgver=0.0.0\npkgver() {\n\tcd \"${srcdir%/*}/source\"\n\tif git describe --tags > /dev/null 2>&1;then\n\t\tgit describe --tags --long | sed -E 's/([^-]*-g)/r\1/;s/-/./g';\n\telse\n\t\tdate +%Y%m%d;\n\tfi;}"|cat - src/$1/PKGBUILD > /tmp/out && mv /tmp/out src/$1/PKGBUILD;
 			;;
 			svn)
 				echo -e "pkgver=0.0.0\npkgver() {\n\tcd \"${srcdir%/*}/source\"\n\tlocal ver="$(svnversion)"\n\tprintf \"r%s\" \"${ver//[[:alpha:]]}\"\n}"|cat - src/$1/PKGBUILD > /tmp/out && mv /tmp/out src/$1/PKGBUILD;

+ 78 - 77
bin/repo-build

@@ -1,97 +1,98 @@
 #!/bin/bash
-if [[ "$1" != "" ]];then
-	override=true;
-else
-	override=false;
-fi;
 root="$(readlink -f $(dirname $BASH_SOURCE)/..)";
 . $root/etc/repo.conf
 . $root/etc/packages.conf
-rm -f $root/repo/latest/i686/*.pkg.tar.xz;
-rm -f $root/repo/latest/x86_64/*.pkg.tar.xz;
+echo "Finding Architectures";
+for arch in $(ls $root/etc/arch.d); do
+	echo -e "\tFound $arch";
+	mkdir -p $root/repo/latest/$arch;
+	mkdir -p $root/repo/updates/$arch;
+	rm -f $root/repo/latest/$arch/*.pkg.tar.xz;
+done;
 for val in "${packages[@]}"; do
 	unset package;
 	declare -A package;
 	eval "package=($val)";
-	name=${package[name]};
-	echo "Checking $name";
-	echo -e "\tChecking for updates";
-	cd $root/src/$name/source;
-	case ${package[type]} in
-		git)
-			git reset --hard > /dev/null;
-			git clean -f -d > /dev/null;
-			git fetch --tags > /dev/null;
-			expect -c "
-				set timeout 1
-				log_user 0
-				spawn git pull
-					expect \"Already up-to-date.\" {
-						exit 1
-					}
-					log_user 1
-					expect eof {
-						exit 0
-					}
-				}";
-			rc=$?;
-			if [[ $rc == 0 ]];then
-				build=true;
-			else
-				build=false;
-			fi;
-		;;
-		svn)
-			svn revert . -R;
-			if [[ "$(svn info -r HEAD | grep -i "Last Changed Rev")" != "$(svn info | grep -i "Last Changed Rev")" ]];then
-				svn update;
-				build=true;
-			else
-				build=false;
-			fi;
-		;;
-		script)
-			if [[ "${package[script]}" != "" ]];then
-				${package[script]};
+	if [[ "${package[ignore]}" == "" ]];then
+		name=${package[name]};
+		echo "Checking $name";
+		echo -e "\tChecking for updates";
+		cd $root/src/$name/source;
+		case ${package[type]} in
+			git)
+				git reset --hard > /dev/null;
+				git clean -f -d > /dev/null;
+				git fetch --tags > /dev/null;
+				expect -c "
+					set timeout 1
+					log_user 0
+					spawn git pull
+						expect \"Already up-to-date.\" {
+							exit 1
+						}
+						log_user 1
+						expect eof {
+							exit 0
+						}
+					}";
 				rc=$?;
 				if [[ $rc == 0 ]];then
-					build=false;
+					build=true;
 				else
+					build=false;
+				fi;
+			;;
+			svn)
+				svn revert . -R;
+				if [[ "$(svn info -r HEAD | grep -i "Last Changed Rev")" != "$(svn info | grep -i "Last Changed Rev")" ]];then
+					svn update;
 					build=true;
+				else
+					build=false;
+				fi;
+			;;
+			script)
+				if [[ "${package[script]}" != "" ]];then
+					${package[script]};
+					rc=$?;
+					if [[ $rc == 0 ]];then
+						build=false;
+					else
+						build=true;
+					fi;
+				else
+					echo -e "\tNo Script configured";
+					build=false;
 				fi;
-			else
-				echo -e "\tNo Script configured";
+			;;
+			*)
+				echo -e "\tType '${package[type]}' not implemented.";
 				build=false;
-			fi;
-		;;
-		*)
-			echo -e "\tType '${package[type]}' not implemented.";
-			build=false;
-	esac;
-	if $build;then
-		echo -e "\tUpdated";
-	else
-		echo -e "\tUp to Date";
-	fi;
-	cd $root/src/$name;
-	if [ $(ls -1 $name-*-i686.pkg.tar.xz 2> /dev/null | wc -l) == 0 ] || [ $(ls -1 $name-*-x86-64.pkg.tar.xz 2> /dev/null | wc -l) == 0 ] || $build || $override;then
-		echo -e "\tBuilding";
-		if $build || $override;then
-			rm -f $name-*-i686.pkg.tar.xz $name-*-x86_64.pkg.tar.xz;
+		esac;
+		if $build;then
+			echo -e "\tUpdated";
+		else
+			echo -e "\tUp to Date";
 		fi;
-		cd $root/src/$name/source;
-		tar -zcvf $root/src/$name/$name.tar.gz *;
 		cd $root/src/$name;
-		updpkgsums;
-		makepkg -c -f --config $root/etc/makepkg-i686.conf;
-		makepkg -c -f --config $root/etc/makepkg-x86_64.conf;
-		echo -e "\tBuilt.";
-		cp $name-*-i686.pkg.tar.xz $root/repo/updates/i686;
-		cp $name-*-x86-64.pkg.tar.xz $root/repo/updates/x86_64;
+		for arch in $(ls $root/etc/arch.d); do
+			if [ $(ls -1 $name-*-i686.pkg.tar.xz 2> /dev/null | wc -l) == 0 ] || [ $(ls -1 $name-*-x86_64.pkg.tar.xz 2> /dev/null | wc -l) == 0 ] || $build;then
+				echo -e "\tBuilding $arch";
+				if $build;then
+					rm -f $name-*-$arch.pkg.tar.xz;
+				fi;
+				cd $root/src/$name/source;
+				tar -zcvf $root/src/$name/$name.tar.gz *;
+				cd $root/src/$name;
+				updpkgsums;
+				makepkg -c -f --config $root/etc/arch.d/$arch;
+				echo -e "\tBuilt.";
+				cp $name-*-$arch.pkg.tar.xz $root/repo/updates/$arch;
+			fi;
+			cp $name-*-$arch.pkg.tar.xz $root/repo/latest/$arch;
+		done;
+		echo -e "\tDone"
 	fi;
-	cp $name-*-i686.pkg.tar.xz $root/repo/latest/i686;
-	cp $name-*-x86-64.pkg.tar.xz $root/repo/latest/x86_64;
-	echo -e "\tDone"
 done;
 echo "Building Repository";
 cd $root/repo/latest/

+ 14 - 0
bin/repo-clean

@@ -0,0 +1,14 @@
+root="$(readlink -f $(dirname $BASH_SOURCE)/..)";
+. $root/etc/packages.conf
+
+echo "Cleaning...";
+for val in "${packages[@]}"; do
+	unset package;
+	declare -A package;
+	eval "package=($val)";
+	name="${package[name]}";
+	echo -e "\t$name";
+	cd $root/src/$name;
+	rm -f *.pkg.tar.xz;
+done;
+echo "Done";

+ 0 - 0
etc/makepkg-i686.conf → etc/arch.d/i686


+ 1 - 1
etc/makepkg-x86_64.conf → etc/arch.d/x86_64

@@ -23,7 +23,7 @@ DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %
 # ARCHITECTURE, COMPILE FLAGS
 #########################################################################
 #
-CARCH="x86-64"
+CARCH="x86_64"
 CHOST="x86-64-pc-linux-gnu"
 
 #-- Compiler and Linker Flags

+ 1 - 1
examples/PKGBUILDS/calcpkg

@@ -3,7 +3,7 @@ pkgver=20131230
 pkgver() {
 	cd "${srcdir%/*}/source"
 	if git describe --tags > /dev/null 2>&1;then
-		git describe --long | sed -E 's/([^-]*-g)/r\1/;s/-/./g';
+		git describe --tags --long | sed -E 's/([^-]*-g)/r\1/;s/-/./g';
 	else
 		date +%Y%m%d;
 	fi;}

+ 1 - 1
examples/PKGBUILDS/system-msg

@@ -3,7 +3,7 @@ pkgver=v2.4.r0.g9aeb780
 pkgver() {
 	cd "${srcdir%/*}/source"
 	if git describe --tags > /dev/null 2>&1;then
-		git describe --long | sed -E 's/([^-]*-g)/r\1/;s/-/./g';
+		git describe --tags --long | sed -E 's/([^-]*-g)/r\1/;s/-/./g';
 	else
 		date +%Y%m%d;
 	fi;

+ 1 - 1
skel/index.php

@@ -8,7 +8,7 @@
 		$desc = substr($desc,strrpos($desc,'%DESC%')+7,strlen($desc)-strrpos($desc,'%DESC%')-(strlen($desc)-strpos($desc,'%CSIZE%'))-7);
 		echo "<h2>$file</h2><p><h4>{$desc}</h4> :: Downloads<br/>";
 		echo " => <a href='i686/$file-i686.pkg.tar.xz'>i686</a><br/>";
-		echo " => <a href='x86_64/$file-x86-64.pkg.tar.xz'>x86-64</a><br/>";
+		echo " => <a href='x86_64/$file-x86-64.pkg.tar.xz'>x86_64</a><br/>";
 		echo "</p>";
 	}
 	echo file_get_contents('templates/footer.template');