Removed unrelated data.

This commit is contained in:
Alexey Milovidov 2016-02-07 23:02:44 +03:00
parent 02958c1c7f
commit c3827a29eb
17 changed files with 376 additions and 0 deletions

View File

@ -0,0 +1,66 @@
//
// ScopedUnlock.h
//
// $Id: //poco/1.4/Foundation/include/Poco/ScopedUnlock.h#1 $
//
// Library: Foundation
// Package: Threading
// Module: Mutex
//
// Definition of the ScopedUnlock template class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef Foundation_ScopedUnlock_INCLUDED
#define Foundation_ScopedUnlock_INCLUDED
#include "Poco/Foundation.h"
namespace Poco {
template <class M>
class ScopedUnlock
/// A class that simplifies thread synchronization
/// with a mutex.
/// The constructor accepts a Mutex and unlocks it.
/// The destructor locks the mutex.
{
public:
inline ScopedUnlock(M& mutex, bool unlockNow = true): _mutex(mutex)
{
if (unlockNow)
_mutex.unlock();
}
inline ~ScopedUnlock()
{
try
{
_mutex.lock();
}
catch (...)
{
poco_unexpected();
}
}
private:
M& _mutex;
ScopedUnlock();
ScopedUnlock(const ScopedUnlock&);
ScopedUnlock& operator = (const ScopedUnlock&);
};
} // namespace Poco
#endif // Foundation_ScopedUnlock_INCLUDED

View File

@ -0,0 +1,25 @@
#include <iostream>
#include <Poco/Net/NetException.h>
#include <DB/Common/Exception.h>
int main(int argc, char ** argv)
{
try
{
//throw Poco::Net::ConnectionRefusedException();
throw DB::Exception(Poco::Net::ConnectionRefusedException());
}
catch (const DB::Exception & e)
{
std::cerr << e.displayText() << std::endl;
}
catch (const Poco::Exception & e)
{
std::cerr << e.displayText() << std::endl;
}
return 0;
}

View File

@ -0,0 +1 @@
/usr/bin/clickhouse-benchmark

2
debian/clickhouse-client.install vendored Normal file
View File

@ -0,0 +1,2 @@
/etc/clickhouse-client/config.xml
/usr/bin/clickhouse-client

5
debian/clickhouse-server-base.install vendored Normal file
View File

@ -0,0 +1,5 @@
/usr/bin/clickhouse-server
/etc/logrotate.d/clickhouse-server.logrt
/etc/cron.d/clickhouse-server
/etc/security/limits.d/metrika.conf
/usr/share/clickhouse/*

24
debian/clickhouse-server-base.postinst vendored Normal file
View File

@ -0,0 +1,24 @@
#!/bin/sh
set -e
if [ -x "/etc/init.d/clickhouse-server" ]; then
update-rc.d clickhouse-server defaults 19 19 >/dev/null || exit $?
fi
useradd -p "" metrika ||:
if id metrika > /dev/null 2>&1; then
mkdir -p /opt/clickhouse/data/default/
mkdir -p /opt/clickhouse/metadata/default/
mkdir -p /opt/cores/
chown metrika: /opt/clickhouse /opt/cores /opt/clickhouse/data /opt/clickhouse/metadata /opt/clickhouse/data/default /opt/clickhouse/metadata/default
# Очистка старых результатов динамической компиляции.
if [ -d "/opt/clickhouse/build" ]; then
rm -f /opt/clickhouse/build/*.cpp /opt/clickhouse/build/*.so ||:
fi
else
echo "User metrika doesn't exist."
exit 1
fi
exit 0

View File

@ -0,0 +1,2 @@
etc/clickhouse-server/config.xml etc/clickhouse-server
etc/clickhouse-server/users.xml etc/clickhouse-server

View File

@ -0,0 +1,2 @@
etc/clickhouse-server/metrika/config.xml etc/clickhouse-server
etc/clickhouse-server/metrika/users.xml etc/clickhouse-server

1
debian/compat vendored Normal file
View File

@ -0,0 +1 @@
5

View File

@ -0,0 +1 @@
/usr/bin/compressor

View File

@ -0,0 +1 @@
/usr/bin/config-processor

19
debian/copy_clang_binaries.sh vendored Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash -e
# Копирует бинарник clang а также shared-библиотеку libstdc++ в указанную директорию.
# Так повезло, что этого достаточно, чтобы затем собирать код на удалённом сервере с совпадающей версией Ubuntu, но без установленного компилятора.
DST=${1:-.};
PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:$PATH"
CLANG=$(command -v clang)
if [ ! -x "$CLANG" ]; then
echo "Not found executable clang."
exit 1
fi
cp "$CLANG" $DST
STDCPP=$(ldd $(command -v clang) | grep -oE '/[^ ]+libstdc++[^ ]+')
[ -f "$STDCPP" ] && cp "$STDCPP" $DST

8
debian/copyright vendored Normal file
View File

@ -0,0 +1,8 @@
This package was debianized by Razuvaev Michael <razuvaev@yandex-team.ru> on
Thu, 27 Nov 2008 18:28:05 +0300
It is Yandex property
Upstream Authors: Yandex Metrika Team
Copyright: Yandex

162
debian/rules vendored Executable file
View File

@ -0,0 +1,162 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
ifndef THREADS_COUNT
THREADS_COUNT=24
endif
configure-stamp:
dh_testdir
rm -rf build
make clean 1> /dev/null 2>&1 || echo "Nothing to clean"
rm -f CMakeCache.txt
mkdir -p build
touch configure-stamp
build: build-stamp
build-stamp: configure-stamp
dh_testdir
# если не задан тип сборки запускаем cmake без указания типа, если задан - передаём его
# для сборки в Debug нужно запустить так: debuild -e CMAKE_BUILD_TYPE=Debug
cd build && pwd && if [ -z CMAKE_BUILD_TYPE ]; then cmake ..; else cmake -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) ..; fi
# TODO: возможно надо исправить
# последовательно зкапускаем make для каждой из целей.
# т.к. при параллельном запуске (make target1 target2) несколько раз одновременно создаются бинарники
# и возникает raise с custom_command, использующие эти бинарники
for daemon in ${DAEMONS}; do $(MAKE) -j$(THREADS_COUNT) -C build $$daemon; done
touch $@
clean:
dh_testdir
dh_testroot
rm -f configure-stamp
rm -f build-stamp
rm -rf build
# Удалим созданные для dh_installinit файлы
find ./debian/ -name "*.init" -type l -delete
# Удалим созданные для dh_installcron файлы
find ./debian/ -name "*.cron.d" -type f -delete
# Удалим созданные для dh_installlogrotate файлы
find ./debian/ -name "*.logrotate" -type f -delete
# Удалим созданные *.install файлы
for DAEMON_PKG in ${DAEMONS}; do AUTO=`grep "# automatically created" debian/$$DAEMON_PKG-metrika-yandex.install`; if [ "x$$AUTO" != "x" ]; then rm -f debian/$$DAEMON_PKG-metrika-yandex.install; fi; done
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
cd build && \
for daemon in ${DAEMONS}; do\
DESTDIR=../debian/tmp cmake -DCOMPONENT=$$daemon -P cmake_install.cmake;\
done
# Создаём нужные файлы для dh_installinit, т.к. он их понимает только внутри debian/
for I in debian/tmp/etc/init.d/*; do echo $$I; ln -s tmp/etc/init.d/`basename $$I` debian/`basename $$I`.init; done
# Хотим, чтобы для пакета clickhouse-server-base init file назывался clickhouse-server
if [ -e debian/tmp/etc/init.d/clickhouse-server ]; then ln -s tmp/etc/init.d/clickhouse-server debian/clickhouse-server-base.clickhouse-server.init; fi
# создаем дефолтный cron, если нет крон-файла созданного пользователем
# cron_name имеет вид daemonname-metrika-yandex
# logrotate_name имеет вид daemonname
# Для ClickHouse не должно быть лишних зависимостей.
for I in debian/tmp/etc/init.d/*; \
do \
cron_name=`basename $$I`; \
if [ ! -d debian/tmp/etc/cron.d ]; then \
mkdir -p debian/tmp/etc/cron.d; \
fi; \
if [ ! -f debian/tmp/etc/cron.d/$$cron_name ]; then \
echo "#*/10 * * * * root /etc/init.d/$$cron_name condstart 1>/dev/null 2>&1" > debian/tmp/etc/cron.d/$$cron_name; \
logrotate_name=`basename $$I | sed 's/-metrika-yandex//'`; \
if [ -f debian/tmp/etc/logrotate.d/$$logrotate_name.logrt ]; then \
if [ -e debian/tmp/etc/init.d/clickhouse-server ]; then \
echo "#23 * * * * root flock -w 200 /var/run/lock/metrika-logrotate -c '/usr/sbin/logrotate /etc/logrotate.d/$$logrotate_name.logrt'" >> debian/tmp/etc/cron.d/$$cron_name; \
else \
echo "#23 * * * * root /usr/local/bin/metrika-logrotate /etc/logrotate.d/$$logrotate_name.logrt" >> debian/tmp/etc/cron.d/$$cron_name; \
fi; \
fi; \
fi; \
done; \
# Создаём нужные *.install файлы
# Только для демонов, т.к. пакеты ClickHouse не имеют суффикса metrika-yandex
for DAEMON_PKG in ${DAEMONS}; do \
if [ ! -e "debian/$$DAEMON_PKG-metrika-yandex.install" ]; then \
echo "# automatically created" > debian/$$DAEMON_PKG-metrika-yandex.install; \
echo "/etc/$$DAEMON_PKG/config.xml" >> debian/$$DAEMON_PKG-metrika-yandex.install; \
echo "/usr/bin/$$DAEMON_PKG" >> debian/$$DAEMON_PKG-metrika-yandex.install; \
echo "/etc/logrotate.d/$$DAEMON_PKG.logrt" >> debian/$$DAEMON_PKG-metrika-yandex.install; \
echo "/etc/cron.d/$$DAEMON_PKG-metrika-yandex" >> debian/$$DAEMON_PKG-metrika-yandex.install; \
if [ -e "debian/tmp/etc/monrun/conf.d/$$DAEMON_PKG.conf" ]; then \
echo "/etc/monrun/conf.d/$$DAEMON_PKG.conf" >> debian/$$DAEMON_PKG-metrika-yandex.install; \
fi;\
fi; \
done
# Создаём нужные *.postinst файлы
# Note: Только для демонов, т.к. пакеты ClickHouse не имеют суффикса metrika-yandex
for DAEMON_PKG in ${DAEMONS}; do \
if [ ! -e "debian/$$DAEMON_PKG-metrika-yandex.postinst" ]; then \
echo "# automatically created" > debian/$$DAEMON_PKG-metrika-yandex.postinst; \
echo "mkdir -p /etc/$$DAEMON_PKG/conf.d" >> debian/$$DAEMON_PKG-metrika-yandex.postinst; \
echo "chown metrika: /etc/$$DAEMON_PKG/conf.d" >> debian/$$DAEMON_PKG-metrika-yandex.postinst; \
if [ -e "debian/tmp/etc/init.d/$$DAEMON_PKG-metrika-yandex" ]; then \
if echo $$DAEMON_PKG | grep server > /dev/null; then\
echo "update-rc.d $$DAEMON_PKG-metrika-yandex defaults > /dev/null || exit \$?" >> debian/$$DAEMON_PKG-metrika-yandex.postinst; \
else\
echo "update-rc.d $$DAEMON_PKG-metrika-yandex start 30 2 3 4 5 . stop 70 0 1 6 . > /dev/null || exit \$?" >> debian/$$DAEMON_PKG-metrika-yandex.postinst; \
fi\
fi\
\
else \
echo >> debian/$$DAEMON_PKG-metrika-yandex.postinst; \
echo "mkdir -p /etc/$$DAEMON_PKG/conf.d; chown metrika: /etc/$$DAEMON_PKG/conf.d" >> debian/$$DAEMON_PKG-metrika-yandex.postinst; \
fi; \
done
# В случае сборки clickhouse-server, добавим в пакет бинарник clang-а и заголовочные файлы - для динамической компиляции.
if [ -e debian/tmp/etc/init.d/clickhouse-server ]; then \
mkdir -p debian/tmp/usr/share/clickhouse/bin debian/tmp/usr/share/clickhouse/headers; \
debian/copy_clang_binaries.sh debian/tmp/usr/share/clickhouse/bin/; \
./copy_headers.sh . debian/tmp/usr/share/clickhouse/headers; \
fi;
# Список бинариев, для которых делаем strip. Это делается из-за того, что на некоторых серверах мало места.
$(eval STRIP_LIST=\
clickhouse-client \
)
for DAEMON in ${STRIP_LIST}; do \
if [ -e debian/tmp/usr/bin/$$DAEMON ]; then strip debian/tmp/usr/bin/$$DAEMON; fi; \
done
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installdocs
dh_installinit --no-start --no-package=clickhouse-server-base
dh_installinit --no-start --package=clickhouse-server-base --name=clickhouse-server
dh_installcron
dh_installdirs
dh_installchangelogs
dh_install --sourcedir=debian/tmp
dh_link
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps --exclude=clang --exclude=stdc
dh_gencontrol
dh_md5sums
dh_builddeb -- -z3
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install

View File

@ -0,0 +1,5 @@
IF(NOT DISTRIB_CODENAME)
EXEC_PROGRAM(". /etc/lsb-release ; echo $DISTRIB_CODENAME"
OUTPUT_VARIABLE DISTRIB_CODENAME)
SET(DISTRIB_CODENAME "${DISTRIB_CODENAME}" CACHE STRING "Distributive Codename")
ENDIF(NOT DISTRIB_CODENAME)

27
release Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
source release_lib.sh
CONTROL=debian/control
CHLOG=debian/changelog
CHDATE=$(LC_ALL=C date -R | sed -e 's/,/\\,/g') # Заменим запятую на '\,'
# Список демонов для сборки может быть указан в аргументах командной строки.
if [ $# -gt 0 ]
then
DAEMONS="$@"
else
DAEMONS="$(echo `cat debian/daemons`)"
fi
gen_revision_author
echo -e "\nCurrent revision is $REVISION"
make_control "$CONTROL" "$DAEMONS"
gen_changelog "$REVISION" "$CHDATE" "$AUTHOR" "$CHLOG" "$DAEMONS"
# Сборка (только бинарных пакетов).
debuild -e DAEMONS="${DAEMONS}" -b
upload_debs "$REVISION" "$DAEMONS"

25
release_test Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash -ex
source release_lib.sh
CONTROL=debian/control
CHLOG=debian/changelog
CHDATE=$(LC_ALL=C date -R | sed -e 's/,/\\,/g') # Заменим запятую на '\,'
# Список демонов для сборки может быть указан в аргументах командной строки.
if [ $# -gt 0 ]
then
DAEMONS="$@"
else
DAEMONS="$(echo `cat debian/daemons`)"
fi
REVISION="99999"
echo -e "\nCurrent revision is $REVISION"
make_control "$CONTROL" "$DAEMONS"
gen_changelog "$REVISION" "$CHDATE" "$AUTHOR" "$CHLOG" "$DAEMONS"
# Сборка (только бинарных пакетов).
debuild -e THREADS_COUNT=7 -e DAEMONS="${DAEMONS}" -b -uc -us