140 lines
4.3 KiB
RPMSpec
140 lines
4.3 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@
|
|
|
|
# This is needed to prevent Python compilation errors when building the RPM
|
|
# package
|
|
# https://github.com/scylladb/scylla/issues/2235
|
|
%if 0%{?rhel} < 8
|
|
%global __os_install_post \
|
|
/usr/lib/rpm/redhat/brp-compress \
|
|
%{!?__debug_package:\
|
|
/usr/lib/rpm/redhat/brp-strip %{__strip} \
|
|
/usr/lib/rpm/redhat/brp-strip-comment-note %{__strip} %{__objdump} \
|
|
} \
|
|
/usr/lib/rpm/redhat/brp-strip-static-archive %{__strip} \
|
|
%{!?__jar_repack:/usr/lib/rpm/redhat/brp-java-repack-jars} \
|
|
%{nil}
|
|
%else
|
|
%global __os_install_post \
|
|
/usr/lib/rpm/brp-compress \
|
|
%{!?__debug_package:\
|
|
/usr/lib/rpm/brp-strip %{__strip} \
|
|
/usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
|
|
} \
|
|
/usr/lib/rpm/brp-strip-static-archive %{__strip} \
|
|
%{nil}
|
|
%endif
|
|
|
|
%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
|
|
|
|
# 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
|
|
@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/memgraph/auth_module/ldap.example.yaml"
|
|
%config(noreplace) "/etc/logrotate.d/memgraph"
|
|
|
|
@CPACK_RPM_USER_INSTALL_FILES@
|
|
|
|
%changelog
|
|
@CPACK_RPM_SPEC_CHANGELOG@
|