summaryrefslogtreecommitdiff
path: root/rpm/mongodb-org-unstable-init.spec
diff options
context:
space:
mode:
authorRyan Egesdahl <ryan.egesdahl@mongodb.com>2021-05-12 10:34:16 -0700
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-05-12 23:17:23 +0000
commit7f36eb67d3403faf554a6241f1ec1a3890eaf01f (patch)
tree29d6b4a1eef17194b93e7044c6d3afe87ba44bd8 /rpm/mongodb-org-unstable-init.spec
parente5f2354bb3cab56404c1347fc9f4ea4173838b0f (diff)
downloadmongo-7f36eb67d3403faf554a6241f1ec1a3890eaf01f.tar.gz
SERVER-52610 Ensure RPM install roots can be relocated
We were not using directory macros in the RPMs, which meant that the installation root could not be changed. When we tried, we got an incomplete install, with some of it going to the new prefix and some going to the host system. Here, we follow RPM packaging guidelines a bit better and use named directory macros instead of explicit paths. (cherry picked from commit 9aba0cac770d87d36cf0f0d19a1be06e73312221) (cherry picked from commit 6670cb159540b07b8a39fe4c072c24ff7a0130f0) (cherry picked from commit 2495a8fa87c215da70c3361beef11d52ce5be1c0)
Diffstat (limited to 'rpm/mongodb-org-unstable-init.spec')
-rw-r--r--rpm/mongodb-org-unstable-init.spec75
1 files changed, 53 insertions, 22 deletions
diff --git a/rpm/mongodb-org-unstable-init.spec b/rpm/mongodb-org-unstable-init.spec
index 445ddb27108..86726d6f432 100644
--- a/rpm/mongodb-org-unstable-init.spec
+++ b/rpm/mongodb-org-unstable-init.spec
@@ -1,5 +1,19 @@
+%if 0%{?suse_version}
+%define _sharedstatedir %{_localstatedir}/lib
+%endif
+
+%if ! %{defined _docdir}
+%define _docdir %{_datadir}/doc
+%endif
+
+%if ! %{defined _rundir}
+%define _rundir %{_localstatedir}/run
+%endif
+
Name: mongodb-org-unstable
Prefix: /usr
+Prefix: /var
+Prefix: /etc
Conflicts: mongo-10gen, mongo-10gen-enterprise, mongo-10gen-enterprise-server, mongo-10gen-server, mongo-10gen-unstable, mongo-10gen-unstable-enterprise, mongo-10gen-unstable-enterprise-mongos, mongo-10gen-unstable-enterprise-server, mongo-10gen-unstable-enterprise-shell, mongo-10gen-unstable-enterprise-tools, mongo-10gen-unstable-mongos, mongo-10gen-unstable-server, mongo-10gen-unstable-shell, mongo-10gen-unstable-tools, mongo18-10gen, mongo18-10gen-server, mongo20-10gen, mongo20-10gen-server, mongodb, mongodb-server, mongodb-dev, mongodb-clients, mongodb-10gen, mongodb-10gen-enterprise, mongodb-10gen-unstable, mongodb-10gen-unstable-enterprise, mongodb-10gen-unstable-enterprise-mongos, mongodb-10gen-unstable-enterprise-server, mongodb-10gen-unstable-enterprise-shell, mongodb-10gen-unstable-enterprise-tools, mongodb-10gen-unstable-mongos, mongodb-10gen-unstable-server, mongodb-10gen-unstable-shell, mongodb-10gen-unstable-tools, mongodb-enterprise, mongodb-enterprise-mongos, mongodb-enterprise-server, mongodb-enterprise-shell, mongodb-enterprise-tools, mongodb-nightly, mongodb-org, mongodb-org-mongos, mongodb-org-server, mongodb-org-shell, mongodb-org-tools, mongodb-stable, mongodb18-10gen, mongodb20-10gen, mongodb-enterprise-unstable, mongodb-enterprise-unstable-mongos, mongodb-enterprise-unstable-server, mongodb-enterprise-unstable-shell, mongodb-enterprise-unstable-tools
Version: %{dynamic_version}
Release: %{dynamic_release}%{?dist}
@@ -9,11 +23,22 @@ URL: http://www.mongodb.org
Group: Applications/Databases
Requires: mongodb-org-unstable-server = %{version}, mongodb-org-unstable-shell = %{version}, mongodb-org-unstable-mongos = %{version}, mongodb-org-unstable-tools = %{version}
+%if 0%{?rhel} >= 8 || 0%{?fedora} >= 30
+BuildRequires: /usr/bin/pathfix.py, python3-devel
+%endif
+
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+%if 0%{?rhel} >= 8 || 0%{?fedora} >= 30
+%define python_pkg python3
+%else
+%define python_pkg python2
+%endif
+
%if 0%{?suse_version}
%define timezone_pkg timezone
+%define python_pkg python
%else
%define timezone_pkg tzdata
%endif
@@ -155,27 +180,33 @@ MongoDB features:
This package provides the MongoDB static library and header files needed to develop MongoDB client software.
+#Release builds have no debug symbols, and this prevents packaging errors on RHEL 8.0
+%global debug_package %{nil}
+
%prep
%setup
+%if 0%{?rhel} >= 8 || 0%{?fedora} >= 30
+pathfix.py -pni "%{__python3} %{py3_shbang_opts}" bin/install_compass
+%endif
%build
%install
-mkdir -p $RPM_BUILD_ROOT/usr
-cp -rv bin $RPM_BUILD_ROOT/usr
-mkdir -p $RPM_BUILD_ROOT/usr/share/man/man1
-cp debian/*.1 $RPM_BUILD_ROOT/usr/share/man/man1/
-mkdir -p $RPM_BUILD_ROOT/etc/init.d
-cp -v rpm/init.d-mongod $RPM_BUILD_ROOT/etc/init.d/mongod
-chmod a+x $RPM_BUILD_ROOT/etc/init.d/mongod
-mkdir -p $RPM_BUILD_ROOT/etc
-cp -v rpm/mongod.conf $RPM_BUILD_ROOT/etc/mongod.conf
-mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
-cp -v rpm/mongod.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/mongod
-mkdir -p $RPM_BUILD_ROOT/var/lib/mongo
-mkdir -p $RPM_BUILD_ROOT/var/log/mongodb
-mkdir -p $RPM_BUILD_ROOT/var/run/mongodb
-touch $RPM_BUILD_ROOT/var/log/mongodb/mongod.log
+mkdir -p $RPM_BUILD_ROOT%{_prefix}
+cp -rv bin $RPM_BUILD_ROOT%{_prefix}
+mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
+cp debian/*.1 $RPM_BUILD_ROOT%{_mandir}/man1/
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
+cp -v rpm/init.d-mongod $RPM_BUILD_ROOT%{_sysconfdir}/init.d/mongod
+chmod a+x $RPM_BUILD_ROOT%{_sysconfdir}/init.d/mongod
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
+cp -v rpm/mongod.conf $RPM_BUILD_ROOT%{_sysconfdir}/mongod.conf
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
+cp -v rpm/mongod.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/mongod
+mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/mongo
+mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/mongodb
+mkdir -p $RPM_BUILD_ROOT%{_rundir}/mongodb
+touch $RPM_BUILD_ROOT%{_localstatedir}/log/mongodb/mongod.log
@@ -212,15 +243,15 @@ fi
%files server
%defattr(-,root,root,-)
-%config(noreplace) /etc/mongod.conf
+%config(noreplace) %{_sysconfdir}/mongod.conf
%{_bindir}/mongod
%{_mandir}/man1/mongod.1*
-/etc/init.d/mongod
-%config(noreplace) /etc/sysconfig/mongod
-%attr(0755,mongod,mongod) %dir /var/lib/mongo
-%attr(0755,mongod,mongod) %dir /var/log/mongodb
-%attr(0755,mongod,mongod) %dir /var/run/mongodb
-%attr(0640,mongod,mongod) %config(noreplace) %verify(not md5 size mtime) /var/log/mongodb/mongod.log
+%{_sysconfdir}/init.d/mongod
+%config(noreplace) %{_sysconfdir}/sysconfig/mongod
+%attr(0755,mongod,mongod) %dir %{_sharedstatedir}/mongo
+%attr(0755,mongod,mongod) %dir %{_localstatedir}/log/mongodb
+%attr(0755,mongod,mongod) %dir %{_rundir}/mongodb
+%attr(0640,mongod,mongod) %config(noreplace) %verify(not md5 size mtime) %{_localstatedir}/log/mongodb/mongod.log
%doc LICENSE-Community.txt
%doc README
%doc THIRD-PARTY-NOTICES