fe361fb750
Reviewers: teon.banek, buda Reviewed By: teon.banek Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1863
129 lines
4.0 KiB
RPMSpec
129 lines
4.0 KiB
RPMSpec
# -*- rpm-spec -*-
|
|
BuildRoot: %_topdir/@CPACK_PACKAGE_FILE_NAME@@CPACK_RPM_PACKAGE_COMPONENT_PART_PATH@
|
|
Summary: @CPACK_RPM_PACKAGE_SUMMARY@
|
|
Name: @CPACK_RPM_PACKAGE_NAME@
|
|
Version: @CPACK_RPM_PACKAGE_VERSION@
|
|
Release: @CPACK_RPM_PACKAGE_RELEASE@
|
|
License: @CPACK_RPM_PACKAGE_LICENSE@
|
|
# Group field is deprecated
|
|
# Group: @CPACK_RPM_PACKAGE_GROUP@
|
|
Vendor: @CPACK_RPM_PACKAGE_VENDOR@
|
|
BuildRequires: systemd
|
|
|
|
@TMP_RPM_URL@
|
|
@TMP_RPM_REQUIRES@
|
|
@TMP_RPM_REQUIRES_PRE@
|
|
@TMP_RPM_REQUIRES_POST@
|
|
@TMP_RPM_REQUIRES_PREUN@
|
|
@TMP_RPM_REQUIRES_POSTUN@
|
|
@TMP_RPM_PROVIDES@
|
|
@TMP_RPM_OBSOLETES@
|
|
@TMP_RPM_CONFLICTS@
|
|
@TMP_RPM_AUTOPROV@
|
|
@TMP_RPM_AUTOREQ@
|
|
@TMP_RPM_AUTOREQPROV@
|
|
@TMP_RPM_BUILDARCH@
|
|
@TMP_RPM_PREFIXES@
|
|
|
|
@TMP_RPM_DEBUGINFO@
|
|
|
|
%define _rpmdir %_topdir/RPMS
|
|
%define _srcrpmdir %_topdir/SRPMS
|
|
@FILE_NAME_DEFINE@
|
|
%define _unpackaged_files_terminate_build 0
|
|
@TMP_RPM_SPEC_INSTALL_POST@
|
|
@CPACK_RPM_SPEC_MORE_DEFINE@
|
|
@CPACK_RPM_COMPRESSION_TYPE_TMP@
|
|
|
|
%description
|
|
@CPACK_RPM_PACKAGE_DESCRIPTION@
|
|
|
|
# This is a shortcutted spec file generated by CMake RPM generator
|
|
# we skip _install step because CPack does that for us.
|
|
# We do only save CPack installed tree in _prepr
|
|
# and then restore it in build.
|
|
%prep
|
|
# Put the systemd unit where it is expected on this system
|
|
mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
|
|
mv $RPM_BUILD_ROOT/lib/systemd/system/memgraph.service $RPM_BUILD_ROOT/%{_unitdir}
|
|
rm -rf $RPM_BUILD_ROOT/lib
|
|
# Fix the incorrect directory permissions set by cpack (this is fixed in CMake 3.11)
|
|
find $RPM_BUILD_ROOT -type d | xargs chmod 755
|
|
# After setting up custom prep, continue with CMake's default
|
|
mv $RPM_BUILD_ROOT %_topdir/tmpBBroot
|
|
|
|
%install
|
|
if [ -e $RPM_BUILD_ROOT ];
|
|
then
|
|
rm -rf $RPM_BUILD_ROOT
|
|
fi
|
|
mv %_topdir/tmpBBroot $RPM_BUILD_ROOT
|
|
|
|
@TMP_RPM_DEBUGINFO_INSTALL@
|
|
|
|
%clean
|
|
|
|
%post
|
|
# memgraph user and group must be set in preinst
|
|
chown memgraph:memgraph /var/lib/memgraph || exit 1
|
|
chmod 750 /var/lib/memgraph || exit 1
|
|
chown memgraph:adm /var/log/memgraph || exit 1
|
|
chmod 750 /var/log/memgraph || exit 1
|
|
|
|
# Create telemetry directory in examples
|
|
for i in /usr/share/memgraph/examples/*; do
|
|
# The telemetry directory may already exist from some prior installation
|
|
if [ ! -d $i/telemetry ]; then
|
|
mkdir $i/telemetry || exit 1
|
|
fi
|
|
chown -R memgraph:memgraph $i/telemetry || exit 1
|
|
# Make snapshots directory immutable (optional)
|
|
chattr +i -R $i/snapshots || true
|
|
done
|
|
|
|
# Generate SSL certificates
|
|
if [ ! -d /etc/memgraph/ssl ]; then
|
|
mkdir /etc/memgraph/ssl || exit 1
|
|
openssl req -x509 -newkey rsa:4096 -days 3650 -nodes \
|
|
-keyout /etc/memgraph/ssl/key.pem -out /etc/memgraph/ssl/cert.pem \
|
|
-subj "/C=GB/ST=London/L=London/O=Memgraph Ltd./CN=Memgraph DB" || exit 1
|
|
chown memgraph:memgraph /etc/memgraph/ssl/* || exit 1
|
|
chmod 400 /etc/memgraph/ssl/* || exit 1
|
|
fi
|
|
@RPM_SYMLINK_POSTINSTALL@
|
|
@CPACK_RPM_SPEC_POSTINSTALL@
|
|
|
|
%postun
|
|
@CPACK_RPM_SPEC_POSTUNINSTALL@
|
|
|
|
%pre
|
|
# Add the 'memgraph' user and group
|
|
getent group memgraph >/dev/null || groupadd -r memgraph || exit 1
|
|
getent passwd memgraph >/dev/null || \
|
|
useradd -r -g memgraph -d /var/lib/memgraph -s /bin/bash memgraph || exit 1
|
|
echo "Don't forget to switch to the 'memgraph' user to use Memgraph" || exit 1
|
|
@CPACK_RPM_SPEC_PREINSTALL@
|
|
|
|
%preun
|
|
# Remove optional immutability from examples directory to allow removal
|
|
chattr -i -R /usr/share/memgraph/examples || true
|
|
@CPACK_RPM_SPEC_PREUNINSTALL@
|
|
|
|
%files
|
|
%defattr(@TMP_DEFAULT_FILE_PERMISSIONS@,@TMP_DEFAULT_USER@,@TMP_DEFAULT_GROUP@,@TMP_DEFAULT_DIR_PERMISSIONS@)
|
|
@CPACK_RPM_INSTALL_FILES@
|
|
# Since we moved the memgraph.service file, declare it explicitly here.
|
|
# NOTE: memgraph.service must not be marked as configuration file.
|
|
%{_unitdir}/memgraph.service
|
|
|
|
# Override CPACK_RPM_ABSOLUTE_INSTALL_FILES with our %config(noreplace), cpack
|
|
# uses plain %config.
|
|
%config(noreplace) "/etc/memgraph/memgraph.conf"
|
|
%config(noreplace) "/etc/logrotate.d/memgraph"
|
|
%config(noreplace) "/etc/logrotate.d/memgraph_audit"
|
|
|
|
@CPACK_RPM_USER_INSTALL_FILES@
|
|
|
|
%changelog
|
|
@CPACK_RPM_SPEC_CHANGELOG@
|