Commit dde5ec0d authored by Bernd Lietzow's avatar Bernd Lietzow 🐨

updated to release 7.1.1

parent d7fc807f

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

......@@ -59,43 +59,39 @@ You also have the choice between
the openssl, nss, or gnutls version of `libcurl-dev`. Choose the one you prefer.
## Building Packages
BeeGFS comes with a shell script that can build all BeeGFS packages for the
system on which it is executed.
The packages include all services, the client module and utilities.
Go to the `auto_package` subdirectory:
```
$ cd auto_package
```
BeeGFS comes with a Makefile capable of building packages for the system on which it is executed.
These include all services, the client module and utilities.
To build RPM packages, run
```
$ ./make-rpms.sh
$ make package-rpm PACKAGE_DIR=packages
```
For DEB packages use this command:
You may also enable parallel execution with
```
$ ./make-debs.sh
$ make package-rpm PACKAGE_DIR=packages RPMBUILD_OPTS="-D 'MAKE_CONCURRENCY <n>'"
```
This will generate individual packages for search service (management, meta-data, storage)
as well as the client kernel module and administration tools.
In both cases you can append `-j <n>` to enable parallel execution, where
`<n>` is the number of processes to run at the same time.
Additional options are described in the help message of both scripts (`-h` option).
where `<n>` is the number of concurrent processes.
To generate individual packages instead of building the whole system,
run
For DEB packages use this command:
```
$ make opentk_lib-all thirdparty common-all
$ make package-deb PACKAGE_DIR=packages
```
to prepare common parts required by the services and tools.
The packages can then be built by running the `make-deb` or `make-rpm` script
in the corresponding sub-project folders. For example:
Or start with `<n>` jobs running in parallel:
```
$ cd storage/build
$ ./make-deb
$ make package-deb PACKAGE_DIR=packages DEBUILD_OPTS="-j<n>"
```
This will generate individual packages for each service (management, meta-data, storage)
as well as the client kernel module and administration tools.
The above examples use `packages` as the output folder for packages, which must not exist
and will be created during the build process.
You may specify any other non-existent directory instead.
Note, however, that having `PACKAGE_DIR` on a NFS or similar network share may slow down
the build process significantly.
## Building without packaging
To build the complete project without generating any packages,
simply run
......
CAN_PACKAGE := yes
include $(or $(root-dir),../..)/build/Makefile
include ../../build/Makefile
main := ../source/program/Main.cpp
sources := $(filter-out $(main), $(shell find ../source -iname '*.cpp'))
......@@ -8,7 +6,7 @@ sources := $(filter-out $(main), $(shell find ../source -iname '*.cpp'))
$(call build-static-library,\
Admon,\
$(sources),\
common opentk dl sqlite openssl ticpp mongoose,\
common dl sqlite openssl ticpp mongoose,\
../source)
$(call define-dep-lib,\
......@@ -19,12 +17,12 @@ $(call define-dep-lib,\
$(call build-executable,\
beegfs-admon,\
$(main),\
Admon common opentk dl sqlite openssl ticpp mongoose)
Admon common dl sqlite openssl ticpp mongoose)
$(call build-test,\
test-runner,\
$(shell find ../tests -name '*.cpp'),\
Admon common opentk dl sqlite openssl ticpp mongoose,\
Admon common dl sqlite openssl ticpp mongoose,\
../tests)
# JAVA_HOME will be honoured automatically by 'ant'
......
%define buildarch %BUILDARCH%
%define BEEGFS_COMMON_PACKAGE_PATH %BEEGFS_COMMON_PACKAGE_PATH%
%define ADMON_GUI_PATH %ADMON_GUI_PATH%
%define BEEGFS_VERSION %VER%-%RELEASE_STR%
%define MAKE_CONCURRENCY %MAKE_CONCURRENCY%
%define NEED_DEBUG_DEFINE %NEED_DEBUG_DEFINE%
%define BEEGFS_VERSION %BEEGFS_VERSION%
%define VER %(echo '%{BEEGFS_VERSION}' | cut -d - -f 1)
%define BEEGFS_RELEASE_STR %(echo '%{BEEGFS_VERSION}-' | cut -d - -f 2)
%define EPOCH %(echo '%{VER}' | cut -d . -f 1)
%define FULL_VERSION %{EPOCH}:%{VER}-%{RELEASE}
%define is_fedora %(test -e /etc/fedora-release && echo 1 || echo 0)
%define is_redhat %(test -e /etc/redhat-release && echo 1 || echo 0)
%define is_suse %(test -e /etc/SuSE-release && echo 1 || echo 0)
%define is_mandrake %(test -e /etc/mandrake-release && echo 1 || echo 0)
%if %is_mandrake
%define disttag mdk
%endif
%if %is_suse
%define disttag suse
%define distver %(relpackage="`rpm -qf /etc/SuSE-release`"; release="`rpm -q --queryformat='%{VERSION}' $relpackage 2> /dev/null | tr . : | sed s/:.*$//g`" ; if test $? != 0 ; then release="" ; fi ; echo "$release")
%endif
%if %is_fedora
%define disttag fc
%endif
%if %is_redhat
%define disttag el
%define distver %(relpackage="`rpm -qf /etc/redhat-release`"; release="`rpm -q --queryformat='%{VERSION}' $relpackage 2> /dev/null | tr . : | sed s/:.*$//g`" ; if test $? != 0 ; then release="" ; fi ; echo "$release")
%endif
%if %{defined disttag}
%define RELEASE %{BEEGFS_RELEASE_STR}%{disttag}%{distver}
%else
%define RELEASE %{BEEGFS_RELEASE_STR}generic
%endif
#
# beegfs-admon creator
#
Summary: BeeGFS administration and monitoring daemon
Name: %NAME%
Version: %{VER}
Release: %{RELEASE}
License: BeeGFS EULA
Group: Software/Other
Source: %NAME%-%{BEEGFS_VERSION}.tgz
URL: http://www.beegfs.com
Vendor: Fraunhofer ITWM
BuildRoot: %{_tmppath}/%NAME%-root
BuildArch: %{buildarch}
requires: beegfs-opentk-lib = %{FULL_VERSION}
Epoch: %{EPOCH}
%description
The package contains the BeeGFS admon daemon.
%if %{NEED_DEBUG_DEFINE}
%debug_package
%endif
%clean
rm -rf %{buildroot}
%prep
%setup -c
%build
cd build
# build gui
export JAVA_HOME=%JAVA_HOME%
if [ -z "__ADMON_GUI_EXTERNAL_JAR_PATH__" ]; then
# only build the gui, if we don't have a path to it
make root-dir=%{ROOT_DIR} ADMON_GUI_PATH=%{ADMON_GUI_PATH} admon_gui
fi
# build daemon
make \
root-dir=%{ROOT_DIR} \
BEEGFS_VERSION=%{BEEGFS_VERSION} \
-j%{MAKE_CONCURRENCY}
%install
cd build
echo "mkdir RPM_BUILD_ROOT (${RPM_BUILD_ROOT})"
mkdir -p ${RPM_BUILD_ROOT}/etc/beegfs
cp -a dist/etc/*.conf ${RPM_BUILD_ROOT}/etc/beegfs/
mkdir -p ${RPM_BUILD_ROOT}/etc/init.d/
#add license file of beegfs-admon and of the beegfs-admon-gui
mkdir -p ${RPM_BUILD_ROOT}/opt/beegfs/LICENSE/beegfs-admon/gui
install -D -m644 dist/LICENSE ${RPM_BUILD_ROOT}/opt/beegfs/LICENSE/beegfs-admon/
install -D -m644 %{ADMON_GUI_PATH}/license/* ${RPM_BUILD_ROOT}/opt/beegfs/LICENSE/beegfs-admon/gui
#if [ -f /etc/redhat-release ]; then
# INITSCRIPT="dist/etc/init.d/%NAME%.init.rh"
#elif [ -f /etc/SuSE-release ]; then
# INITSCRIPT="dist/etc/init.d/%NAME%.init.suse"
#else
# echo "Warning unknown distribution, will use RedHat init script"
# INITSCRIPT="dist/etc/init.d/%NAME%.init.rh"
#fi
INITSCRIPT="dist/etc/init.d/%NAME%.init"
install -D $INITSCRIPT ${RPM_BUILD_ROOT}/etc/init.d/%NAME%
#add the generic part of the init script from the common package
GENERIC_INITSCRIPT=%{BEEGFS_COMMON_PACKAGE_PATH}/build/dist/etc/init.d/beegfs-service.init
cat $GENERIC_INITSCRIPT >> ${RPM_BUILD_ROOT}/etc/init.d/%NAME%
#install systemd unit description
install -D -m644 dist/usr/lib/systemd/system/%NAME%.service \
${RPM_BUILD_ROOT}/usr/lib/systemd/system/%NAME%.service
install -D %NAME% ${RPM_BUILD_ROOT}/opt/beegfs/sbin/%NAME%
install -D dist/sbin/beegfs-setup-admon \
${RPM_BUILD_ROOT}/opt/beegfs/sbin/beegfs-setup-admon
install -D -m644 dist/etc/default/%NAME% ${RPM_BUILD_ROOT}/etc/default/%NAME%
COMMON_SCRIPT_PATH=%{BEEGFS_COMMON_PACKAGE_PATH}/scripts/etc/beegfs/lib
install -D -m644 ${COMMON_SCRIPT_PATH}/start-stop-functions \
${RPM_BUILD_ROOT}/etc/beegfs/lib/start-stop-functions.beegfs-admon
install -D -m644 ${COMMON_SCRIPT_PATH}/init-multi-mode \
${RPM_BUILD_ROOT}/etc/beegfs/lib/init-multi-mode.beegfs-admon
#add admon GUI start script
install -D -m755 dist/usr/bin/beegfs-admon-gui ${RPM_BUILD_ROOT}/usr/bin/beegfs-admon-gui
mkdir -p ${RPM_BUILD_ROOT}/opt/beegfs/setup
cp -R ../scripts/* ${RPM_BUILD_ROOT}/opt/beegfs/setup
mkdir -p ${RPM_BUILD_ROOT}/opt/beegfs/setup/info
touch ${RPM_BUILD_ROOT}/opt/beegfs/setup/info/clients
touch ${RPM_BUILD_ROOT}/opt/beegfs/setup/info/ib_nodes