Update Mroonga to the latest version on 2014-09-21T00:33:44+0900

This commit is contained in:
Kentoku SHIBA 2014-09-21 00:33:45 +09:00
commit 0cc855cdc8
2027 changed files with 460307 additions and 0 deletions

View file

@ -0,0 +1,7 @@
SUBDIRS = \
apt \
rpm \
source \
ubuntu \
windows \
yum

View file

@ -0,0 +1,55 @@
REPOSITORIES_PATH = repositories
DISTRIBUTIONS = debian
CHROOT_BASE = /var/lib/chroot
ARCHITECTURES = i386 amd64
CODES = wheezy jessie unstable
all:
release: build sign-packages update-repository sign-repository upload
remove-existing-packages:
for distribution in $(DISTRIBUTIONS); do \
find $(REPOSITORIES_PATH)/$${distribution}/pool \
-type f -delete; \
done
download:
for distribution in $(DISTRIBUTIONS); do \
rsync -avz --progress --delete \
$(RSYNC_PATH)/$${distribution} $(REPOSITORIES_PATH)/; \
done
sign-packages:
./sign-packages.sh '$(GPG_UID)' '$(REPOSITORIES_PATH)/' '$(CODES)'
update-repository:
./update-repository.sh '$(PACKAGE_NAME)' '$(REPOSITORIES_PATH)/' \
'$(ARCHITECTURES)' '$(CODES)'
sign-repository:
./sign-repository.sh '$(GPG_UID)' '$(REPOSITORIES_PATH)/' '$(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 $(REPOSITORIES_PATH)/$${distribution}; \
rsync -avz --progress --delete \
dists pool $(RSYNC_PATH)/$${distribution}; \
); \
done
build: source
./build-in-chroot.sh \
$(PACKAGE) $(VERSION) $(srcdir)/.. $(REPOSITORIES_PATH)/ \
$(CHROOT_BASE) '$(ARCHITECTURES)' '$(CODES)'
source: ../$(PACKAGE)-$(VERSION).tar.gz
../$(PACKAGE)-$(VERSION).tar.gz:
ln -s $(abs_top_builddir)/$(PACKAGE)-$(VERSION).tar.gz ../

View file

@ -0,0 +1,121 @@
#!/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
run()
{
"$@"
if test $? -ne 0; then
echo "Failed $@"
exit 1
fi
}
grep '^deb ' /etc/apt/sources.list | \
sed -e 's/^deb /deb-src /' > /etc/apt/sources.list.d/base-source.list
run apt-get update
run apt-get install -V -y lsb-release
distribution=$(lsb_release --id --short)
code_name=$(lsb_release --codename --short)
groonga_list=/etc/apt/sources.list.d/groonga.list
if [ ! -f "${groonga_list}" ]; then
case ${distribution} in
Debian)
component=main
if [ "$code_name" = "sid" ]; then
code_name=unstable
fi
;;
Ubuntu)
component=universe
;;
esac
downcased_distribtion=$(echo ${distribution} | tr A-Z a-z)
run cat <<EOF | run tee ${groonga_list}
deb http://packages.groonga.org/${downcased_distribtion}/ ${code_name} ${component}
deb-src http://packages.groonga.org/${downcased_distribtion}/ ${code_name} ${component}
EOF
apt-get update
run apt-get -V -y --allow-unauthenticated install groonga-keyring
fi
run apt-get update
run apt-get upgrade -V -y
security_list=/etc/apt/sources.list.d/security.list
if [ ! -f "${security_list}" ]; then
run apt-get install -V -y lsb-release
case ${distribution} in
Debian)
if [ "${code_name}" = "sid" ]; then
touch "${security_list}"
else
cat <<EOF > "${security_list}"
deb http://security.debian.org/ ${code_name}/updates main
deb-src http://security.debian.org/ ${code_name}/updates main
EOF
fi
;;
Ubuntu)
cat <<EOF > "${security_list}"
deb http://security.ubuntu.com/ubuntu ${code_name}-security main restricted
deb-src http://security.ubuntu.com/ubuntu ${code_name}-security main restricted
EOF
;;
esac
run apt-get update
run apt-get upgrade -V -y
fi
universe_list=/etc/apt/sources.list.d/universe.list
if [ ! -f "$universe_list}" ]; then
case ${distribution} in
Ubuntu)
sed -e 's/main/universe/' /etc/apt/sources.list > ${universe_list}
run apt-get update
;;
esac
fi
run apt-get install -V -y devscripts ${DEPENDED_PACKAGES}
run apt-get build-dep -y ${mysql_server_package}
run apt-get 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
tar xfz ${PACKAGE}_${VERSION}.orig.tar.gz
cd ${PACKAGE}-${VERSION}/
cp -rp /tmp/${PACKAGE}-debian debian
# export DEB_BUILD_OPTIONS="noopt nostrip"
MYSQL_PACKAGE_INFO=\$(apt-cache show mysql-server | grep Version | sort | tail -1)
MYSQL_PACKAGE_VERSION=\${MYSQL_PACKAGE_INFO##Version: }
sed -i "s/MYSQL_VERSION/\$MYSQL_PACKAGE_VERSION/" debian/control
debuild -us -uc
EOF
run chmod +x $BUILD_SCRIPT
run su - $USER_NAME $BUILD_SCRIPT

View file

@ -0,0 +1,134 @@
#!/bin/sh
if [ $# != 7 ]; then
echo "Usage: $0 PACKAGE VERSION SOURCE_DIR DESTINATION CHROOT_BASE ARCHITECTURES CODES"
echo " e.g.: $0 groonga 0.1.9 SOURCE_DIR repositories/ /var/lib/chroot 'i386 amd64' 'lenny unstable hardy karmic'"
exit 1
fi
PACKAGE=$1
VERSION=$2
SOURCE_DIR=$3
DESTINATION=$4
CHROOT_BASE=$5
ARCHITECTURES=$6
CODES=$7
PATH=/usr/local/sbin:/usr/sbin:$PATH
script_base_dir=`dirname $0`
if test "$PARALLEL" = "yes"; then
parallel="yes"
else
parallel="no"
fi
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
squeeze|wheezy|jessie|unstable)
run_sudo sed -i'' -e 's/us/jp/' $base_dir/etc/apt/sources.list
;;
*)
run_sudo sed -i'' \
-e 's,http://archive,http://jp.archive,' \
-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
squeeze|wheezy|jessie|unstable)
distribution=debian
component=main
;;
*)
distribution=ubuntu
component=universe
;;
esac
source_dir=${SOURCE_DIR}
build_user=${PACKAGE}-build
build_user_dir=${base_dir}/home/$build_user
build_dir=${build_user_dir}/build
pool_base_dir=${DESTINATION}${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_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
if test "$parallel" = "yes"; then
build $architecture $code_name &
else
mkdir -p tmp
build_log=tmp/build-$code_name-$architecture.log
build $architecture $code_name 2>&1 | tee $build_log
fi;
done;
done
if test "$parallel" = "yes"; then
wait
fi

View file

@ -0,0 +1,11 @@
debhelper
autotools-dev
libgroonga-dev
pkg-config
libmecab-dev
mecab-utils
libmysqlclient-dev
libmysqld-dev
libssl-dev
groonga-normalizer-mysql
wget

View file

@ -0,0 +1,42 @@
#!/bin/sh
script_base_dir=`dirname $0`
if [ $# != 3 ]; then
echo "Usage: $0 GPG_UID DESITINATION CODES"
echo " e.g.: $0 'F10399C0' repositories/ 'lenny unstable hardy karmic'"
exit 1
fi
GPG_UID=$1
DESTINATION=$2
CODES=$3
run()
{
"$@"
if test $? -ne 0; then
echo "Failed $@"
exit 1
fi
}
for code_name in ${CODES}; do
case ${code_name} in
squeeze|wheezy|jessie|unstable)
distribution=debian
;;
*)
distribution=ubuntu
;;
esac
base_directory=${DESTINATION}${distribution}
debsign -pgpg2 --re-sign -k${GPG_UID} \
$(find ${base_directory} -name '*.dsc' -or -name '*.changes') &
if [ "${PARALLEL}" != "yes" ]; then
wait
fi
done
wait

View file

@ -0,0 +1,46 @@
#!/bin/sh
script_base_dir=`dirname $0`
if [ $# != 3 ]; then
echo "Usage: $0 GPG_UID DESTINATION CODES"
echo " e.g.: $0 'F10399C0' repositories/ 'lenny unstable hardy karmic'"
exit 1
fi
GPG_UID=$1
DESTINATION=$2
CODES=$3
run()
{
"$@"
if test $? -ne 0; then
echo "Failed $@"
exit 1
fi
}
for code_name in ${CODES}; do
case ${code_name} in
squeeze|wheezy|jessie|unstable)
distribution=debian
;;
*)
distribution=ubuntu
;;
esac
release=${DESTINATION}${distribution}/dists/${code_name}/Release
rm -f ${release}.gpg
gpg2 --sign --detach-sign --armor \
--local-user ${GPG_UID} \
--output ${release}.gpg \
${release} &
if [ "${PARALLEL}" != "yes" ]; then
wait
fi
done
wait

View file

@ -0,0 +1,130 @@
#!/bin/sh
script_base_dir=`dirname $0`
if [ $# != 4 ]; then
echo "Usage: $0 PROJECT_NAME DESTINATION ARCHITECTURES CODES"
echo " e.g.: $0 mroonga repositories/ 'i386 amd64' 'lenny unstable hardy karmic'"
exit 1
fi
PROJECT_NAME=$1
DESTINATION=$2
ARCHITECTURES=$3
CODES=$4
run()
{
"$@"
if test $? -ne 0; then
echo "Failed $@"
exit 1
fi
}
update_repository()
{
distribution=$1
code_name=$2
component=$3
rm -rf dists/${code_name}
mkdir -p dists/${code_name}/${component}/binary-i386/
mkdir -p dists/${code_name}/${component}/binary-amd64/
mkdir -p dists/${code_name}/${component}/source/
cat <<EOF > dists/.htaccess
Options +Indexes
EOF
cat <<EOF > dists/${code_name}/${component}/binary-i386/Release
Archive: ${code_name}
Component: ${component}
Origin: The ${PROJECT_NAME} project
Label: The ${PROJECT_NAME} project
Architecture: i386
EOF
cat <<EOF > dists/${code_name}/${component}/binary-amd64/Release
Archive: ${code_name}
Component: ${component}
Origin: The ${PROJECT_NAME} project
Label: The ${PROJECT_NAME} project
Architecture: amd64
EOF
cat <<EOF > dists/${code_name}/${component}/source/Release
Archive: ${code_name}
Component: ${component}
Origin: The ${PROJECT_NAME} project
Label: The ${PROJECT_NAME} project
Architecture: source
EOF
cat <<EOF > generate-${code_name}.conf
Dir::ArchiveDir ".";
Dir::CacheDir ".";
TreeDefault::Directory "pool/${code_name}/${component}";
TreeDefault::SrcDirectory "pool/${code_name}/${component}";
Default::Packages::Extensions ".deb";
Default::Packages::Compress ". gzip bzip2";
Default::Sources::Compress ". gzip bzip2";
Default::Contents::Compress "gzip bzip2";
BinDirectory "dists/${code_name}/${component}/binary-i386" {
Packages "dists/${code_name}/${component}/binary-i386/Packages";
Contents "dists/${code_name}/Contents-i386";
SrcPackages "dists/${code_name}/${component}/source/Sources";
};
BinDirectory "dists/${code_name}/${component}/binary-amd64" {
Packages "dists/${code_name}/${component}/binary-amd64/Packages";
Contents "dists/${code_name}/Contents-amd64";
SrcPackages "dists/${code_name}/${component}/source/Sources";
};
Tree "dists/${code_name}" {
Sections "${component}";
Architectures "i386 amd64 source";
};
EOF
apt-ftparchive generate generate-${code_name}.conf
chmod 644 dists/${code_name}/Contents-*
rm -f dists/${code_name}/Release*
rm -f *.db
cat <<EOF > release-${code_name}.conf
APT::FTPArchive::Release::Origin "The ${PROJECT_NAME} project";
APT::FTPArchive::Release::Label "The ${PROJECT_NAME} project";
APT::FTPArchive::Release::Architectures "i386 amd64";
APT::FTPArchive::Release::Codename "${code_name}";
APT::FTPArchive::Release::Suite "${code_name}";
APT::FTPArchive::Release::Components "${component}";
APT::FTPArchive::Release::Description "${PACKAGE_NAME} packages";
EOF
apt-ftparchive -c release-${code_name}.conf \
release dists/${code_name} > /tmp/Release
mv /tmp/Release dists/${code_name}
}
for code_name in ${CODES}; do
case ${code_name} in
squeeze|wheezy|jessie|unstable)
distribution=debian
component=main
;;
*)
distribution=ubuntu
component=universe
;;
esac
mkdir -p ${DESTINATION}${distribution}
(cd ${DESTINATION}${distribution}
update_repository $distribution $code_name $component) &
if [ "${PARALLEL}" != "yes" ]; then
wait
fi
done
wait

View file

@ -0,0 +1,665 @@
#!/bin/sh
# Usage: check-utility.sh [--install-groonga]
# [--check-install]
# [--check-address]
# [--enable-repository]
#
# CODES="squeeze wheezy unstable lucid natty oneiric precise"
# DISTRIBUTIONS="centos fedora"
CHROOT_ROOT=/var/lib/chroot
CHECK_ADDRESS=0
CHECK_INSTALL=0
CHECK_INSTALL_PACKAGE=mysql-server-mroonga
CHECK_BUILD=0
CHECK_DEPENDS=0
CHECK_PROVIDES=0
ENABLE_REPOSITORY=0
DISABLE_REPOSITORY=0
INSTALL_SCRIPT=0
INSTALL_MROONGA=0
UNINSTALL_MROONGA=0
common_deb_procedure ()
{
for code in $CODES; do
for arch in $DEB_ARCHITECTURES; do
root_dir=$CHROOT_ROOT/$code-$arch
eval $1 $code $arch $root_dir
done
done
}
common_rpm_procedure ()
{
for dist in $DISTRIBUTIONS; do
case $dist in
"fedora")
DISTRIBUTIONS_VERSION="19"
;;
"centos")
DISTRIBUTIONS_VERSION="5 6"
;;
esac
for ver in $DISTRIBUTIONS_VERSION; do
for arch in $RPM_ARCHITECTURES; do
root_dir=$CHROOT_ROOT/$dist-$ver-$arch
eval $1 $dist $arch $ver $root_dir
done
done
done
}
echo_packages_repository_address ()
{
root_dir=$1
code=$2
arch=$3
address=`grep "packages.groonga.org" $root_dir/etc/hosts | grep -v "#"`
if [ -z "$address" ]; then
echo "$code-$arch: default"
else
echo "$code-$arch: $address"
fi
}
setup_distributions ()
{
if [ -z "$DISTRIBUTIONS" ]; then
DISTRIBUTIONS="centos fedora"
fi
}
setup_rpm_architectures ()
{
if [ -z "$RPM_ARCHITECTURES" ]; then
RPM_ARCHITECTURES="i386 x86_64"
fi
}
setup_codes ()
{
if [ -z "$CODES" ]; then
CODES="squeeze wheezy jessie unstable lucid precise quantal raring"
fi
}
setup_deb_architectures ()
{
if [ -z "$DEB_ARCHITECTURES" ]; then
DEB_ARCHITECTURES="i386 amd64"
fi
}
check_packages_repository_address ()
{
common_deb_procedure "check_packages_deb_repository_address"
common_rpm_procedure "check_packages_rpm_repository_address"
}
check_packages_deb_repository_address ()
{
code=$1
arch=$2
root_dir=$4
echo_packages_repository_address "$root_dir" "$code" "$arch"
}
check_packages_rpm_repository_address ()
{
dist=$1
arch=$2
ver=$3
root_dir=$4
echo_packages_repository_address "$root_dir" "$dist-$ver" "$arch"
}
host_address ()
{
ifconfig_result=`LANG=C /sbin/ifconfig wlan0`
inet_addr=`echo "$ifconfig_result" | grep "inet addr:192"`
address=`echo $inet_addr | ruby -ne '/inet addr:(.+?)\s/ =~ $_ && puts($1)'`
HOST_ADDRESS=$address
}
check_build_packages ()
{
common_deb_procedure "check_build_deb_packages"
common_rpm_procedure "check_build_rpm_packages"
}
check_build_deb_packages ()
{
code=$1
arch=$2
BASE_VERSION=`cat ../version`
RESULT_SET=`find apt/repositories -name "*$BASE_VERSION*" | grep $code | grep $arch`
if [ -z "$RESULT_SET" ]; then
printf "%8s %5s %s => 0 deb\n" $code $arch $BASE_VERSION
else
PACKAGE_COUNT=`find apt/repositories -name "*$BASE_VERSION*" | grep $code | grep $arch | wc | awk '{print \$1}'`
printf "%8s %5s %s => %2d debs\n" $code $arch $BASE_VERSION $PACKAGE_COUNT
fi
}
check_build_rpm_packages ()
{
dist=$1
arch=$2
ver=$3
BASE_VERSION=`cat ../version`
FIND_PATH=yum/repositories/$dist/$ver/$arch
RESULT_SET=`find $FIND_PATH -name "*$BASE_VERSION*"`
if [ -z "$RESULT_SET" ]; then
printf "%8s %6s %s => 0 rpm\n" $dist$ver $arch $BASE_VERSION
else
PACKAGE_COUNT=`find $FIND_PATH -name "*$BASE_VERSION*" | wc -l`
printf "%8s %6s %s => %2d rpms\n" $dist$ver $arch $BASE_VERSION $PACKAGE_COUNT
fi
}
check_depends_packages ()
{
common_deb_procedure "check_depends_deb_packages"
common_rpm_procedure "check_depends_rpm_packages"
}
check_depends_deb_packages ()
{
code=$1
arch=$2
BASE_VERSION=`cat ../version`
FIND_PATH=apt/repositories/*/pool/$code
RESULT_SET=`find $FIND_PATH -name "*$BASE_VERSION*.deb"`
if [ -z "$RESULT_SET" ]; then
printf "%8s %5s %s => 404 deb\n" $code $arch $BASE_VERSION
else
for pkg in $RESULT_SET; do
DEB_NAME=`basename $pkg`
DEPENDS=`dpkg -I $pkg | grep "Depends"`
printf "%8s %5s %s => %s\n" $code $arch $DEB_NAME "$DEPENDS"
done
fi
}
check_depends_rpm_packages ()
{
dist=$1
arch=$2
ver=$3
BASE_VERSION=`cat ../version`
FIND_PATH=yum/repositories/$dist/$ver/$arch
RESULT_SET=`find $FIND_PATH -name "*$BASE_VERSION*"`
if [ -z "$RESULT_SET" ]; then
printf "%8s %6s %s => 404 rpm\n" $dist$ver $arch $BASE_VERSION
else
for pkg in $RESULT_SET; do
RPM_NAME=`basename $pkg`
DEPENDS=`rpm -qp --requires $pkg | grep -i "mysql" | tr -t '\n' ' '`
printf "%9s %6s %s => %s\n" $dist$ver $arch $RPM_NAME "$DEPENDS"
done
fi
}
check_provided_mysql_packages ()
{
common_deb_procedure "check_provided_mysql_deb_packages"
common_rpm_procedure "check_provided_mysql_rpm_packages"
for code in $CODES; do
echo $code
cat tmp/$code-amd64-mysql-server.txt
done
for dist in $DISTRIBUTIONS; do
echo $dist
cat tmp/$dist-x86_64-mysql-server.txt
done
}
check_provided_mysql_deb_packages ()
{
code=$1
arch=$2
root_dir=$3
cat > tmp/check-provided-mysql.sh <<EOF
#!/bin/sh
apt-get update > /dev/null
apt-cache show mysql-server | grep "Version" | head -1 > /tmp/$code-$arch-mysql-server.txt
EOF
if [ -d $root_dir ]; then
CHECK_SCRIPT=check-provided-mysql.sh
echo "copy check script $CHECK_SCRIPT to $root_dir/tmp"
sudo rm -f $root_dir/tmp/$CHECK_SCRIPT
cp tmp/$CHECK_SCRIPT $root_dir/tmp
sudo chmod 755 $root_dir/tmp/$CHECK_SCRIPT
sudo chname $code-$arch chroot $root_dir /tmp/$CHECK_SCRIPT
cp $root_dir/tmp/$code-$arch-mysql-server.txt tmp
fi
}
check_provided_mysql_rpm_packages ()
{
dist=$1
arch=$2
ver=$3
root_dir=$4
cat > tmp/check-provided-mysql.sh <<EOF
#!/bin/sh
yum update > /dev/null
yum info mysql-server | grep "Version" > /tmp/$code-$arch-mysql-server.txt
EOF
if [ -d $root_dir ]; then
CHECK_SCRIPT=check-provided-mysql.sh
echo "copy check script $CHECK_SCRIPT to $root_dir/tmp"
sudo rm -f $root_dir/tmp/$CHECK_SCRIPT
cp tmp/$CHECK_SCRIPT $root_dir/tmp
sudo chmod 755 $root_dir/tmp/$CHECK_SCRIPT
sudo chname $code-$arch chroot $root_dir /tmp/$CHECK_SCRIPT
cp $root_dir/tmp/$code-$arch-mysql-server.txt tmp
fi
}
check_installed_mroonga_packages ()
{
common_deb_procedure "check_installed_mroonga_deb_packages"
common_rpm_procedure "check_installed_mroonga_rpm_packages"
}
check_installed_mroonga_deb_packages ()
{
code=$1
arch=$2
root_dir=$3
cat > tmp/check-deb-mroonga.sh <<EOF
#!/bin/sh
dpkg -l | grep $CHECK_INSTALL_PACKAGE
EOF
if [ -d $root_dir ]; then
CHECK_SCRIPT=check-deb-mroonga.sh
echo "copy check script $CHECK_SCRIPT to $root_dir/tmp"
sudo rm -f $root_dir/tmp/$CHECK_SCRIPT
cp tmp/$CHECK_SCRIPT $root_dir/tmp
sudo chmod 755 $root_dir/tmp/$CHECK_SCRIPT
sudo chname $code-$arch chroot $root_dir /tmp/$CHECK_SCRIPT
fi
}
check_installed_mroonga_rpm_packages ()
{
dist=$1
arch=$2
ver=$3
root_dir=$4
cat > tmp/check-rpm-mroonga.sh <<EOF
#!/bin/sh
rpm -qa | grep $CHECK_INSTALL_PACKAGE
EOF
CHECK_SCRIPT=check-rpm-mroonga.sh
if [ -d $root_dir ]; then
echo "copy check script $CHECK_SCRIPT to $root_dir/tmp"
sudo rm -f $root_dir/tmp/$CHECK_SCRIPT
cp tmp/$CHECK_SCRIPT $root_dir/tmp
sudo chmod 755 $root_dir/tmp/$CHECK_SCRIPT
sudo chname $code-$ver-$arch chroot $root_dir /tmp/$CHECK_SCRIPT
fi
}
install_mroonga_packages ()
{
common_deb_procedure "install_mroonga_deb_packages"
common_rpm_procedure "install_mroonga_rpm_packages"
}
install_mroonga_deb_packages ()
{
code=$1
arch=$2
root_dir=$4
cat > tmp/install-aptitude-mroonga.sh <<EOF
#!/bin/sh
sudo aptitude clean
rm -f /var/lib/apt/lists/packages.groonga.org_*
rm -f /var/lib/apt/lists/partial/packages.groonga.org_*
sudo aptitude update
sudo aptitude -V -D -y --allow-untrusted install groonga-keyring
sudo aptitude update
sudo aptitude -V -D install mysql-server-mroonga
sudo aptitude -V -D install groonga-tokenizer-mecab
EOF
cat > tmp/install-aptget-mroonga.sh <<EOF
#!/bin/sh
sudo apt-get clean
rm -f /var/lib/apt/lists/packages.groonga.org_*
rm -f /var/lib/apt/lists/partial/packages.groonga.org_*
sudo apt-get update
sudo apt-get -y --allow-unauthenticated install groonga-keyring
sudo apt-get update
sudo apt-get -V -y install mysql-server-mroonga
sudo apt-get -V -y install groonga-tokenizer-mecab
EOF
root_dir=$CHROOT_ROOT/$code-$arch
INSTALL_SCRIPT=""
case $code in
squeeze|unstable)
INSTALL_SCRIPT=install-aptitude-mroonga.sh
;;
*)
INSTALL_SCRIPT=install-aptget-mroonga.sh
;;
esac
if [ -d $root_dir ]; then
echo "copy install script $INSTALL_SCRIPT to $root_dir/tmp"
sudo rm -f $root_dir/tmp/$INSTALL_SCRIPT
cp tmp/$INSTALL_SCRIPT $root_dir/tmp
chmod 755 $root_dir/tmp/$INSTALL_SCRIPT
sudo chname $code-$arch chroot $root_dir /tmp/$INSTALL_SCRIPT
fi
}
install_mroonga_rpm_packages ()
{
dist=$1
arch=$2
ver=$3
root_dir=$4
cat > tmp/install-centos5-mroonga.sh <<EOF
sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-0.noarch.rpm
sudo yum makecache
sudo yum install -y MySQL-server
sudo service mysql start
sudo yum install -y mysql-mroonga
sudo yum install -y groonga-tokenizer-mecab
EOF
cat > tmp/install-centos6-mroonga.sh <<EOF
sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-0.noarch.rpm
sudo yum makecache
sudo yum install -y mysql-server
sudo service mysql start
sudo yum install -y mysql-mroonga
sudo yum install -y groonga-tokenizer-mecab
EOF
cat > tmp/install-fedora-mroonga.sh <<EOF
sudo rpm -ivh http://packages.groonga.org/fedora/groonga-release-1.1.0-0.noarch.rpm
sudo yum makecache
sudo yum install -y mysql-mroonga
sudo yum install -y groonga-tokenizer-mecab
EOF
INSTALL_SCRIPT=""
case "$dist-$ver" in
centos-5)
INSTALL_SCRIPT=install-centos5-mroonga.sh
;;
centos-6)
INSTALL_SCRIPT=install-centos6-mroonga.sh
;;
fedora-18)
INSTALL_SCRIPT=install-fedora-mroonga.sh
;;
*)
;;
esac
if [ -d $root_dir ]; then
echo "copy install script $INSTALL_SCRIPT to $root_dir/tmp"
sudo rm -f $root_dir/tmp/$INSTALL_SCRIPT
cp tmp/$INSTALL_SCRIPT $root_dir/tmp
chmod 755 $root_dir/tmp/$INSTALL_SCRIPT
sudo chname $code-$ver-$arch chroot $root_dir /tmp/$INSTALL_SCRIPT
fi
}
uninstall_mroonga_packages ()
{
common_deb_procedure "uninstall_mroonga_deb_packages"
common_rpm_procedure "uninstall_mroonga_rpm_packages"
}
uninstall_mroonga_deb_packages ()
{
code=$1
arch=$2
root_dir=$4
UNINSTALL_SCRIPT=uninstall-deb-mroonga.sh
cat > $UNINSTALL_SCRIPT <<EOF
#!/bin/sh
sudo apt-get purge mroonga-* mysql-*
EOF
if [ -d $root_dir ]; then
echo "copy uninstall script $UNINSTALL_SCRIPT to $root_dir/tmp"
sudo rm -f $root_dir/tmp/$UNINSTALL_SCRIPT
cp $UNINSTALL_SCRIPT $root_dir/tmp
chmod 755 $root_dir/tmp/$UNINSTALL_SCRIPT
sudo chname $code-$arch chroot $root_dir /tmp/$UNINSTALL_SCRIPT
fi
}
uninstall_mroonga_rpm_packages ()
{
dist=$1
arch=$2
ver=$3
root_dir=$4
UNINSTALL_SCRIPT=uninstall-rpm-mroonga.sh
cat > tmp/$UNINSTALL_SCRIPT <<EOF
#!/bin/sh
sudo yum remove mroonga-* mysql-*
EOF
if [ -d $root_dir ]; then
echo "copy install script $UNINSTALL_SCRIPT to $root_dir/tmp"
sudo rm -f $root_dir/tmp/$UNINSTALL_SCRIPT
cp tmp/$UNINSTALL_SCRIPT $root_dir/tmp
chmod 755 $root_dir/tmp/$UNINSTALL_SCRIPT
sudo chname $code-$ver-$arch chroot $root_dir /tmp/$UNINSTALL_SCRIPT
fi
}
enable_temporaly_mroonga_repository ()
{
cat > tmp/enable-repository.sh <<EOF
#!/bin/sh
grep -v "packages.groonga.org" /etc/hosts > /tmp/hosts
echo "$HOST_ADDRESS packages.groonga.org" >> /tmp/hosts
cp -f /tmp/hosts /etc/hosts
EOF
common_deb_procedure "enable_temporaly_mroonga_deb_repository"
common_rpm_procedure "enable_temporaly_mroonga_rpm_repository"
check_packages_repository_address
}
enable_temporaly_mroonga_deb_repository ()
{
code=$1
arch=$2
root_dir=$4
today=`date '+%Y%m%d.%s'`
if [ -d $root_dir ]; then
sudo cp $root_dir/etc/hosts $root_dir/etc/hosts.$today
sudo cp tmp/enable-repository.sh $root_dir/tmp
sudo chname $code-$arch chroot $root_dir /tmp/enable-repository.sh
fi
}
enable_temporaly_mroonga_rpm_repository ()
{
dist=$1
arch=$2
ver=$3
root_dir=$4
today=`date '+%Y%m%d.%s'`
if [ -d $root_dir ]; then
sudo cp $root_dir/etc/hosts $root_dir/etc/hosts.$today
sudo cp tmp/enable-repository.sh $root_dir/tmp
sudo chname $code-$arch chroot $root_dir /tmp/enable-repository.sh
fi
}
disable_temporaly_mroonga_repository ()
{
cat > tmp/disable-repository.sh <<EOF
#!/bin/sh
grep -v "packages.groonga.org" /etc/hosts > /tmp/hosts
cp -f /tmp/hosts /etc/hosts
EOF
common_deb_procedure "disable_temporaly_mroonga_deb_repository"
common_rpm_procedure "disable_temporaly_mroonga_rpm_repository"
check_packages_repository_address
}
disable_temporaly_mroonga_deb_repository ()
{
code=$1
arch=$2
root_dir=$4
DISABLE_SCRIPT=disable-repository.sh
today=`date '+%Y%m%d.%s'`
if [ -d $root_dir ]; then
sudo cp $root_dir/etc/hosts $root_dir/etc/hosts.$today
cp tmp/$DISABLE_SCRIPT $root_dir/tmp
chmod 755 $root_dir/tmp/$DISABLE_SCRIPT
sudo chname $code-$arch chroot $root_dir /tmp/$DISABLE_SCRIPT
fi
}
disable_temporaly_mroonga_rpm_repository ()
{
dist=$1
arch=$2
ver=$3
root_dir=$4
DISABLE_SCRIPT=disable-repository.sh
today=`date '+%Y%m%d.%s'`
if [ -d $root_dir ]; then
sudo cp $root_dir/etc/hosts $root_dir/etc/hosts.$today
cp tmp/$DISABLE_SCRIPT $root_dir/tmp
chmod 755 $root_dir/tmp/$DISABLE_SCRIPT
sudo chname $code-$arch chroot $root_dir /tmp/$DISABLE_SCRIPT
fi
}
host_address
echo $HOST_ADDRESS
while [ $# -ne 0 ]; do
case $1 in
--check-install)
CHECK_INSTALL=1
shift
if [ ! -z "$1" ]; then
case $1 in
groonga|mroonga|roonga|mecab|mysql)
CHECK_INSTALL_PACKAGE=$1
;;
*)
;;
esac
fi
;;
--check-address)
CHECK_ADDRESS=1
shift
;;
--check-depends)
CHECK_DEPENDS=1
shift
;;
--check-provides)
CHECK_PROVIDES=1
shift
;;
--check-build)
CHECK_BUILD=1
shift
;;
--enable-repository)
ENABLE_REPOSITORY=1
shift
;;
--disable-repository)
DISABLE_REPOSITORY=1
shift
;;
--install-mroonga)
INSTALL_MROONGA=1
shift
;;
--uninstall-mroonga)
UNINSTALL_MROONGA=1
shift
;;
--code)
shift
if [ "$1" = "all" ]; then
setup_codes
else
CODES=$1
fi
shift
;;
--code-arch)
shift
if [ "$1" = "all" ]; then
setup_deb_architectures
else
DEB_ARCHITECTURES=$1
fi
shift
;;
--dist)
shift
if [ "$1" = "all" ]; then
setup_distributions
else
DISTRIBUTIONS=$1
fi
shift
;;
--dist-arch)
shift
if [ "$1" = "all" ]; then
setup_rpm_architectures
else
RPM_ARCHITECTURES=$1
fi
shift
;;
*)
shift
;;
esac
done
mkdir -p tmp
setup_deb_architectures
setup_rpm_architectures
if [ $CHECK_INSTALL -ne 0 ]; then
check_installed_mroonga_packages
fi
if [ $CHECK_ADDRESS -ne 0 ]; then
check_packages_repository_address
fi
if [ $CHECK_BUILD -ne 0 ]; then
check_build_packages
fi
if [ $CHECK_DEPENDS -ne 0 ]; then
check_depends_packages
fi
if [ $CHECK_PROVIDES -ne 0 ]; then
check_provided_mysql_packages
fi
if [ $ENABLE_REPOSITORY -ne 0 ]; then
enable_temporaly_mroonga_repository
fi
if [ $DISABLE_REPOSITORY -ne 0 ]; then
disable_temporaly_mroonga_repository
fi
if [ $INSTALL_MROONGA -ne 0 ]; then
install_mroonga_packages
fi
if [ $UNINSTALL_MROONGA -ne 0 ]; then
uninstall_mroonga_packages
fi

View file

@ -0,0 +1,5 @@
/usr/lib/groonga/plugins/ r,
/usr/lib/groonga/plugins/** rm,
/etc/mecabrc r,
/var/lib/mecab/dic/** r,
#include <local/mysql-server-mroonga>

View file

@ -0,0 +1,355 @@
mroonga (4.05-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Fri, 29 Aug 2014 00:00:00 +0900
mroonga (4.04-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Tue, 29 Jul 2014 00:00:00 +0900
mroonga (4.03-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Thu, 29 May 2014 00:00:00 +0900
mroonga (4.02-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Tue, 29 Apr 2014 00:00:00 +0900
mroonga (4.01-2) unstable; urgency=low
* Built for mysql-server 5.5.37
-- HAYASHI Kentaro <hayashi@clear-code.com> Mon, 28 Apr 2014 00:00:00 +0900
mroonga (4.01-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sat, 29 Mar 2014 00:00:00 +0900
mroonga (4.00-2) unstable; urgency=low
* Built for mysql-server 5.5.35+dfsg-2 on Debian jessie
* Built for mysql-server 5.5.35+dfsg-2 on Debian sid
-- HAYASHI Kentaro <hayashi@clear-code.com> Thu, 06 Mar 2014 00:00:00 +0900
mroonga (4.00-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sun, 09 Feb 2014 00:00:00 +0900
mroonga (3.12-2) unstable; urgency=low
* Built for mysql-server updates on Ubuntu 12.04,12.10, and 13.10.
-- HAYASHI Kentaro <hayashi@clear-code.com> Wed, 29 Jan 2014 13:12:56 +0900
mroonga (3.12-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Wed, 29 Jan 2014 00:00:00 +0900
mroonga (3.11-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sun, 29 Dec 2013 00:00:00 +0900
mroonga (3.10-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Fri, 29 Nov 2013 00:00:00 +0900
mroonga (3.09-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Tue, 29 Oct 2013 00:00:00 +0900
mroonga (3.08-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sun, 29 Sep 2013 00:00:00 +0900
mroonga (3.07-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Thu, 29 Aug 2013 00:00:00 +0900
mroonga (3.06-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Mon, 29 Jul 2013 00:00:00 +0900
mroonga (3.05-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sat, 29 Jun 2013 00:00:00 +0900
mroonga (3.04-2) unstable; urgency=low
* Built for mysql-server 5.5.31-0ubuntu0.12.04.2 on Ubuntu 12.04 (precise)
-- HAYASHI Kentaro <hayashi@clear-code.com> Thu, 13 Jun 2013 00:00:00 +0900
mroonga (3.04-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Wed, 29 May 2013 00:00:00 +0900
mroonga (3.03-2) unstable; urgency=low
* Built for mysql-server 5.5.31+dfsg-0+wheezy1 on Debian wheezy
* Built for mysql-server 5.5.31+dfsg-1 on Debian unstable
-- HAYASHI Kentaro <hayashi@clear-code.com> Thu, 16 May 2013 00:00:00 +0900
mroonga (3.03-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Mon, 29 Apr 2013 00:00:00 +0900
mroonga (3.02-2) unstable; urgency=low
* Built for mysql-server 5.5.29-0ubuntu0.12.04.2 on Ubuntu 12.04 (precise)
-- HAYASHI Kentaro <hayashi@clear-code.com> Fri, 29 Mar 2013 22:15:39 +0900
mroonga (3.02-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Fri, 29 Mar 2013 00:00:00 +0900
mroonga (3.01-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Thu, 28 Feb 2013 00:00:00 +0900
mroonga (3.00-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sat, 09 Feb 2013 00:00:00 +0900
mroonga (2.10-2) unstable; urgency=low
* Built for mysql-server 5.5.29+dfsg-1 on Debian/unstable.
* Built for mysql-server 5.1.67-0ubuntu0.10.04.1 on Ubuntu 10.04(lucid).
* Built for mysql-server 5.1.67-0ubuntu0.11.10.1 on Ubuntu 11.10(oneiric).
* Built for mysql-server 5.5.29-0ubuntu0.12.04.1 on Ubuntu 12.04(precise).
* Built for mysql-server 5.5.29-0ubuntu0.12.10.1 on Ubuntu 12.10(quantal).
-- HAYASHI Kentaro <hayashi@clear-code.com> Thu, 24 Jan 2013 10:28:16 +0900
mroonga (2.10-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sat, 29 Dec 2012 00:00:00 +0900
mroonga (2.09-2) unstable; urgency=low
* Built for mysql-server 5.5.28-0ubuntu0.12.10.2 on Ubuntu 12.10.
Reported by @watanabekiyokaz
-- HAYASHI Kentaro <hayashi@clear-code.com> Wed, 12 Dec 2012 13:28:00 +0900
mroonga (2.09-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Thu, 29 Nov 2012 00:00:00 +0900
mroonga (2.08-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Mon, 29 Oct 2012 00:00:00 +0900
mroonga (2.07-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sat, 29 Sep 2012 00:00:00 +0900
mroonga (2.06-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Wed, 29 Aug 2012 00:00:00 +0900
mroonga (2.05-1) unstable; urgency=low
* New upstream release.
-- HAYASHI Kentaro <hayashi@clear-code.com> Sun, 29 Jul 2012 00:00:00 +0900
mroonga (2.04-1) unstable; urgency=low
* New upstream release.
* Ensure deleting mroonga plugin before install.
Suggested by Kazuhiro Isobe. Thanks!!!
-- Kouhei Sutou <kou@clear-code.com> Fri, 29 Jun 2012 00:00:00 +0900
mroonga (2.03-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Tue, 29 May 2012 00:00:00 +0900
mroonga (2.02-1) unstable; urgency=low
* New upstream release.
* Require groonga >= 2.0.2.
-- Kouhei Sutou <kou@clear-code.com> Sun, 29 Apr 2012 00:00:00 +0900
mroonga (2.01-1) unstable; urgency=low
* New upstream release.
* Ensure plugin is uninstalled by closing all tables use mroonga.
-- Kouhei Sutou <kou@clear-code.com> Thu, 29 Mar 2012 00:00:00 +0900
mroonga (2.00-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Wed, 29 Feb 2012 00:00:00 +0900
mroonga (1.20-1) unstable; urgency=low
* New upstream release.
* Add mysql-server-mroonga-compatible package for "groonga" storage engine.
-- Kouhei Sutou <kou@clear-code.com> Sun, 29 Jan 2012 00:00:00 +0900
mroonga (1.11-1) unstable; urgency=low
* New upstream release.
* Change apparmor configuration file name:
mysql-server-groonga -> mysql-server-mroonga
-- Kouhei Sutou <kou@clear-code.com> Thu, 29 Dec 2011 00:00:00 +0900
mroonga (1.10-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Sat, 29 Oct 2011 00:00:00 +0900
groonga-storage-engine (1.0.0-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Thu, 29 Sep 2011 00:00:00 +0900
groonga-storage-engine (0.9-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Mon, 29 Aug 2011 00:00:00 +0900
groonga-storage-engine (0.8-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Fri, 29 Jul 2011 00:00:00 +0900
groonga-storage-engine (0.7-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Wed, 29 Jun 2011 00:00:00 +0900
groonga-storage-engine (0.6-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Sun, 29 May 2011 00:00:00 +0900
groonga-storage-engine (0.5-4) unstable; urgency=low
* fix a typo.
-- Kouhei Sutou <kou@clear-code.com> Tue, 30 Mar 2011 01:05:00 +0900
groonga-storage-engine (0.5-3) unstable; urgency=low
* fix AppArmor files.
-- Kouhei Sutou <kou@clear-code.com> Tue, 30 Mar 2011 00:59:00 +0900
groonga-storage-engine (0.5-2) unstable; urgency=low
* hook script fix.
-- Kouhei Sutou <kou@clear-code.com> Tue, 30 Mar 2011 00:58:00 +0900
groonga-storage-engine (0.5-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Tue, 29 Mar 2011 00:00:00 +0900
groonga-storage-engine (0.4-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Mon, 29 Nov 2010 00:00:00 +0900
groonga-storage-engine (0.3-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Fri, 29 Oct 2010 16:34:04 +0900
groonga-storage-engine (0.2-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Sat, 25 Sep 2010 14:52:49 +0900
groonga-storage-engine (0.1-4) unstable; urgency=low
* follow configure option changes.
-- Kouhei Sutou <kou@cozmixng.org> Fri, 10 Sep 2010 08:45:53 +0900
groonga-storage-engine (0.1-3) unstable; urgency=low
* Use HEAD.
-- Kouhei Sutou <kou@clear-code.com> Thu, 02 Sep 2010 12:03:46 +0900
groonga-storage-engine (0.1-2) unstable; urgency=low
* Built with groonga 1.0.0.
-- Kouhei Sutou <kou@cozmixng.org> Mon, 30 Aug 2010 13:26:25 +0900
groonga-storage-engine (0.1-1) unstable; urgency=low
* New upstream release.
-- Kouhei Sutou <kou@clear-code.com> Mon, 23 Aug 2010 13:52:01 +0900

View file

@ -0,0 +1 @@
9

View file

@ -0,0 +1,51 @@
Source: mroonga
Section: database
Priority: optional
Maintainer: Kouhei Sutou <kou@clear-code.com>
Build-Depends:
debhelper (>= 7.0.50),
autotools-dev,
pkg-config,
libgroonga-dev (>= @REQUIRED_GROONGA_VERSION@),
groonga-normalizer-mysql,
libmysqlclient-dev,
libmysqld-dev,
libssl-dev,
wget,
lsb-release
Standards-Version: 3.9.1
Homepage: http://mroonga.org/
Package: mysql-server-mroonga
Section: database
Architecture: any
Replaces: mysql-server-groonga (<< 1.10-1)
Breaks: mysql-server-groonga (<< 1.10-1)
Depends:
${misc:Depends},
${shlibs:Depends},
libgroonga0 (>= @REQUIRED_GROONGA_VERSION@),
mysql-server (= MYSQL_VERSION),
groonga-normalizer-mysql
Description: A fast fulltext searchable storage engine for MySQL.
Mroonga is a fast fulltext searchable storage engine for MySQL.
It is based on Groonga, a fast fulltext search engine and column store.
Groonga is good at real time update.
.
This package provides a MySQL storage engine as a shared library.
This provides "mroonga" storage engine. It means you can use
"ENGINE = mroonga" in "CREATE TABLE".
Package: mysql-server-mroonga-doc
Section: doc
Architecture: all
Replaces: mysql-server-groonga-doc (<< 1.10-1)
Breaks: mysql-server-groonga-doc (<< 1.10-1)
Depends:
${misc:Depends}
Description: Documentation of Mroonga.
Mroonga is a fast fulltext searchable storage engine for MySQL.
It is based on Groonga, a fast fulltext search engine and column store.
Groonga is good at real time update.
.
This package provides documentation of Mroonga.

View file

@ -0,0 +1,27 @@
This work was packaged for Debian by:
Kouhei Sutou <kou@clear-code.com> on Thu, 02 Sep 2010 13:51:56 +0900.
It was downloaded:
<http://github.com/mroonga/mroonga/downloads>
Upstream Author(s):
Tetsuro IKEDA <ikdttr at gmail.com>
Daijiro MORI <morita at razil. jp>
Tasuku SUENAGA <a at razil. jp>
Kouhei Sutou <kou at clear-code. com>
Copyright:
Copyright(C) 2009-2010 Tetsuro IKEDA
License:
LGPLv2.1
See `/usr/share/common-licenses/LGPL-2.1'.
The Debian packaging is done by Kouhei Sutou <kou@clear-code.com> in 2010,
and put into public domain, anyone can use it for any purpose.

View file

@ -0,0 +1 @@
usr/share/doc/mysql-server-mroonga-doc/

View file

@ -0,0 +1,3 @@
usr/lib/mysql/plugin/ha_mroonga.so*
usr/share/mroonga/*
debian/apparmor/mysql-server-mroonga etc/apparmor.d/abstractions/

View file

@ -0,0 +1,72 @@
#! /bin/sh
set -e
prevver="$2"
install_plugin() {
cat /usr/share/mroonga/install.sql | \
mysql --defaults-file=/etc/mysql/debian.cnf || true
}
install_apparmor() {
mysql_apparmor_profile_name=usr.sbin.mysqld
mysql_apparmor_profile=/etc/apparmor.d/${mysql_apparmor_profile_name}
mysql_local_apparmor_profile=/etc/apparmor.d/local/${mysql_apparmor_profile_name}
apparmor_profile_name=mysql-server-mroonga
include_profile="#include <abstractions/${apparmor_profile_name}>"
local_apparmor_profile=/etc/apparmor.d/local/${apparmor_profile_name}
if test -f "${mysql_local_apparmor_profile}"; then
if ! grep -q "${include_profile}" "${mysql_local_apparmor_profile}"; then
echo >> "${mysql_local_apparmor_profile}"
echo "${include_profile}" >> "${mysql_local_apparmor_profile}"
fi
else
mysql_abstraction_apparmor_profile=/etc/apparmor.d/abstractions/mysql
mysql_plugin_dir=/usr/lib/mysql/plugin
if test -f "${mysql_abstraction_apparmor_profile}" && \
! grep -q "${mysql_plugin_dir}" \
"${mysql_abstraction_apparmor_profile}"; then
# For Lucid.
cat <<EOF >> "${mysql_abstraction_apparmor_profile}"
# ${apparmor_profile_name}: START
# Added by mysql-server-mroonga.
${mysql_plugin_dir}/ r,
${mysql_plugin_dir}/*.so* mr,
${include_profile}
# ${apparmor_profile_name}: END
EOF
fi
fi
if ! test -e "$local_apparmor_profile"; then
mkdir -p $(dirname "$local_apparmor_profile")
cat <<EOF > "$local_apparmor_profile"
# Site-specific additions and overrides for ${apparmor_profile_name}.
# For more details, please see /etc/apparmor.d/local/README.
EOF
fi
if aa-status --enabled 2>/dev/null; then
apparmor_parser -r -T -W "${mysql_apparmor_profile}" || true
fi
true
}
case "$1" in
configure)
install_apparmor
install_plugin
;;
abort-upgrade|abort-deconfigure|abort-remove)
:
;;
*)
echo "Called with unknown argument $1, bailing out."
exit 1
;;
esac
#DEBHELPER#

View file

@ -0,0 +1,38 @@
#! /bin/sh
set -e
if [ "$1" = "purge" ]; then
mysql_apparmor_profile_name=usr.sbin.mysqld
mysql_apparmor_profile=/etc/apparmor.d/${mysql_apparmor_profile_name}
mysql_local_apparmor_profile=/etc/apparmor.d/local/${mysql_apparmor_profile_name}
mysql_abstraction_apparmor_profile=/etc/apparmor.d/abstractions/mysql
apparmor_profile_name=mysql-server-mroonga
if test -f "${mysql_local_apparmor_profile}"; then
include_profile="#include <abstractions/${apparmor_profile_name}>"
if grep -q "${include_profile}" "${mysql_local_apparmor_profile}"; then
sed -i'' -e "s,${include_profile},," \
"${mysql_local_apparmor_profile}"
fi
else
start_marker_re="^# ${apparmor_profile_name}: START$"
end_marker_re="^# ${apparmor_profile_name}: END$"
if test -f "${mysql_abstraction_apparmor_profile}" && \
grep -q "${start_marker_re}" \
"${mysql_abstraction_apparmor_profile}"; then
sed -i'' -e "/${start_marker_re}/,/${end_marker_re}/d" \
"${mysql_abstraction_apparmor_profile}"
fi
fi
rm -f "/etc/apparmor.d/local/${apparmor_profile_name}" || true
rmdir /etc/apparmor.d/local 2>/dev/null || true
if aa-status --enabled 2>/dev/null; then
apparmor_parser -r -T -W "${mysql_apparmor_profile}" || true
fi
fi
#DEBHELPER#
exit 0

View file

@ -0,0 +1,10 @@
#! /bin/sh
set -e
cat /usr/share/mroonga/uninstall.sql | \
mysql --defaults-file=/etc/mysql/debian.cnf || true
#DEBHELPER#
exit 0

View file

@ -0,0 +1,35 @@
#!/usr/bin/make -f
# -*- makefile-gmake -*-
#
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This has to be exported to make some magic below work.
export DH_OPTIONS
export MYSQL_VERSION := $(shell apt-cache show mysql-server-5.5 | grep Version | head -n 1 | awk '{print $$2}' | awk -F '-' '{print $$1}')
%:
dh $@
override_dh_auto_configure:
if [ "$$(lsb_release --id --short)" = "Ubuntu" ]; then \
base_url=http://archive.ubuntu.com/ubuntu; \
else \
base_url=http://ftp.debian.org/debian; \
fi; \
wget $${base_url}/pool/main/m/mysql-5.5/mysql-5.5_$(MYSQL_VERSION).orig.tar.gz
tar xf mysql-5.5_$(MYSQL_VERSION).orig.tar.gz
dh_auto_configure -- --with-mysql-source=./mysql-$(MYSQL_VERSION)
# disable 'make check'.
override_dh_auto_test:
override_dh_install:
mv debian/tmp/usr/share/doc/mroonga/ \
debian/tmp/usr/share/doc/mysql-server-mroonga-doc/
dh_install
# if test -x /usr/bin/dh_apparmor; then \
# dh_apparmor \
# -pmysql-server-mroonga \
# --profile-name=usr.lib.mysql.plugin.ha_mroonga; \
# fi

View file

@ -0,0 +1,3 @@
SUBDIRS = \
centos \
fedora

View file

@ -0,0 +1,9 @@
EXTRA_DIST = \
mysql55-mroonga.spec.in \
mysql56-community-mroonga.spec.in \
mariadb-mroonga.spec.in
noinst_DATA = \
mysql55-mroonga.spec \
mysql56-community-mroonga.spec \
mariadb-mroonga.spec

View file

@ -0,0 +1,375 @@
%define mariadb_epoch_default 1
%define mariadb_version_default 5.5.37
%define mariadb_release_default 1
%define mariadb_dist_default .el7_0
%define mariadb_download_base_url_default http://vault.centos.org/7.0.1406/updates/Source/SPackages
%define mariadb_spec_file_default mariadb.spec
%{!?mariadb_epoch:%define mariadb_epoch %{mariadb_epoch_default}}
%{!?mariadb_version:%define mariadb_version %{mariadb_version_default}}
%{!?mariadb_release:%define mariadb_release %{mariadb_release_default}}
%{!?mariadb_dist:%define mariadb_dist %{mariadb_dist_default}}
%{!?mariadb_download_base_url:%define mariadb_download_base_url %{mariadb_download_base_url_default}}
%{!?mariadb_spec_file:%define mariadb_spec_file %{mariadb_spec_file_default}}
%define mariadb_package_version %{mariadb_epoch}:%{mariadb_version}-%{mariadb_release}%{mariadb_dist}
%define groonga_required_version @REQUIRED_GROONGA_VERSION@
Name: mariadb-mroonga
Version: @VERSION@
Release: 1%{?dist}
Summary: A fast fulltext searchable storage engine for MariaDB
Group: Applications/Databases
License: LGPLv2.1
URL: http://mroonga.org/
Source0: http://packages.groonga.org/source/mroonga/mroonga-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
BuildRequires: groonga-devel >= %{groonga_required_version}
BuildRequires: groonga-normalizer-mysql-devel
BuildRequires: wget
BuildRequires: mariadb-devel
Requires: mariadb-server = %{mariadb_package_version}
Requires: mariadb = %{mariadb_package_version}
Requires: groonga-libs >= %{groonga_required_version}
Requires: groonga-normalizer-mysql
%description
Mroonga is a fast fulltext searchable storage plugin for MariaDB.
It is based on Groonga that is a fast fulltext search engine and
column store. Groonga is good at real-time update.
%package doc
Summary: Documentation for Mroonga
Group: Documentation
License: LGPLv2.1
%description doc
Documentation for Mroonga
%prep
%setup -q -n mroonga-%{version}
mariadb_full_version=%{mariadb_version}-%{mariadb_release}%{mariadb_dist}
srpm=mariadb-${mariadb_full_version}.src.rpm
if [ ! -f ../../SRPMS/$srpm ]; then
wget --continue -O ../../SRPMS/$srpm %{mariadb_download_base_url}/$srpm
rpm -Uvh ../../SRPMS/$srpm
rm ../../SRPMS/$srpm
fi
%build
mariadb_source=../mariadb-%{mariadb_version}
if [ ! -d ${mariadb_source} ]; then
rpmbuild -bc \
--define 'runselftest 0' \
--define 'optflags -O0' \
../../SPECS/%{mariadb_spec_file}
fi
%configure \
--disable-static \
--with-mysql-source=${mariadb_source} \
%{?mroonga_configure_options}
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
rm $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/*.la
mv $RPM_BUILD_ROOT%{_datadir}/doc/mroonga/ mysql-mroonga-doc/
%clean
rm -rf $RPM_BUILD_ROOT
%post
if /usr/bin/mysql -u root -e "quit"; then
password_option=""
else
password_option="-p"
fi
current_version=0
version=$(echo %{groonga_required_version} | sed -e 's/\.//g')
required_version=$(expr $version)
version=$(/usr/bin/mysql -e "SHOW VARIABLES LIKE 'mroonga_libgroonga_version'" | \
grep mroonga | cut -f 2 | sed -e 's/\.//g')
if [ -n "$version" ]; then
current_version=$(expr $version)
fi
install_sql=%{_datadir}/mroonga/install.sql
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
if [ "$1" = 2 ] ; then
if [ $current_version -lt $required_version ]; then
command="/usr/bin/mysql -u root $password_option"
echo "run the following command after restarting MySQL server:";
echo " $command < ${uninstall_sql}"
echo " $command < ${install_sql}"
exit 0
else
command="/usr/bin/mysql -u root $password_option"
command="${command} < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
fi
command="/usr/bin/mysql -u root $password_option < ${install_sql}"
echo $command
eval $command || \
(echo "run the following command to register Mroonga:"; \
echo " $command")
%preun
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
if mysql -u root -e "quit"; then
password_option=""
else
password_option="-p"
fi
if [ "$1" = 0 ]; then
command="/usr/bin/mysql -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
%files
%defattr(-,root,root,-)
%{_libdir}/mysql/plugin/
%{_datadir}/mroonga/*
%{_datadir}/man/man1/*
%{_datadir}/man/*/man1/*
%files doc
%defattr(-,root,root,-)
%doc README COPYING
%doc mysql-mroonga-doc/*
%changelog
* Fri Aug 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.05-1
- new upstream release.
* Thu Aug 14 2014 Kouhei Sutou <kou@clear-code.com> - 4.04-4
- build MariaDB for libmysqlservices.a.
* Thu Aug 14 2014 Kouhei Sutou <kou@clear-code.com> - 4.04-3
- support epoch in MariaDB.
* Wed Aug 13 2014 Kouhei Sutou <kou@clear-code.com> - 4.04-2
- build against mariadb-5.5.37-1.el7_0.
* Sun Aug 10 2014 Kouhei Sutou <kou@clear-code.com> - 4.04-1
- initial packaging for CentOS 7 based on mysql-mroogna package.
* Tue Jul 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.04-1
- new upstream release.
* Thu May 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.03-1
- new upstream release.
* Tue Apr 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.02-1
- new upstream release.
* Sat Mar 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.01-1
- new upstream release.
* Thu Feb 13 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-2
- use MySQL 5.1.73-3 on CentOS 6.
* Sun Feb 09 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-1
- new upstream release.
* Wed Jan 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 3.12-1
- new upstream release.
* Sun Dec 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.11-1
- new upstream release.
* Sat Dec 7 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.10-2
- use MySQL 5.1.71-1 on CentOS 6.
* Fri Nov 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.10-1
- new upstream release.
* Tue Oct 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.09-1
- new upstream release.
* Sun Sep 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.08-1
- new upstream release.
- use MySQL 5.6.14-1 on CentOS 5.
* Wed Sep 4 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.07-2
- fix a bug that mroonga is removed accidentally on upgrade #1918.
Reported by @ceekz. Thanks!!!
* Thu Aug 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.07-1
- new upstream release.
- use MySQL 5.6.13-1 on CentOS 5.
* Mon Jul 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.06-1
- new upstream release.
- use MySQL 5.6.12-2 on CentOS 5.
* Sat Jun 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.05-1
- new upstream release.
- use MySQL 5.6.12 on CentOS 5.
* Wed May 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.04-1
- new upstream release.
* Fri May 10 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.03-2
- use MySQL 5.6.11-2 on CentOS 5. see http://bugs.mysql.com/bug.php?id=69027
Reported by Y.Kentaro. Thanks!!!
* Mon Apr 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.03-1
- new upstream release.
* Fri Mar 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.02-0
- new upstream release.
* Thu Feb 28 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.01-0
- new upstream release.
* Sat Feb 09 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.00-0
- new upstream release.
- require groonga 3.0.0 or later
* Tue Feb 05 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 2.10-2
- use MySQL 5.1.67-1 on CentOS 6.
Reported by wakisuke.ua. Thanks!!!
* Sat Dec 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.10-0
- new upstream release.
* Mon Dec 10 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.09-1
- use MySQL 5.1.66-2 on CentOS 6.
Reported by wakisuke.ua. Thanks!!!
* Thu Nov 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.09-0
- new upstream release.
- use MySQL 5.5.28 on CentOS 5.
- use MySQL 5.1.66 on CentOS 6.
* Mon Oct 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.08-0
- new upstream release.
- add missing "DROP FUNCTION mroonga_snippet".
Reported by @tokuhy. Thanks!!!
* Sat Sep 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.07-0
- new upstream release.
* Wed Aug 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.06-0
- new upstream release.
- make MySQL spec file name customizable.
- make mroonga configure options customizable.
- add missing mysql-devel BuildRequires. Reported by wing. Thanks!!!
- use MySQL 5.5.27.
* Sun Jul 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.05-0
- new upstream release.
- use MySQL 5.5.25a.
* Fri Jun 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.04-0
- new upstream release.
- ensure deleting mroonga plugin before install.
Suggested by Kazuhiro Isobe. Thanks!!!
- use MySQL 5.5.25.
* Tue May 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.03-0
- new upstream release.
- use MySQL 5.5.24.
- make mysql_* variables customizable
- require groonga 2.0.3 or later.
* Sun Apr 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.02-0
- new upstream release.
- use MySQL 5.5.23.
- require groonga 2.0.2 or later.
* Thu Mar 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.01-0
- new upstream release.
- ensure plugin is uninstalled by closing all tables use mroonga.
* Wed Feb 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.00-0
- new upstream release.
- always install/uninstall plugin.
- use MySQL 5.1.61 and 5.5.21.
- require groonga 2.0.0 or later.
* Sun Jan 29 2012 Kouhei Sutou <kou@clear-code.com> - 1.20-0
- new upstream release.
- require groonga 1.3.0.
- groonga -> mroonga.
- use MySQL 5.5.20.
* Thu Dec 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.11-0
- new upstream release.
* Sat Oct 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.10-0
- new upstream release.
- groonga storage engine -> mroonga.
* Thu Sep 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.0.0-0
- new upstream release.
* Mon Aug 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.9-0
- new upstream release.
* Fri Jul 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.8-0
- new upstream release.
* Wed Jun 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.7-0
- new upstream release.
* Sun May 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.6-0
- new upstream release.
* Tue May 17 2011 Kouhei Sutou <kou@clear-code.com> - 0.5-2
- use MySQL 5.5.12.
* Tue Mar 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.5-1
- new upstream release.
* Sat Jan 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.4-4
- do not remove plugin on upgrade.
* Wed Jan 12 2011 Kouhei Sutou <kou@clear-code.com> - 0.4-3
- rebuild without debug symbol.
* Thu Dec 30 2010 Kouhei Sutou <kou@clear-code.com> - 0.4-2
- use MySQL 5.5.8-1.
- fix SQL literal notation.
* Mon Nov 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.4-1
- use the latest MySQL.
- new upstream release.
* Sun Nov 21 2010 Kouhei Sutou <kou@clear-code.com> - 0.3-2
- install user define function.
* Fri Oct 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.3-1
- new upstream release.
* Fri Oct 08 2010 Kouhei Sutou <kou@clear-code.com> - 0.2-2
- specify target MySQL version.
- use %{version}.
* Wed Sep 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.2-1
- new upstream release.
* Sun Sep 12 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-3
- require MySQL-client-community.
* Fri Sep 10 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-2
- use MySQL-devel-community.
* Fri Sep 03 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-1
- initial packaging for CentOS.

View file

@ -0,0 +1,200 @@
%{?scl:%scl_package mroonga}
%{!?scl:%global pkg_name %{name}}
%{!?centos_ver:%define centos_ver 5}
%if %{centos_ver} == 6
%define mysql_version_default 5.5.37
%define mysql_release_default 5
%define mysql_dist_default el6.centos.alt
%define mysql_download_base_url_default http://vault.centos.org/6.5/SCL/Source/SPackages
%define mysql_spec_file_default mysql.spec
%else
%define mysql_version_default 5.5.37
%define mysql_release_default 1
%define mysql_dist_default el5
%define mysql_download_base_url_default http://vault.centos.org/5.10/updates/SRPMS
%define mysql_spec_file_default mysql.spec
%endif
%{!?mysql_version:%define mysql_version %{mysql_version_default}}
%{!?mysql_release:%define mysql_release %{mysql_release_default}}
%{!?mysql_dist:%define mysql_dist %{mysql_dist_default}}
%{!?mysql_download_base_url:%define mysql_download_base_url %{mysql_download_base_url_default}}
%{!?mysql_spec_file:%define mysql_spec_file %{mysql_spec_file_default}}
%define groonga_required_version @REQUIRED_GROONGA_VERSION@
Name: %{?scl_prefix}mroonga
Version: @VERSION@
Release: 1%{?dist}
Summary: A fast fulltext searchable storage engine for MySQL
Group: Applications/Databases
License: LGPLv2.1
URL: http://mroonga.org/
Source0: http://packages.groonga.org/source/mroonga/mroonga-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
BuildRequires: groonga-devel >= %{groonga_required_version}
BuildRequires: groonga-normalizer-mysql-devel
BuildRequires: wget
BuildRequires: which
BuildRequires: mysql55-mysql-devel
BuildRequires: mysql55-build
Requires: mysql55-mysql-server = %{mysql_version}-%{mysql_release}.%{mysql_dist}
Requires: mysql55-mysql = %{mysql_version}-%{mysql_release}.%{mysql_dist}
Requires: groonga-libs >= %{groonga_required_version}
Requires: groonga-normalizer-mysql
%{?scl:Requires: %scl_runtime}
%description
Mroonga is a fast fulltext searchable storage plugin for MySQL.
It is based on Groonga that is a fast fulltext search engine and
column store. Groonga is good at real-time update.
%package doc
Summary: Documentation for Mroonga
Group: Documentation
License: LGPLv2.1
%description doc
Documentation for Mroonga
%prep
%setup -q -n %{pkg_name}-%{version}
mysql_full_version=%{mysql_version}-%{mysql_release}.%{mysql_dist}
srpm=mysql55-mysql-${mysql_full_version}.src.rpm
if [ ! -f ../../SRPMS/$srpm ]; then
wget --continue -O ../../SRPMS/$srpm %{mysql_download_base_url}/$srpm
rpm -Uvh ../../SRPMS/$srpm
fi
%build
mysql_source=../mysql-%{mysql_version}
if [ ! -d ${mysql_source} ]; then
specs_dir=
MYSQL_RPMBUILD_TEST=no rpmbuild -bp \
--define 'runselftest 0' \
--define 'optflags -O0' \
../../SPECS/%{mysql_spec_file}
fi
%configure --disable-static --with-mysql-source=${mysql_source} \
--disable-fast-mutexes \
--with-mysql-config=`scl enable mysql55 'which mysql_config'` \
%{?mroonga_configure_options}
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
rm $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/*.la
mv $RPM_BUILD_ROOT%{_datadir}/doc/mroonga/ mysql-mroonga-doc/
%clean
rm -rf $RPM_BUILD_ROOT
%post
mysql_command=`scl enable mysql55 'which mysql'`
password_option=""
$mysql_command -u root -e "quit"
if [ $? -ne 0 ]; then
password_option="-p"
fi
current_version=0
version=`echo %{groonga_required_version} | sed -e 's/\.//g'`
required_version=`expr $version`
version=`$mysql_command -e "SHOW VARIABLES LIKE 'mroonga_libgroonga_version'" | \
grep mroonga | cut -f 2 | sed -e 's/\.//g'`
if [ -n "$version" ]; then
current_version=`expr $version`
fi
install_sql=%{_datadir}/mroonga/install.sql
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
if [ "$1" = 2 ] ; then
if [ $current_version -lt $required_version ]; then
command="$mysql_command -u root $password_option"
echo "run the following command after restarting MySQL server:";
echo " $command < ${uninstall_sql}"
echo " $command < ${install_sql}"
exit 0
else
command="$mysql_command -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
fi
command="$mysql_command -u root $password_option < ${install_sql}"
echo $command
eval $command || \
(echo "run the following command to register Mroonga:"; \
echo " $command")
%preun
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
mysql_command=`scl enable mysql55 'which mysql'`
if $mysql_command -u root -e "quit"; then
password_option=""
else
password_option="-p"
fi
if [ "$1" = 0 ]; then
command="$mysql_command -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
%files
%defattr(-,root,root,-)
%{_libdir}/mysql/plugin/
%{_datadir}/mroonga/*
%{_datadir}/man/man1/*
%{_datadir}/man/*/man1/*
%files doc
%defattr(-,root,root,-)
%doc README COPYING
%doc mysql-mroonga-doc/*
%changelog
* Fri Aug 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.05-1
- new upstream release.
* Tue Jul 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.04-1
- new upstream release.
* Thu May 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.03-2
- build against MySQL 5.6.37. Reported by YOSHIDA Mitsuo. Thanks!!!
* Thu May 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.03-1
- new upstream release.
* Tue Apr 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.02-1
- new upstream release.
* Sat Mar 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.01-1
- new upstream release.
* Thu Mar 06 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-2
- use MySQL 5.5.36 on CentOS 5.
* Sun Feb 09 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-1
- new upstream release.
* Wed Jan 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 3.12-1
- new upstream release.
* Sun Dec 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.11-1
- new upstream release.
* Fri Nov 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.10-1
- new upstream release.
* Tue Oct 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.09-1
- initial packaging for MySQL 5.5 on CentOS 5.

View file

@ -0,0 +1,198 @@
%{!?centos_ver:%define centos_ver 6}
%if %{centos_ver} == 7
%define mysql_version_default 5.6.20
%define mysql_release_default 4
%define mysql_dist_default el7
%define mysql_download_base_url_default http://repo.mysql.com/yum/mysql-5.6-community/el/7/SRPMS
%define mysql_spec_file_default mysql.spec
%else
%define mysql_version_default 5.6.20
%define mysql_release_default 4
%define mysql_dist_default el6
%define mysql_download_base_url_default http://repo.mysql.com/yum/mysql-5.6-community/el/6/SRPMS
%define mysql_spec_file_default mysql.spec
%endif
%{!?mysql_version:%define mysql_version %{mysql_version_default}}
%{!?mysql_release:%define mysql_release %{mysql_release_default}}
%{!?mysql_dist:%define mysql_dist %{mysql_dist_default}}
%{!?mysql_download_base_url:%define mysql_download_base_url %{mysql_download_base_url_default}}
%{!?mysql_spec_file:%define mysql_spec_file %{mysql_spec_file_default}}
%define groonga_required_version @REQUIRED_GROONGA_VERSION@
Name: mysql-community-mroonga
Version: @VERSION@
Release: 1%{?dist}
Summary: A fast fulltext searchable storage engine for MySQL
Group: Applications/Databases
License: LGPLv2.1
URL: http://mroonga.org/
Source0: http://packages.groonga.org/source/mroonga/mroonga-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
BuildRequires: groonga-devel >= %{groonga_required_version}
BuildRequires: groonga-normalizer-mysql-devel
BuildRequires: wget
BuildRequires: which
BuildRequires: gcc, gcc-c++
BuildRequires: mysql-community-devel
Requires: mysql-community-server = %{mysql_version}-%{mysql_release}.%{mysql_dist}
Requires: mysql-community-client = %{mysql_version}-%{mysql_release}.%{mysql_dist}
Requires: groonga-libs >= %{groonga_required_version}
Requires: groonga-normalizer-mysql
%description
Mroonga is a fast fulltext searchable storage plugin for MySQL.
It is based on Groonga that is a fast fulltext search engine and
column store. Groonga is good at real-time update.
%package doc
Summary: Documentation for Mroonga
Group: Documentation
License: LGPLv2.1
%description doc
Documentation for Mroonga
%prep
%setup -q -n mroonga-%{version}
mysql_full_version=%{mysql_version}-%{mysql_release}.%{mysql_dist}
srpm=mysql-community-${mysql_full_version}.src.rpm
if [ ! -f ../../SRPMS/$srpm ]; then
wget --continue -O ../../SRPMS/$srpm %{mysql_download_base_url}/$srpm
rpm -Uvh ../../SRPMS/$srpm
fi
%build
mysql_source=../mysql-%{mysql_version}/mysql-%{mysql_version}
if [ ! -d ${mysql_source} ]; then
specs_dir=
MYSQL_RPMBUILD_TEST=no rpmbuild -bp \
--define 'runselftest 0' \
--define 'optflags -O0' \
../../SPECS/%{mysql_spec_file}
fi
%configure --disable-static --with-mysql-source=${mysql_source} \
%{?mroonga_configure_options}
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
rm $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/*.la
mv $RPM_BUILD_ROOT%{_datadir}/doc/mroonga/ mysql-mroonga-doc/
%clean
rm -rf $RPM_BUILD_ROOT
%post
mysql_command=`which mysql`
password_option=""
$mysql_command -u root -e "quit"
if [ $? -ne 0 ]; then
password_option="-p"
fi
current_version=0
version=`echo %{groonga_required_version} | sed -e 's/\.//g'`
required_version=`expr $version`
version=`$mysql_command -e "SHOW VARIABLES LIKE 'mroonga_libgroonga_version'" | \
grep mroonga | cut -f 2 | sed -e 's/\.//g'`
if [ -n "$version" ]; then
current_version=`expr $version`
fi
install_sql=%{_datadir}/mroonga/install.sql
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
if [ "$1" = 2 ] ; then
if [ $current_version -lt $required_version ]; then
command="$mysql_command -u root $password_option"
echo "run the following command after restarting MySQL server:";
echo " $command < ${uninstall_sql}"
echo " $command < ${install_sql}"
exit 0
else
command="$mysql_command -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
fi
command="$mysql_command -u root $password_option < ${install_sql}"
echo $command
eval $command || \
(echo "run the following command to register Mroonga:"; \
echo " $command")
%preun
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
mysql_command=`which mysql`
if $mysql_command -u root -e "quit"; then
password_option=""
else
password_option="-p"
fi
if [ "$1" = 0 ]; then
command="$mysql_command -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
%files
%defattr(-,root,root,-)
%{_libdir}/mysql/plugin/
%{_datadir}/mroonga/*
%{_datadir}/man/man1/*
%{_datadir}/man/*/man1/*
%files doc
%defattr(-,root,root,-)
%doc README COPYING
%doc mysql-mroonga-doc/*
%changelog
* Fri Aug 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.05-1
- new upstream release.
* Sat Aug 09 2014 Eiichi Sato <miko@cafelounge.net> - 4.04-2
- build against MySQL 5.6.20-4 on MySQL yum repository.
* Tue Jul 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.04-1
- new upstream release.
* Thu May 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.03-2
- build against MySQL 5.6.37. Reported by YOSHIDA Mitsuo. Thanks!!!
* Thu May 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.03-1
- new upstream release.
* Tue Apr 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.02-1
- new upstream release.
* Sat Mar 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.01-1
- new upstream release.
* Thu Mar 06 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-2
- use MySQL 5.5.36 on CentOS 5.
* Sun Feb 09 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-1
- new upstream release.
* Wed Jan 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 3.12-1
- new upstream release.
* Sun Dec 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.11-1
- new upstream release.
* Fri Nov 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.10-1
- new upstream release.
* Tue Oct 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.09-1
- initial packaging for MySQL 5.5 on CentOS 5.

View file

@ -0,0 +1,2 @@
EXTRA_DIST = mysql-mroonga.spec.in mariadb-mroonga.spec.in
noinst_DATA = mysql-mroonga.spec mariadb-mroonga.spec

View file

@ -0,0 +1,189 @@
%define mariadb_version 5.5.38
%define mariadb_release 3%{?dist}
#%define mariadb_download_base_url http://ftp.iij.ad.jp/pub/linux/fedora/updates/20/SRPMS
%define mariadb_download_base_url http://ftp.riken.jp/Linux/fedora/updates/20/SRPMS
%define groonga_required_version @REQUIRED_GROONGA_VERSION@
Name: mariadb-mroonga
Version: @VERSION@
Release: 1%{?dist}
Summary: A fast fulltext searchable storage engine for MariaDB
Group: Applications/Databases
License: LGPLv2
URL: http://mroonga.org/
Source0: http://packages.groonga.org/source/mroonga/mroonga-%{version}.tar.gz
BuildRequires: groonga-devel >= %{groonga_required_version}
BuildRequires: groonga-normalizer-mysql-devel
BuildRequires: mariadb-devel
BuildRequires: perl(Test::More)
BuildRequires: perl(Env)
BuildRequires: pam-devel
Requires: groonga-libs >= %{groonga_required_version}
Requires: mariadb-server = 1:%{mariadb_version}-%{mariadb_release}
Requires: mariadb = 1:%{mariadb_version}-%{mariadb_release}
Requires: groonga-normalizer-mysql
Obsoletes: mysql-groonga < 1.10-0
%description
Mroonga is a fast fulltext searchable storage plugin for MariaDB.
It is based on Groonga that is a fast fulltext search engine and
column store. Groonga is good at real-time update.
%package doc
Summary: Documentation for Mroonga
Group: Documentation
License: LGPLv2
%description doc
Documentation for Mroonga
%prep
%setup -q -n mroonga-%{version}
srpm=mariadb-%{mariadb_version}-%{mariadb_release}.src.rpm
if [ ! -f ../../SRPMS/$srpm ]; then
curl --output ../../SRPMS/$srpm %{mariadb_download_base_url}/$srpm
rpm -Uvh ../../SRPMS/$srpm
fi
%build
if [ ! -d ../mariadb-%{mariadb_version} ]; then
rpmbuild -bp --define 'runselftest 0' --define 'optflags -O0' \
../../SPECS/mariadb.spec
fi
%configure CPPFLAGS="-DDISABLE_DTRACE" \
--disable-static \
--with-mysql-source=../mariadb-%{mariadb_version} \
--enable-fast-mutexes \
%{?mroonga_configure_options}
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
rm $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/*.la
mv $RPM_BUILD_ROOT%{_datadir}/doc/mroonga/ mariadb-mroonga-doc/
%clean
rm -rf $RPM_BUILD_ROOT
%post
if /usr/bin/mysql -u root -e "quit"; then
password_option=""
else
password_option="-p"
fi
current_version=0
version=`echo %{groonga_required_version} | sed -e 's/\.//g'`
required_version=`expr $version`
version=`/usr/bin/mysql -e "SHOW VARIABLES LIKE 'mroonga_libgroonga_version'" | \
grep mroonga | cut -f 2 | sed -e 's/\.//g'`
if [ -n "$version" ]; then
current_version=`expr $version`
fi
install_sql=%{_datadir}/mroonga/install.sql
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
if [ "$1" = 2 ] ; then
if [ $current_version -lt $required_version ]; then
command="/usr/bin/mysql -u root $password_option"
echo "run the following command after restarting MariaDB server:";
echo " $command < ${uninstall_sql}"
echo " $command < ${install_sql}"
exit 0
else
command="/usr/bin/mysql -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
fi
sql="$install_sql"
command="/usr/bin/mysql -u root $password_option -e \"$sql\""
echo $command
eval $command || \
(echo "run the following command to register mroonga:"; \
echo " $command")
%preun
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
password_option=""
mysql -u root -e "quit"
if [ $? -ne 0 ]; then
password_option="-p"
fi
if [ "$1" = 0 ]; then
command="/usr/bin/mysql -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
%files
%defattr(-,root,root,-)
%{_libdir}/mysql/plugin/
%{_datadir}/mroonga/*
%{_datadir}/man/man1/*
%{_datadir}/man/*/man1/*
%files doc
%defattr(-,root,root,-)
%doc README COPYING
%doc mariadb-mroonga-doc/*
%changelog
* Fri Aug 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.05-1
- new upstream release.
* Tue Jul 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.04-1
- new upstream release.
* Thu May 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.03-1
- new upstream release.
* Tue Apr 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.02-2
- use MariaDB 5.5.37 on Fedora 20.
* Tue Apr 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.02-1
- new upstream release.
* Sat Mar 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.01-1
- new upstream release.
- use MariaDB 5.5.35-3 on Fedora 20.
* Sun Feb 09 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-1
- new upstream release.
- use MariaDB 5.5.34-3 on Fedora 20.
* Wed Jan 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 3.12-1
- new upstream release.
* Sun Dec 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.11-1
- new upstream release.
- support Fedora 20.
* Fri Nov 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.10-1
- new upstream release.
* Tue Oct 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.09-1
- new upstream release.
- use MariaDB 5.5.33a on Fedora 19.
* Sun Sep 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.08-1
- new upstream release.
* Wed Sep 4 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.07-2
- fix a bug that mroonga is removed accidentally on upgrade #1918.
Reported by @ceekz. Thanks!!!
* Thu Aug 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.07-1
- new upstream release.
* Mon Jul 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.06-1
- new upstream release.
- initial packaging for mariadb on Fedora 19.

View file

@ -0,0 +1,324 @@
%define mysql_version 5.5.38
%define mysql_release 3%{?dist}
#%define mysql_download_base_url http://ftp.iij.ad.jp/pub/linux/fedora/releases/20/Everything/source/SRPMS/c
# %define mysql_download_base_url http://ftp.iij.ad.jp/pub/linux/fedora/updates/20/SRPMS
%define mysql_download_base_url http://ftp.riken.jp/Linux/fedora/updates/20/SRPMS
%define groonga_required_version @REQUIRED_GROONGA_VERSION@
Name: mysql-mroonga
Version: @VERSION@
Release: 1%{?dist}
Summary: A fast fulltext searchable storage engine for MySQL
Group: Applications/Databases
License: LGPLv2
URL: http://mroonga.org/
Source0: http://packages.groonga.org/source/mroonga/mroonga-%{version}.tar.gz
BuildRequires: groonga-devel >= %{groonga_required_version}
BuildRequires: groonga-normalizer-mysql-devel
BuildRequires: community-mysql-devel
Requires: groonga-libs >= %{groonga_required_version}
Requires: community-mysql-server = %{mysql_version}-%{mysql_release}
Requires: community-mysql = %{mysql_version}-%{mysql_release}
Requires: groonga-normalizer-mysql
Obsoletes: mysql-groonga < 1.10-0
%description
Mroonga is a fast fulltext searchable storage plugin for MySQL.
It is based on Groonga that is a fast fulltext search engine and
column store. Groonga is good at real-time update.
%package doc
Summary: Documentation for Mroonga
Group: Documentation
License: LGPLv2
%description doc
Documentation for Mroonga
%prep
%setup -q -n mroonga-%{version}
srpm=community-mysql-%{mysql_version}-%{mysql_release}.src.rpm
if [ ! -f ../../SRPMS/$srpm ]; then
curl --output ../../SRPMS/$srpm %{mysql_download_base_url}/$srpm
rpm -Uvh ../../SRPMS/$srpm
fi
%build
if [ ! -d ../mysql-%{mysql_version} ]; then
rpmbuild -bp --define 'runselftest 0' --define 'optflags -O0' \
../../SPECS/community-mysql.spec
fi
%configure CPPFLAGS="-DDISABLE_DTRACE" \
--disable-static \
--with-mysql-source=../mysql-%{mysql_version} \
--disable-fast-mutexes \
%{?mroonga_configure_options}
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
rm $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/*.la
mv $RPM_BUILD_ROOT%{_datadir}/doc/mroonga/ mysql-mroonga-doc/
%clean
rm -rf $RPM_BUILD_ROOT
%post
if /usr/bin/mysql -u root -e "quit"; then
password_option=""
else
password_option="-p"
fi
current_version=0
version=`echo %{groonga_required_version} | sed -e 's/\.//g'`
required_version=`expr $version`
version=`/usr/bin/mysql -e "SHOW VARIABLES LIKE 'mroonga_libgroonga_version'" | \
grep mroonga | cut -f 2 | sed -e 's/\.//g'`
if [ -n "$version" ]; then
current_version=`expr $version`
fi
install_sql=%{_datadir}/mroonga/install.sql
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
if [ "$1" = 2 ] ; then
if [ $current_version -lt $required_version ]; then
command="/usr/bin/mysql -u root $password_option"
echo "run the following command after restarting MySQL server:";
echo " $command < ${uninstall_sql}"
echo " $command < ${install_sql}"
exit 0
else
command="/usr/bin/mysql -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
fi
command="/usr/bin/mysql -u root $password_option < ${install_sql}"
echo $command
eval $command || \
(echo "run the following command to register Mroonga:"; \
echo " $command")
%preun
uninstall_sql=%{_datadir}/mroonga/uninstall.sql
password_option=""
mysql -u root -e "quit"
if [ $? -ne 0 ]; then
password_option="-p"
fi
if [ "$1" = 0 ]; then
command="/usr/bin/mysql -u root $password_option < ${uninstall_sql}"
echo $command
eval $command || \
(echo "run the following command to unregister Mroonga:"; \
echo " $command")
fi
%files
%defattr(-,root,root,-)
%{_libdir}/mysql/plugin/
%{_datadir}/mroonga/*
%{_datadir}/man/man1/*
%{_datadir}/man/*/man1/*
%files doc
%defattr(-,root,root,-)
%doc README COPYING
%doc mysql-mroonga-doc/*
%changelog
* Fri Aug 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.05-1
- new upstream release.
* Tue Jul 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.04-1
- new upstream release.
* Thu May 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.03-1
- new upstream release.
* Tue Apr 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.02-2
- use Community MySQL 5.5.37 on Fedora 20.
* Tue Apr 29 2014 Kouhei Sutou <kou@clear-code.com> - 4.02-1
- new upstream release.
* Sat Mar 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.01-1
- new upstream release.
* Sun Feb 09 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 4.00-1
- new upstream release.
* Wed Jan 29 2014 HAYASHI Kentaro <hayashi@clear-code.com> - 3.12-1
- new upstream release.
- use MySQL 5.5.35 on Fedora 20.
* Sun Dec 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.11-1
- new upstream release.
- support Fedora 20.
* Fri Nov 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.10-1
- new upstream release.
- use MySQL 5.5.34 on Fedora 19.
* Tue Oct 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.09-1
- new upstream release.
* Sun Sep 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.08-1
- new upstream release.
- use MySQL 5.5.33 on Fedora 19.
* Wed Sep 4 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.07-2
- fix a bug that mroonga is removed accidentally on upgrade #1918.
Reported by @ceekz. Thanks!!!
* Thu Aug 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.07-1
- new upstream release.
* Mon Jul 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.06-1
- new upstream release.
* Sat Jun 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.05-1
- new upstream release.
- use MySQL 5.5.32 on Fedora 18.
* Wed May 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.04-1
- new upstream release.
- use MySQL 5.5.31 on Fedora 18.
* Mon Apr 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.03-1
- new upstream release.
* Fri Mar 29 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.02-0
- new upstream release.
* Thu Feb 28 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.01-0
- new upstream release.
- use MySQL 5.5.30 on Fedora 18.
* Sat Feb 09 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 3.00-0
- new upstream release.
- support Fedora 18.
- drop Fedora 17 support.
- require groonga 3.0.0 or later
* Thu Jan 24 2013 HAYASHI Kentaro <hayashi@clear-code.com> - 2.10-1
- build with MySQL 5.5.29 on Fedora 17.
* Sat Dec 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.10-0
- new upstream release.
* Thu Nov 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.09-0
- new upstream release.
* Mon Oct 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.08-0
- new upstream release.
- add missing "DROP FUNCTION mroonga_snippet".
Reported by @tokuhy. Thanks!!!
- use MySQL 5.5.28.
* Sat Sep 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.07-0
- new upstream release.
* Wed Aug 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.06-0
- new upstream release.
- use MySQL 5.5.27.
* Sun Jul 29 2012 HAYASHI Kentaro <hayashi@clear-code.com> - 2.05-0
- new upstream release.
- use MySQL 5.5.25a.
* Fri Jun 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.04-0
- new upstream release.
- ensure deleting mroonga plugin before install.
Suggested by Kazuhiro Isobe. Thanks!!!
- use MySQL 5.5.24.
* Tue May 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.03-0
- new upstream release.
- use MySQL 5.5.23.
- require groonga 2.0.3 or later.
* Sun Apr 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.02-0
- new upstream release.
- require groonga 2.0.2 or later.
- use MySQL 5.5.22.
* Thu Mar 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.01-0
- new upstream release.
- ensure plugin is uninstalled by closing all tables use mroonga.
- use MySQL 5.5.21.
* Wed Feb 29 2012 Kouhei Sutou <kou@clear-code.com> - 2.00-0
- new upstream release.
- always install/uninstall plugin.
- use MySQL 5.5.20.
- require groonga 2.0.0 or later.
* Sun Jan 29 2012 Kouhei Sutou <kou@clear-code.com> - 1.20-0
- new upstream release.
- require groonga 1.3.0.
- groonga -> mroonga.
- use MySQL 5.5.19.
* Thu Dec 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.11-0
- new upstream release.
* Sat Oct 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.10-0
- new upstream release.
- groonga storage engine -> mroonga.
- split document package.
* Thu Sep 29 2011 Kouhei Sutou <kou@clear-code.com> - 1.0.0-0
- new upstream release.
* Mon Aug 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.9-0
- new upstream release.
* Fri Jul 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.8-0
- new upstream release.
* Wed Jun 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.7-0
- new upstream release.
* Sun May 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.6-0
- new upstream release.
* Tue Mar 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.5-1
- new upstream release.
* Sat Jan 29 2011 Kouhei Sutou <kou@clear-code.com> - 0.4-3
- do not remove plugin on upgrade.
* Thu Dec 30 2010 Kouhei Sutou <kou@clear-code.com> - 0.4-2
- fix SQL literal notation.
* Mon Nov 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.4-1
- use the latest MySQL.
- new upstream release.
* Sun Nov 21 2010 Kouhei Sutou <kou@clear-code.com> - 0.3-2
- install user define function.
* Fri Oct 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.3-1
- new upstream release.
* Fri Oct 08 2010 Kouhei Sutou <kou@clear-code.com> - 0.2-2
- use %{version}.
* Wed Sep 29 2010 Kouhei Sutou <kou@clear-code.com> - 0.2-1
- new upstream release.
* Sun Sep 12 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-3
- require mysql-client.
* Fri Sep 10 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-2
- follow configure option changes.
* Fri Sep 03 2010 Kouhei Sutou <kou@clear-code.com> - 0.1-1
- initial packaging for Fedora.

View file

@ -0,0 +1,122 @@
MROONGA_BASE = $(PACKAGE)-$(VERSION)
MROONGA_TAR_GZ = $(MROONGA_BASE).tar.gz
GROONGA_VERSION = 4.0.4
GROONGA_BASE = groonga-$(GROONGA_VERSION)
GROONGA_TAR_GZ = $(GROONGA_BASE).tar.gz
GROONGA_NORMALIZER_MYSQL_VERSION = 1.0.6
GROONGA_NORMALIZER_MYSQL_BASE = \
groonga-normalizer-mysql-$(GROONGA_NORMALIZER_MYSQL_VERSION)
GROONGA_NORMALIZER_MYSQL_TAR_GZ = \
$(GROONGA_NORMALIZER_MYSQL_BASE).tar.gz
MARIADB_VERSION = 10.0.13
MARIADB_BASE = mariadb-$(MARIADB_VERSION)
MARIADB_TAR_GZ = $(MARIADB_BASE).tar.gz
MARIADB_WITH_MROONGA_BASE = $(MARIADB_BASE)-with-$(MROONGA_BASE)
MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE = $(MARIADB_WITH_MROONGA_BASE)-for-windows
GROONGA_PROJECT_DOWNLOAD_BASE = http://packages.groonga.org/source
GROONGA_DOWNLOAD_BASE = $(GROONGA_PROJECT_DOWNLOAD_BASE)/groonga
GROONGA_NORMALIZER_MYSQL_DOWNLOAD_BASE = \
$(GROONGA_PROJECT_DOWNLOAD_BASE)/groonga-normalizer-mysql
MARIADB_DOWNLOAD_BASE = http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb
CURL = curl --fail --silent --show-error
all:
release: archive upload
ensure-rsync-path:
@if test -z "$(RSYNC_PATH)"; then \
echo "--with-rsync-path configure option must be specified."; \
false; \
fi
download: ensure-rsync-path
rsync -avz --progress --delete $(RSYNC_PATH)/source/mroonga/ files
ARCHIVES = \
files/$(MROONGA_TAR_GZ) \
files/$(MARIADB_WITH_MROONGA_BASE).tar.gz \
files/$(MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE).zip
archive: $(ARCHIVES)
upload: ensure-rsync-path
rsync -avz --progress --delete files/ $(RSYNC_PATH)/source/mroonga
files/$(MROONGA_TAR_GZ): $(top_builddir)/$(MROONGA_TAR_GZ)
mkdir -p files
cp -p $< $@
tmp/$(GROONGA_TAR_GZ):
mkdir -p tmp
$(CURL) --output $@ $(GROONGA_DOWNLOAD_BASE)/$(GROONGA_TAR_GZ)
tmp/$(GROONGA_NORMALIZER_MYSQL_TAR_GZ):
mkdir -p tmp
$(CURL) --output $@ $(GROONGA_NORMALIZER_MYSQL_DOWNLOAD_BASE)/$(GROONGA_NORMALIZER_MYSQL_TAR_GZ)
tmp/$(MARIADB_TAR_GZ):
mkdir -p tmp
$(CURL) --output $@ $(MARIADB_DOWNLOAD_BASE)/mariadb-$(MARIADB_VERSION)/source/$(MARIADB_TAR_GZ)
MARIADB_WITH_MROONGA_ARCHIVES = \
tmp/$(GROONGA_TAR_GZ) \
tmp/$(GROONGA_NORMALIZER_MYSQL_TAR_GZ) \
tmp/$(MARIADB_TAR_GZ) \
$(top_builddir)/$(MROONGA_TAR_GZ)
BUNDLED_MROONGA_PATH = $(MARIADB_BASE)/storage/$(PACKAGE)
BUNDLED_GROONGA_PATH = $(BUNDLED_MROONGA_PATH)/vendor/groonga
BUNDLED_GROONGA_NORMALIZER_MYSQL_PATH = \
$(BUNDLED_GROONGA_PATH)/vendor/plugins/groonga-normalizer-mysql
tmp/$(MARIADB_WITH_MROONGA_BASE).stamp: $(MARIADB_WITH_MROONGA_ARCHIVES)
rm -rf $(MARIADB_BASE)
tar xf tmp/$(MARIADB_TAR_GZ)
tar xf $(top_builddir)/$(MROONGA_TAR_GZ)
mv $(MROONGA_BASE) $(BUNDLED_MROONGA_PATH)
mkdir -p $$(dirname $(BUNDLED_GROONGA_PATH))
tar xf tmp/$(GROONGA_TAR_GZ)
rm -rf $(GROONGA_BASE)/test
mv $(GROONGA_BASE) $(BUNDLED_GROONGA_PATH)
tar xf tmp/$(GROONGA_NORMALIZER_MYSQL_TAR_GZ)
rm -rf $(GROONGA_NORMALIZER_MYSQL_BASE)/test
mv $(GROONGA_NORMALIZER_MYSQL_BASE) $(BUNDLED_GROONGA_NORMALIZER_MYSQL_PATH)
rm -rf tmp/$(MARIADB_WITH_MROONGA_BASE)
mv $(MARIADB_BASE) tmp/$(MARIADB_WITH_MROONGA_BASE)
touch $@
files/$(MARIADB_WITH_MROONGA_BASE).tar.gz: tmp/$(MARIADB_WITH_MROONGA_BASE).stamp
mkdir -p files/
(cd tmp && tar czf ../$@ $(MARIADB_WITH_MROONGA_BASE))
PATCHES = \
patches/mariadb-10.0.3-windows-build.diff
tmp/$(MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE).stamp: tmp/$(MARIADB_WITH_MROONGA_BASE).stamp $(PATCHES)
rm -rf tmp/$(MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE)
cp -a \
tmp/$(MARIADB_WITH_MROONGA_BASE) \
tmp/$(MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE)
for patch in $(PATCHES); do \
(cd tmp/$(MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE) && \
patch -p1 < $(abs_srcdir)/$${patch}); \
done
touch $@
files/$(MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE).zip: tmp/$(MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE).stamp
mkdir -p files/
(cd tmp && zip -q -r ../$@ $(MARIADB_WITH_MROONGA_FOR_WINDOWS_BASE))

View file

@ -0,0 +1,9 @@
diff -ur mariadb-10.0.2.orig/sql/sql_locale.cc mariadb-10.0.2/sql/sql_locale.cc
--- mariadb-10.0.2.orig/sql/sql_locale.cc 2013-04-23 13:13:59.000000000 +0900
+++ mariadb-10.0.2/sql/sql_locale.cc 2013-05-19 12:55:27.590366542 +0900
@@ -1,4 +1,4 @@
-/* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View file

@ -0,0 +1,24 @@
CODE_NAMES = precise,trusty
SOURCE = ../$(PACKAGE)-$(VERSION).tar.gz
all:
ensure-launchpad-configuration:
@if test -z "$(LAUNCHPAD_UPLOADER_PGP_KEY)"; then \
echo "--with-launchpad-uploader-pgp-key configure option must be specified."; \
false; \
fi
upload: source ensure-launchpad-configuration
./upload.rb \
--package '$(PACKAGE)' \
--version '$(VERSION)' \
--source-archive '$(SOURCE)' \
--code-names '$(CODE_NAMES)' \
--debian-directory '$(srcdir)/../debian/' \
--pgp-sign-key '$(LAUNCHPAD_UPLOADER_PGP_KEY)'
source: $(SOURCE)
$(SOURCE):
ln -s $(abs_top_builddir)/$(PACKAGE)-$(VERSION).tar.gz $(SOURCE)

View file

@ -0,0 +1,168 @@
#!/usr/bin/env ruby
#
# Copyright(C) 2014 Kouhei Sutou <kou@clear-code.com>
# Copyright(C) 2014 HAYASHI Kentaro <hayashi@clear-code.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1 as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
require "optparse"
require "fileutils"
require "pathname"
require "open-uri"
class Uploader
def initialize
@dput_configuration_name = "groonga-ppa"
end
def run
ensure_dput_configuration
parse_command_line!
ensure_mysql_version
@required_groonga_version = required_groonga_version
@code_names.each do |code_name|
upload(code_name)
end
end
private
def ensure_dput_configuration
dput_cf_path = Pathname.new("~/.dput.cf").expand_path
if dput_cf_path.exist?
dput_cf_content = dput_cf_path.read
else
dput_cf_content = ""
end
dput_cf_content.each_line do |line|
return if line.chomp == "[#{@dput_configuration_name}]"
end
dput_cf_path.open("w") do |dput_cf|
dput_cf.puts(dput_cf_content)
dput_cf.puts(<<-CONFIGURATION)
[#{@dput_configuration_name}]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~groonga/ppa/ubuntu/
login = anonymous
allow_unsigned_uploads = 0
CONFIGURATION
end
end
def ensure_mysql_version
@mysql_version = {}
@code_names.each do |code_name|
open("http://packages.ubuntu.com/#{code_name}/allpackages?format=txt.gz") do |file|
file.each_line do |line|
@mysql_version[code_name] = $1 if line =~ /\Amysql-server \((.+?)\).+/
end
end
end
end
def parse_command_line!
parser = OptionParser.new
parser.on("--package=NAME",
"The package name") do |name|
@package = name
end
parser.on("--version=VERSION",
"The version") do |version|
@version = version
end
parser.on("--source-archive=ARCHIVE",
"The source archive") do |source_archive|
@source_archive = Pathname.new(source_archive).expand_path
end
parser.on("--code-names=CODE_NAME1,CODE_NAME2,CODE_NAME3,...", Array,
"The target code names") do |code_names|
@code_names = code_names
end
parser.on("--debian-directory=DIRECTORY",
"The debian/ directory") do |debian_directory|
@debian_directory = Pathname.new(debian_directory).expand_path
end
parser.on("--pgp-sign-key=KEY",
"The PGP key to sign .changes and .dsc") do |pgp_sign_key|
@pgp_sign_key = pgp_sign_key
end
parser.on("--pbuilder",
"Use pbuilder for build check") do |pbuilder|
@use_pbuilder = pbuilder
end
parser.parse!
end
def upload(code_name)
in_temporary_directory do
FileUtils.cp(@source_archive.to_s,
"#{@package}_#{@version}.orig.tar.gz")
run_command("tar", "xf", @source_archive.to_s)
directory_name = "#{@package}-#{@version}"
Dir.chdir(directory_name) do
FileUtils.cp_r(@debian_directory.to_s, "debian")
deb_version = "#{current_deb_version.succ}~#{code_name}1"
run_command("dch",
"--distribution", code_name,
"--newversion", deb_version,
"Build for #{code_name}.")
run_command("sed",
"-i", "-e", "s,MYSQL_VERSION,#{@mysql_version[code_name]},",
"debian/control")
run_command("debuild", "-S", "-sa", "-pgpg2", "-k#{@pgp_sign_key}")
if @use_pbuilder
run_command("pbuilder-dist", code_name, "build",
"../#{@package}_#{deb_version}.dsc")
else
run_command("dput", @dput_configuration_name,
"../#{@package}_#{deb_version}_source.changes")
end
end
end
end
def required_groonga_version
File.read("../../required_groonga_version").lines.first.chomp
end
def current_deb_version
/\((.+)\)/ =~ File.read("debian/changelog").lines.first
$1
end
def in_temporary_directory
name = "tmp"
FileUtils.rm_rf(name)
FileUtils.mkdir_p(name)
Dir.chdir(name) do
yield
end
end
def run_command(*command_line)
unless system(*command_line)
raise "failed to run command: #{command_line.join(' ')}"
end
end
end
uploader = Uploader.new
uploader.run

View file

@ -0,0 +1,12 @@
EXTRA_DIST = \
README.md \
build-vc2010.bat \
build-vc2010-zip-32.bat \
build-vc2010-zip-64.bat \
build-vc2010-msi-32.bat \
build-vc2010-msi-64.bat \
build-vc2013.bat \
build-vc2013-zip-32.bat \
build-vc2013-zip-64.bat \
build-vc2013-msi-32.bat \
build-vc2013-msi-64.bat

View file

@ -0,0 +1,20 @@
# How to build Windows binaries
## Preparation
TODO...
## Build with Visual C++ Express
You need to use Visual C++ 2012 or later to build Mroonga with Express
edition. `build-vc2013.bat` is a build batch script to build with
Visual C++ Express 2013.
Note that you can't build MSI file with Express edition. You need to
use Professional edition or upper editions to build MSI file.
## Build with Visual C++ Professional
You can build both zip file MSI file with Professional edition.
`build-vc2010.bat` is a build batch script to build with Visual C++
Professional 2010.

View file

@ -0,0 +1,8 @@
rmdir /S /Q build-vc2010-msi-32
mkdir build-vc2010-msi-32
cd build-vc2010-msi-32
cmake ..\source -G "Visual Studio 10" > config.log
cmake --build . --config RelWithDebInfo > build.log
cmake --build . --config RelWithDebInfo --target msi > msi.log
move *.msi ..\
cd ..

View file

@ -0,0 +1,8 @@
rmdir /S /Q build-vc2010-msi-64
mkdir build-vc2010-msi-64
cd build-vc2010-msi-64
cmake ..\source -G "Visual Studio 10 Win64" > config.log
cmake --build . --config RelWithDebInfo > build.log
cmake --build . --config RelWithDebInfo --target msi > msi.log
move *.msi ..\
cd ..

View file

@ -0,0 +1,8 @@
rmdir /S /Q build-vc2010-zip-32
mkdir build-vc2010-zip-32
cd build-vc2010-zip-32
cmake ..\source -G "Visual Studio 10" > config.log
cmake --build . --config RelWithDebInfo > build.log
cmake --build . --config RelWithDebInfo --target package > zip.log
move *.zip ..\
cd ..

View file

@ -0,0 +1,8 @@
rmdir /S /Q build-vc2010-zip-64
mkdir build-vc2010-zip-64
cd build-vc2010-zip-64
cmake ..\source -G "Visual Studio 10 Win64" > config.log
cmake --build . --config RelWithDebInfo > build.log
cmake --build . --config RelWithDebInfo --target package > zip.log
move *.zip ..\
cd ..

View file

@ -0,0 +1,4 @@
build-vc2010-zip-32.bat
build-vc2010-zip-64.bat
build-vc2010-msi-32.bat
build-vc2010-msi-64.bat

View file

@ -0,0 +1,8 @@
rmdir /S /Q build-vc2013-msi-32
mkdir build-vc2013-msi-32
cd build-vc2013-msi-32
cmake ..\source -G "Visual Studio 12" > config.log
cmake --build . --config RelWithDebInfo > build.log
cmake --build . --config RelWithDebInfo --target msi > msi.log
move *.msi ..\
cd ..

View file

@ -0,0 +1,8 @@
rmdir /S /Q build-vc2013-msi-64
mkdir build-vc2013-msi-64
cd build-vc2013-msi-64
cmake ..\source -G "Visual Studio 12 Win64" > config.log
cmake --build . --config RelWithDebInfo > build.log
cmake --build . --config RelWithDebInfo --target msi > msi.log
move *.msi ..\
cd ..

View file

@ -0,0 +1,8 @@
rmdir /S /Q build-vc2013-zip-32
mkdir build-vc2013-zip-32
cd build-vc2013-zip-32
cmake ..\source -G "Visual Studio 12" > config.log
cmake --build . --config RelWithDebInfo > build.log
cmake --build . --config RelWithDebInfo --target package > zip.log
move *.zip ..\
cd ..

View file

@ -0,0 +1,8 @@
rmdir /S /Q build-vc2013-zip-64
mkdir build-vc2013-zip-64
cd build-vc2013-zip-64
cmake ..\source -G "Visual Studio 12 Win64" > config.log
cmake --build . --config RelWithDebInfo > build.log
cmake --build . --config RelWithDebInfo --target package > zip.log
move *.zip ..\
cd ..

View file

@ -0,0 +1,4 @@
build-vc2013-zip-32.bat
build-vc2013-zip-64.bat
REM build-vc2013-msi-32.bat
REM build-vc2013-msi-64.bat

View file

@ -0,0 +1,63 @@
REPOSITORIES_PATH = repositories
DISTRIBUTIONS = centos
ARCHITECTURES = i386 x86_64
MYSQL_VARIANTS = mysql55 mysql56-community mariadb
SPEC_DIR = $(builddir)/../rpm/centos
all:
release: download build sign-packages update-repository upload
remove-existing-packages:
for distribution in $(DISTRIBUTIONS); do \
find $${distribution} -name "*.rpm" -delete; \
done
ensure-rsync-path:
@if test -z "$(RSYNC_PATH)"; then \
echo "--with-rsync-path configure option must be specified."; \
false; \
fi
sign-packages:
./sign-rpm.sh '$(GPG_UID)' '$(REPOSITORIES_PATH)/' '$(DISTRIBUTIONS)'
update-repository:
./update-repository.sh '$(REPOSITORIES_PATH)/' '$(DISTRIBUTIONS)'
upload: ensure-rsync-path
for distribution in $(DISTRIBUTIONS); do \
rsync -avz --progress --delete --exclude .gitignore \
$(REPOSITORIES_PATH)/$${distribution}/ \
$(RSYNC_PATH)/$${distribution}; \
done
download: ensure-rsync-path
mkdir -p $(REPOSITORIES_PATH)
for distribution in $(DISTRIBUTIONS); do \
rsync -avz --progress --delete \
$(RSYNC_PATH)/$${distribution}/ \
$(REPOSITORIES_PATH)/$${distribution}; \
done
build: build-in-vm
build-in-vm: source specs env.sh
./build-in-vm.sh \
"$(PACKAGE)" \
"$(SPEC_DIR)" \
"$(MYSQL_VARIANTS)" \
"$(ARCHITECTURES)"
source: tmp/$(PACKAGE)-$(VERSION).tar.gz
tmp/$(PACKAGE)-$(VERSION).tar.gz: $(abs_top_builddir)/$(PACKAGE)-$(VERSION).tar.gz
mkdir -p tmp/
cp $(abs_top_builddir)/$(PACKAGE)-$(VERSION).tar.gz tmp/
$(abs_top_builddir)/$(PACKAGE)-$(VERSION).tar.gz:
cd $(abs_top_builddir) && $(MAKE) dist
specs: $(SPEC_DIR)/mysql55-$(PACKAGE).spec
specs: $(SPEC_DIR)/mysql56-community-$(PACKAGE).spec
specs: $(SPEC_DIR)/mariadb-$(PACKAGE).spec

View file

@ -0,0 +1,50 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
vms = [
{
:id => "centos-5-i386",
:box_url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-5.10-i386_chef-provisionerless.box",
},
{
:id => "centos-5-x86_64",
:box_url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-5.10_chef-provisionerless.box",
},
{
:id => "centos-6-i386",
:box_url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5-i386_chef-provisionerless.box",
},
{
:id => "centos-6-x86_64",
:box_url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box",
},
{
:id => "centos-7-x86_64",
:box_url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box",
},
]
vms.each do |vm|
config.vm.define(vm[:id]) do |node|
node.vm.box = vm[:id]
node.vm.box_url = vm[:box_url]
node.vm.provision(:shell, :path => "build-rpm.sh")
node.vm.provider("virtualbox") do |virtual_box|
system_n_cpus = 1
if File.exist?("/proc/cpuinfo")
system_n_cpus = File.readlines("/proc/cpuinfo").grep(/^processor/).size
end
if system_n_cpus > 1
vm_n_cpus = system_n_cpus / 2
else
vm_n_cpus = 1
end
virtual_box.cpus = vm_n_cpus
end
end
end
end

View file

@ -0,0 +1,60 @@
#!/bin/sh
if [ $# != 4 ]; then
echo "Usage: $0 PACKAGE SPEC_DIR MYSQL_VARIANTS ARCHITECTURES"
echo " e.g.: $0 mroonga ../rpm/centos 'mysql55 mariadb' 'i386 x86_64'"
exit 1
fi
PACKAGE="$1"
SPEC_DIR="$2"
MYSQL_VARIANTS="$3"
ARCHITECTURES="$4"
run()
{
"$@"
if test $? -ne 0; then
echo "Failed $@"
exit 1
fi
}
run vagrant destroy --force
for mysql_variant in ${MYSQL_VARIANTS}; do
rm -rf tmp/centos/
mkdir -p tmp/centos/
cp ${SPEC_DIR}/${mysql_variant}-${PACKAGE}.spec tmp/centos/
architectures="${ARCHITECTURES}"
case ${mysql_variant} in
mysql55)
centos_versions="5 6"
;;
mysql56-community)
centos_versions="6 7"
;;
mariadb)
centos_versions="7"
;;
esac
for architecture in ${architectures}; do
for centos_version in ${centos_versions}; do
if [ ${mysql_variant} = mysql55 -a ${centos_version} = 6 -a ${architecture} = i386 ]; then
continue
fi
if [ ${centos_version} = 7 -a ${architecture} = i386 ]; then
continue
fi
id=centos-${centos_version}-${architecture}
vagrant up ${id}
build_status=$?
if [ $build_status -ne 0 ]; then
exit $build_status
fi
vagrant destroy --force ${id}
done
done
done

View file

@ -0,0 +1,108 @@
#!/bin/sh
LANG=C
run()
{
"$@"
if test $? -ne 0; then
echo "Failed $@"
exit 1
fi
}
rpmbuild_options=
. /vagrant/env.sh
distribution=$(cut -d " " -f 1 /etc/redhat-release | tr "A-Z" "a-z")
if grep -q Linux /etc/redhat-release; then
distribution_version=$(cut -d " " -f 4 /etc/redhat-release)
else
distribution_version=$(cut -d " " -f 3 /etc/redhat-release)
fi
distribution_version=$(echo ${distribution_version} | sed -e 's/\..*$//g')
architecture="$(arch)"
case "${architecture}" in
i*86)
architecture=i386
;;
esac
run yum groupinstall -y "Development Tools"
run yum install -y rpm-build rpmdevtools tar wget
if [ -x /usr/bin/rpmdev-setuptree ]; then
rm -rf .rpmmacros
run rpmdev-setuptree
else
run cat <<EOM > ~/.rpmmacros
%_topdir ${HOME}/rpmbuild
EOM
run mkdir -p ~/rpmbuild/SOURCES
run mkdir -p ~/rpmbuild/SPECS
run mkdir -p ~/rpmbuild/BUILD
run mkdir -p ~/rpmbuild/RPMS
run mkdir -p ~/rpmbuild/SRPMS
fi
repository="/vagrant/repositories/${distribution}/${distribution_version}"
rpm_dir="${repository}/${architecture}/Packages"
srpm_dir="${repository}/source/SRPMS"
run mkdir -p "${rpm_dir}" "${srpm_dir}"
rpmbuild_options=""
# for debug
# rpmbuild_options="${rpmbuild_options} --define 'optflags -O0 -g3'"
cd
run cp /vagrant/tmp/${PACKAGE}-${VERSION}.* rpmbuild/SOURCES/
run cp /vagrant/tmp/${distribution}/*.spec rpmbuild/SPECS/
package_name=$(cd rpmbuild/SPECS; echo *.spec | sed -e 's/\.spec$//g')
case ${distribution} in
fedora)
USE_MYSQLSERVICES_COMPAT=yes
run yum install -y mariadb-devel
;;
centos)
case ${package_name} in
mysql55-${PACKAGE})
USE_MYSQLSERVICES_COMPAT=yes
run yum install -y scl-utils-build
if [ ${distribution_version} = 6 ]; then
run yum install -y centos-release-SCL
fi
run yum install -y mysql55-mysql-devel mysql55-build
;;
mysql56-community-${PACKAGE})
release_rpm=mysql-community-release-el${distribution_version}-5.noarch.rpm
run yum -y install http://repo.mysql.com/${release_rpm}
run yum -y install mysql-community-devel
;;
mariadb-${PACKAGE})
run yum -y install mariadb-devel
;;
esac
release_rpm=groonga-release-1.1.0-1.noarch.rpm
wget http://packages.groonga.org/${distribution}/${release_rpm}
run rpm -U ${release_rpm}
rm -f ${release_rpm}
run yum makecache
;;
esac
run yum install -y ${DEPENDED_PACKAGES}
if [ "${USE_MYSQLSERVICES_COMPAT}" = "yes" ]; then
rpmbuild_options="$rpmbuild_options --define 'mroonga_configure_options --with-libmysqlservices-compat'"
fi
run eval rpmbuild -ba ${rpmbuild_options} rpmbuild/SPECS/${package_name}.spec
run mv rpmbuild/RPMS/*/* "${rpm_dir}/"
run mv rpmbuild/SRPMS/* "${srpm_dir}/"

View file

@ -0,0 +1,27 @@
PACKAGE=@PACKAGE@
VERSION=@VERSION@
DEPENDED_PACKAGES="
intltool
libtool
gcc
gcc-c++
make
gperf
readline-devel
openssl-devel
time
wget
ncurses-devel
sudo
pkgconfig
tar
cmake
libaio-devel
systemtap-sdt-devel
perl-Time-HiRes
perl-Env
perl-Test-Simple
pam-devel
groonga-devel
groonga-normalizer-mysql-devel
"

View file

@ -0,0 +1,44 @@
#!/bin/sh
script_base_dir=`dirname $0`
if [ $# != 3 ]; then
echo "Usage: $0 GPG_UID DESTINATION DISTRIBUTIONS"
echo " e.g.: $0 'F10399C0' repositories/ 'fedora centos'"
exit 1
fi
GPG_UID=$1
DESTINATION=$2
DISTRIBUTIONS=$3
run()
{
"$@"
if test $? -ne 0; then
echo "Failed $@"
exit 1
fi
}
unsigned_rpms()
{
while read rpm; do
rpm --checksig "$rpm" | grep -v 'gpg OK' | cut -d":" -f1
done
}
rpms=""
for distribution in ${DISTRIBUTIONS}; do
rpms="${rpms} $(find ${DESTINATION}${distribution} -name '*.rpm' | unsigned_rpms)"
done
echo "NOTE: YOU JUST ENTER! YOU DON'T NEED TO INPUT PASSWORD!"
echo " IT'S JUST FOR rpm COMMAND RESTRICTION!"
run echo $rpms | xargs rpm \
-D "_gpg_name ${GPG_UID}" \
-D "_gpg_digest_algo sha1" \
-D "__gpg /usr/bin/gpg2" \
-D "__gpg_check_password_cmd /bin/true true" \
-D "__gpg_sign_cmd %{__gpg} gpg --batch --no-verbose --no-armor %{?_gpg_digest_algo:--digest-algo %{_gpg_digest_algo}} --no-secmem-warning -u \"%{_gpg_name}\" -sbo %{__signature_filename} %{__plaintext_filename}" \
--resign

View file

@ -0,0 +1,29 @@
#!/bin/sh
script_base_dir=`dirname $0`
if [ $# != 2 ]; then
echo "Usage: $0 DESTINATION DISTRIBUTIONS"
echo " e.g.: $0 repositories/ 'fedora centos'"
exit 1
fi
DESTINATION=$1
DISTRIBUTIONS=$2
run()
{
"$@"
if test $? -ne 0; then
echo "Failed $@"
exit 1
fi
}
for distribution in ${DISTRIBUTIONS}; do
for dir in ${DESTINATION}${distribution}/*/*; do
# "--checksum sha" is for CentOS 5. If we drop CentOS 5 support,
# we can remove the option.
test -d $dir && run createrepo --checksum sha $dir
done;
done