null+****@clear*****
null+****@clear*****
2010年 8月 23日 (月) 16:43:27 JST
Kouhei Sutou 2010-08-23 07:43:27 +0000 (Mon, 23 Aug 2010)
New Revision: eff60302091559f5ea0733c2181b64f1efdcfb27
Log:
add files for creating mroonga.
Added files:
apt/Makefile.am
apt/build-deb.sh
apt/build-in-chroot.sh
apt/groonga-storage-engine-depended-packages
apt/sign-repository.sh
apt/update-repository.sh
Modified files:
.gitignore
configure.ac
Modified: .gitignore (+2 -0)
===================================================================
--- .gitignore 2010-08-23 05:43:46 +0000 (6b3156e)
+++ .gitignore 2010-08-23 07:43:27 +0000 (35ca5f2)
@@ -10,6 +10,8 @@ Makefile
Makefile.in
cscope.out
/aclocal.m4
+/apt/debian/
+/apt/ubuntu/
/autom4te.cache
/config.guess
/config.h
Added: apt/Makefile.am (+44 -0) 100644
===================================================================
--- /dev/null
+++ apt/Makefile.am 2010-08-23 07:43:27 +0000 (f89649f)
@@ -0,0 +1,44 @@
+DISTRIBUTIONS = debian ubuntu
+CHROOT_BASE = /var/lib/chroot
+ARCHITECTURES = i386 amd64
+CODES = squeeze unstable lucid
+
+all:
+
+release: remove-existing-packages build update sign upload
+
+remove-existing-packages:
+ for distribution in $(DISTRIBUTIONS); do \
+ find $${distribution}/pool -type f -delete; \
+ done
+
+update:
+ ./update-repository.sh '$(ARCHITECTURES)' '$(CODES)'
+
+sign:
+ ./sign-repository.sh '$(CODES)'
+
+ensure-rsync-path:
+ @if test -z "$(RSYNC_PATH)"; then \
+ echo "--with-rsync-path configure option must be specified."; \
+ false; \
+ fi
+
+upload: ensure-rsync-path
+ for distribution in $(DISTRIBUTIONS); do \
+ (cd $${distribution}; \
+ rsync -avz dists pool $(RSYNC_PATH)/$${distribution}; \
+ ); \
+ done
+
+rsync:
+ for distribution in $(DISTRIBUTIONS); do \
+ (cd $${distribution}; \
+ rsync -avz $(RSYNC_PATH)/$${distribution}/pool/ pool; \
+ ); \
+ done
+
+build:
+ ./build-in-chroot.sh \
+ $(PACKAGE) $(VERSION) $(CHROOT_BASE) \
+ '$(ARCHITECTURES)' '$(CODES)'
Added: apt/build-deb.sh (+59 -0) 100755
===================================================================
--- /dev/null
+++ apt/build-deb.sh 2010-08-23 07:43:27 +0000 (506a50d)
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+LANG=C
+
+PACKAGE=$(cat /tmp/build-package)
+USER_NAME=$(cat /tmp/build-user)
+VERSION=$(cat /tmp/build-version)
+DEPENDED_PACKAGES=$(cat /tmp/depended-packages)
+BUILD_SCRIPT=/tmp/build-deb-in-chroot.sh
+
+mysql_server_package=mysql-server-5.1
+
+run()
+{
+ "$@"
+ if test $? -ne 0; then
+ echo "Failed $@"
+ exit 1
+ fi
+}
+
+if [ ! -x /usr/bin/aptitude ]; then
+ run apt-get install -y aptitude
+fi
+run aptitude update -V -D
+run aptitude safe-upgrade -V -D -y
+
+run aptitude install -V -D -y devscripts ${DEPENDED_PACKAGES}
+run aptitude build-dep -V -D -y ${mysql_server_package}
+run aptitude clean
+
+if ! id $USER_NAME >/dev/null 2>&1; then
+ run useradd -m $USER_NAME
+fi
+
+cat <<EOF > $BUILD_SCRIPT
+#!/bin/sh
+
+rm -rf build
+mkdir -p build
+
+cp /tmp/${PACKAGE}-${VERSION}.tar.gz build/${PACKAGE}_${VERSION}.orig.tar.gz
+cd build
+
+rm -rf mysql-package
+mkdir -p mysql-package
+cd mysql-package
+apt-get source -b ${mysql_server_package}
+cd ..
+ln -fs \$(find mysql-package -maxdepth 1 -type 1) mysql
+
+tar xfz ${PACKAGE}_${VERSION}.orig.tar.gz
+cd ${PACKAGE}-${VERSION}/
+cp -rp /tmp/${PACKAGE}-debian debian
+debuild -us -uc
+EOF
+
+run chmod +x $BUILD_SCRIPT
+run su - $USER_NAME $BUILD_SCRIPT
Added: apt/build-in-chroot.sh (+120 -0) 100755
===================================================================
--- /dev/null
+++ apt/build-in-chroot.sh 2010-08-23 07:43:27 +0000 (490c893)
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+if [ $# != 5 ]; then
+ echo "Usage: $0 PACKAGE VERSION CHROOT_BASE ARCHITECTURES CODES"
+ echo " e.g.: $0 groonga 0.1.9 /var/lib/chroot 'i386 amd64' 'lenny unstable hardy karmic'"
+ exit 1
+fi
+
+PACKAGE=$1
+VERSION=$2
+CHROOT_BASE=$3
+ARCHITECTURES=$4
+CODES=$5
+
+PATH=/usr/local/sbin:/usr/sbin:$PATH
+
+script_base_dir=`dirname $0`
+
+run()
+{
+ "$@"
+ if test $? -ne 0; then
+ echo "Failed $@"
+ exit 1
+ fi
+}
+
+run_sudo()
+{
+ run sudo "$@"
+}
+
+build_chroot()
+{
+ architecture=$1
+ code_name=$2
+
+ run_sudo debootstrap --arch $architecture $code_name $base_dir
+
+ case $code_name in
+ lenny|squeeze|unstable)
+ run_sudo sed -i'' -e 's/us/jp/' $base_dir/etc/apt/sources.list
+ ;;
+ *)
+ run_sudo sed -i'' -e 's/main$/main universe/' \
+ $base_dir/etc/apt/sources.list
+ ;;
+ esac
+
+ run_sudo sh -c "echo >> /etc/fstab"
+ run_sudo sh -c "echo /sys ${base_dir}/sys none bind 0 0 >> /etc/fstab"
+ run_sudo sh -c "echo /dev ${base_dir}/dev none bind 0 0 >> /etc/fstab"
+ run_sudo sh -c "echo devpts-chroot ${base_dir}/dev/pts devpts defaults 0 0 >> /etc/fstab"
+ run_sudo sh -c "echo proc-chroot ${base_dir}/proc proc defaults 0 0 >> /etc/fstab"
+ run_sudo mount ${base_dir}/sys
+ run_sudo mount ${base_dir}/dev
+ run_sudo mount ${base_dir}/dev/pts
+ run_sudo mount ${base_dir}/proc
+}
+
+build()
+{
+ architecture=$1
+ code_name=$2
+
+ target=${code_name}-${architecture}
+ base_dir=${CHROOT_BASE}/${target}
+ if [ ! -d $base_dir ]; then
+ run build_chroot $architecture $code_name
+ fi
+
+ case ${code_name} in
+ lenny|squeeze|unstable)
+ distribution=debian
+ component=main
+ ;;
+ *)
+ distribution=ubuntu
+ component=universe
+ ;;
+ esac
+
+ source_dir=${script_base_dir}/..
+ build_user=${PACKAGE}-build
+ build_user_dir=${base_dir}/home/$build_user
+ build_dir=${build_user_dir}/build
+ pool_base_dir=${script_base_dir}/${distribution}/pool/${code_name}/${component}
+ package_initial=$(echo ${PACKAGE} | sed -e 's/\(.\).*/\1/')
+ pool_dir=${pool_base_dir}/${package_initial}/${PACKAGE}
+ run cp $source_dir/${PACKAGE}-${VERSION}.tar.gz \
+ ${CHROOT_BASE}/$target/tmp/
+ run rm -rf ${CHROOT_BASE}/$target/tmp/${PACKAGE}-debian
+ run cp -rp $source_dir/debian/ \
+ ${CHROOT_BASE}/$target/tmp/${PACKAGE}-debian
+ run echo $PACKAGE > ${CHROOT_BASE}/$target/tmp/build-package
+ run echo $VERSION > ${CHROOT_BASE}/$target/tmp/build-version
+ run echo $build_user > ${CHROOT_BASE}/$target/tmp/build-user
+ run cp ${script_base_dir}/${PACKAGE}-depended-packages \
+ ${CHROOT_BASE}/$target/tmp/depended-packages
+ run cp ${script_base_dir}/build-deb.sh \
+ ${CHROOT_BASE}/$target/tmp/
+ run cat <<EOF > /tmp/groonga.list
+deb http://packages.clear-code.com/${distribution}/ ${code_name} ${component}
+deb-src http://packages.clear-code.com/${distribution}/ ${code_name} ${component}
+EOF
+ run_sudo cp /tmp/groonga.list \
+ ${CHROOT_BASE}/${target}/etc/apt/sources.list.d/
+ run_sudo rm -rf $build_dir
+ run_sudo su -c "/usr/sbin/chroot ${CHROOT_BASE}/$target /tmp/build-deb.sh"
+ run mkdir -p $pool_dir
+ for path in $build_dir/*; do
+ [ -f $path ] && run cp -p $path $pool_dir/
+ done
+}
+
+for architecture in $ARCHITECTURES; do
+ for code_name in $CODES; do
+ build $architecture $code_name
+ done;
+done
Added: apt/groonga-storage-engine-depended-packages (+5 -0) 100644
===================================================================
--- /dev/null
+++ apt/groonga-storage-engine-depended-packages 2010-08-23 07:43:27 +0000 (7f820e5)
@@ -0,0 +1,5 @@
+debhelper
+cdbs
+autotools-dev
+quilt
+libgroonga-dev
Added: apt/sign-repository.sh (+35 -0) 100755
===================================================================
--- /dev/null
+++ apt/sign-repository.sh 2010-08-23 07:43:27 +0000 (da5f905)
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+script_base_dir=`dirname $0`
+
+if [ $# != 1 ]; then
+ echo "Usage: $0 CODES"
+ echo " e.g.: $0 'lenny unstable hardy karmic'"
+ exit 1
+fi
+
+CODES=$1
+
+run()
+{
+ "$@"
+ if test $? -ne 0; then
+ echo "Failed $@"
+ exit 1
+ fi
+}
+
+for code_name in ${CODES}; do
+ case ${code_name} in
+ lenny|squeeze|unstable)
+ distribution=debian
+ ;;
+ *)
+ distribution=ubuntu
+ ;;
+ esac
+
+ release=${distribution}/dists/${code_name}/Release
+ rm -f ${release}.gpg
+ gpg --sign -ba -o ${release}.gpg ${release}
+done
Added: apt/update-repository.sh (+47 -0) 100755
===================================================================
--- /dev/null
+++ apt/update-repository.sh 2010-08-23 07:43:27 +0000 (00140c1)
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+script_base_dir=`dirname $0`
+
+if [ $# != 2 ]; then
+ echo "Usage: $0 ARCHITECTURES CODES"
+ echo " e.g.: $0 'i386 amd64' 'lenny unstable hardy karmic'"
+ exit 1
+fi
+
+ARCHITECTURES=$1
+CODES=$2
+
+run()
+{
+ "$@"
+ if test $? -ne 0; then
+ echo "Failed $@"
+ exit 1
+ fi
+}
+
+for code_name in ${CODES}; do
+ case ${code_name} in
+ lenny|squeeze|unstable)
+ distribution=debian
+ component=main
+ ;;
+ *)
+ distribution=ubuntu
+ component=universe
+ ;;
+ esac
+
+ (cd ${distribution}
+ for architecture in ${ARCHITECTURES}; do
+ mkdir -p dists/${code_name}/${component}/binary-${architecture}
+ mkdir -p dists/${code_name}/${component}/source
+ done
+ rm -f *.db
+ apt-ftparchive generate generate-${code_name}.conf
+ rm -f dists/${code_name}/Release*
+ apt-ftparchive -c release-${code_name}.conf \
+ release dists/${code_name} > /tmp/Release
+ mv /tmp/Release dists/${code_name}
+ );
+done
Modified: configure.ac (+1 -0)
===================================================================
--- configure.ac 2010-08-23 05:43:46 +0000 (0c2c1e0)
+++ configure.ac 2010-08-23 07:43:27 +0000 (02ecf68)
@@ -176,5 +176,6 @@ AC_CONFIG_FILES([
Makefile
test/Makefile
test/unit/Makefile
+ apt/Makefile
])
AC_OUTPUT