import mongodb-3.6.8-1.el8+2037+3ee0e500
This commit is contained in:
commit
62e2457f08
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
SOURCES/r3.6.8.tar.gz
|
1
.mongodb.metadata
Normal file
1
.mongodb.metadata
Normal file
@ -0,0 +1 @@
|
||||
ef2fdf8750a10af58a78cde3aeaa38790c353d42 SOURCES/r3.6.8.tar.gz
|
45
SOURCES/32bit-support.patch
Normal file
45
SOURCES/32bit-support.patch
Normal file
@ -0,0 +1,45 @@
|
||||
diff --git a/src/mongo/bson/bsonobjbuilder.h b/src/mongo/bson/bsonobjbuilder.h
|
||||
index 38dae82..ee9b957 100644
|
||||
--- a/src/mongo/bson/bsonobjbuilder.h
|
||||
+++ b/src/mongo/bson/bsonobjbuilder.h
|
||||
@@ -341,7 +341,7 @@ public:
|
||||
return append(fieldName, d);
|
||||
}
|
||||
|
||||
- BSONObjBuilder& appendNumber(StringData fieldName, size_t n) {
|
||||
+ BSONObjBuilder& appendNumber(StringData fieldName, uint64_t n) {
|
||||
static const size_t maxInt = (1 << 30);
|
||||
if (n < maxInt)
|
||||
append(fieldName, static_cast<int>(n));
|
||||
@@ -350,6 +350,18 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Implement appendNumber for uint64_t and size_t on 32-bit platforms where
|
||||
+ * these types differs. Typically for
|
||||
+ * 32b: size_t ~ unsigned int; uint64_t ~ unsigned long long;
|
||||
+ * 64b: size_t ~ unsigned long; uint64_t ~ unsigned long;
|
||||
+ */
|
||||
+ inline BSONObjBuilder& appendNumber(
|
||||
+ StringData fieldName,
|
||||
+ std::conditional<!std::is_same<uint64_t, size_t>::value, size_t, unsigned int>::type n) {
|
||||
+ return appendNumber(fieldName, static_cast<uint64_t>(n));
|
||||
+ }
|
||||
+
|
||||
BSONObjBuilder& appendNumber(StringData fieldName, Decimal128 decNumber) {
|
||||
return append(fieldName, decNumber);
|
||||
}
|
||||
diff --git a/src/mongo/platform/pause.h b/src/mongo/platform/pause.h
|
||||
index 46df146..5003de5 100644
|
||||
--- a/src/mongo/platform/pause.h
|
||||
+++ b/src/mongo/platform/pause.h
|
||||
@@ -55,7 +55,7 @@
|
||||
/* ori 0,0,0 is the PPC64 noop instruction */
|
||||
#define MONGO_YIELD_CORE_FOR_SMT() __asm__ volatile("ori 0,0,0" ::: "memory")
|
||||
|
||||
-#elif defined(__aarch64__)
|
||||
+#elif defined(__aarch64__) || defined(__arm__)
|
||||
|
||||
#define MONGO_YIELD_CORE_FOR_SMT() __asm__ volatile("yield" ::: "memory")
|
||||
|
57
SOURCES/README
Normal file
57
SOURCES/README
Normal file
@ -0,0 +1,57 @@
|
||||
This directory contains a test suite for the mongoDB daemon. To run the
|
||||
core JavaScripts tests, execute "./resmoke.py --suites core" in this
|
||||
directory.
|
||||
|
||||
For use in Red Hat distributions, you should run the script as user
|
||||
mongodb, who is created with nologin shell however, so the best bet is
|
||||
something like:
|
||||
$ su -
|
||||
# cd /usr/share/mongodb-test
|
||||
# su -s /bin/bash mongodb -c "./resmoke.py --suites core"
|
||||
|
||||
This will use the installed mongodb executables, but will run a private
|
||||
copy of the server process (using data files within
|
||||
/usr/share/mongodb-test/var/), so you need not start the mongod service
|
||||
beforehand.
|
||||
|
||||
To clean up afterwards, remove the created "var/*" subdirectories, eg
|
||||
# su -s /bin/bash - mongodb -c "rm -rf /usr/share/mongodb-test/var/*"
|
||||
|
||||
If one or more tests fail on your system, please read the following
|
||||
manual section for instructions on how to report the problem:
|
||||
|
||||
http://www.mongodb.org/about/contributors/tutorial/submit-bug-reports/
|
||||
|
||||
MongoDB offers several test suites. To get list of provided test suites
|
||||
run "./resmoke.py -l".
|
||||
|
||||
If you want to run a specific test, simply add path to JavaSctipt file
|
||||
from /usr/share/mongodb-test/jstests/ you want to run to the option to
|
||||
resmoke.py. It is also possible to specify more files. For example to
|
||||
run jstests/disk/*.js files execute "./resmoke.py jstests/disk/*.js"
|
||||
|
||||
If you want to use some specific storage engine for mongod server you
|
||||
have to specify --storageEngine option. Actualy there are two stable
|
||||
storage engines: mmapv1 and wiredTiger (x86_64 only).
|
||||
|
||||
For more options run "./resmoke.py --help".
|
||||
|
||||
|
||||
In Red Hat distributions use this syntax:
|
||||
$ su -
|
||||
# cd /usr/share/mongodb-test
|
||||
# su -s /bin/bash mongodb -c "./resmoke.py OPTIONS"
|
||||
|
||||
More info about mongoDB testing:
|
||||
http://www.mongodb.org/about/contributors/tutorial/test-the-mongodb-server/
|
||||
|
||||
|
||||
|
||||
Notes:
|
||||
|
||||
- ARM architecture is not fully supported -
|
||||
https://jira.mongodb.org/browse/SERVER-1811
|
||||
|
||||
- This subpackage does not contain dbtest binary (it is going to be
|
||||
deprecated).
|
||||
|
18
SOURCES/boost-1.66.patch
Normal file
18
SOURCES/boost-1.66.patch
Normal file
@ -0,0 +1,18 @@
|
||||
From 3c34eda8d8a38b982a1659b919e9f4b5971ba512 Mon Sep 17 00:00:00 2001
|
||||
From: Judah Schvimer <judah@mongodb.com>
|
||||
Date: Wed, 31 Jan 2018 11:38:57 -0500
|
||||
Subject: [PATCH] SERVER-32516 remove make_optional type
|
||||
|
||||
diff --git a/src/mongo/executor/network_interface_mock_test.cpp b/src/mongo/executor/network_interface_mock_test.cpp
|
||||
index b1a2e4edff..c41aad1f8c 100644
|
||||
--- a/src/mongo/executor/network_interface_mock_test.cpp
|
||||
+++ b/src/mongo/executor/network_interface_mock_test.cpp
|
||||
@@ -143,7 +143,7 @@ TEST_F(NetworkInterfaceMockTest, ConnectionHook) {
|
||||
[&](const HostAndPort& remoteHost) {
|
||||
makeRequestCalled = true;
|
||||
hostCorrectForRequest = (remoteHost == testHost());
|
||||
- return boost::make_optional<RemoteCommandRequest>(expectedRequest);
|
||||
+ return boost::make_optional(expectedRequest);
|
||||
},
|
||||
[&](const HostAndPort& remoteHost, RemoteCommandResponse&& response) {
|
||||
handleReplyCalled = true;
|
119
SOURCES/mongod.conf
Normal file
119
SOURCES/mongod.conf
Normal file
@ -0,0 +1,119 @@
|
||||
##
|
||||
## For list of options visit:
|
||||
## https://docs.mongodb.org/manual/reference/configuration-options/
|
||||
##
|
||||
|
||||
# systemLog Options - How to do logging
|
||||
systemLog:
|
||||
# The default log message verbosity level for components (0-5)
|
||||
verbosity: 0
|
||||
|
||||
# The destination to which MongoDB sends all log output (file|syslog, if not specifed to STDOUT)
|
||||
destination: file
|
||||
|
||||
# Log file to send write to instead of stdout - has to be a file, not directory
|
||||
path: /var/log/mongodb/mongod.log
|
||||
|
||||
# Append to logpath instead of over-writing (false by default)
|
||||
logAppend: true
|
||||
|
||||
# Set the log rotation behavior (rename|reopen, rename by default)
|
||||
logRotate: reopen
|
||||
|
||||
|
||||
# processManagement Options - How the process runs
|
||||
processManagement:
|
||||
# Fork server process (false by default)
|
||||
fork: true
|
||||
|
||||
# Full path to pidfile (if not set, no pidfile is created)
|
||||
pidFilePath: /var/run/mongodb/mongod.pid
|
||||
|
||||
|
||||
# net Options - Network interfaces settings
|
||||
net:
|
||||
# Specify port number (27017 by default)
|
||||
port: 27017
|
||||
|
||||
# Comma separated list of ip addresses to listen on (all local ips by default)
|
||||
bindIp: 127.0.0.1,::1
|
||||
|
||||
# Enable IPv6 support (disabled by default)
|
||||
ipv6: true
|
||||
|
||||
unixDomainSocket:
|
||||
# Enable/disable listening on the UNIX domain socket (true by default)
|
||||
enabled: true
|
||||
|
||||
# Alternative directory for UNIX domain sockets (defaults to /tmp)
|
||||
pathPrefix: /var/run/mongodb
|
||||
|
||||
#ssl:
|
||||
# Set the SSL operation mode (disabled|allowSSL|preferSSL|requireSSL)
|
||||
#mode: <string>
|
||||
|
||||
# PEM file for ssl
|
||||
#PEMKeyFile: <string>
|
||||
|
||||
# Certificate Authority file for SSL
|
||||
#CAFile: <string>
|
||||
|
||||
|
||||
# storage Options - How and Where to store data
|
||||
storage:
|
||||
# Directory for datafiles (defaults to /data/db/)
|
||||
dbPath: /var/lib/mongodb
|
||||
|
||||
#journal:
|
||||
# Enable/Disable journaling (journaling is on by default for 64 bit)
|
||||
#enabled: true
|
||||
|
||||
# The storage engine for the mongod database (mmapv1|wiredTiger, wiredTiger by default
|
||||
# - works for 64 bit only)
|
||||
# Also possible to use unstable engines: devnull|ephemeralForTest
|
||||
engine: mmapv1
|
||||
|
||||
#mmapv1:
|
||||
# Enable or disable the preallocation of data files (true by default)
|
||||
#preallocDataFiles: <boolean>
|
||||
|
||||
# Use a smaller default file size (false by default)
|
||||
#smallFiles: <boolean>
|
||||
|
||||
#wiredTiger:
|
||||
#engineConfig:
|
||||
# The maximum size of the cache that WiredTiger will use for all data
|
||||
# (max(60% of RAM - 1GB, 1GB) by default)
|
||||
#cacheSizeGB: 5
|
||||
|
||||
# The type of compression to use to compress WiredTiger journal data
|
||||
# (none|snappy|zlib, snappy by default)
|
||||
#journalCompressor: <string>
|
||||
|
||||
#collectionConfig:
|
||||
# The default type of compression to use to compress collection data
|
||||
# (none|snappy|zlib, snappy by default)
|
||||
#blockCompressor: <string>
|
||||
|
||||
|
||||
# secutiry Options - Authorization and other security settings
|
||||
#security:
|
||||
# Private key for cluster authentication
|
||||
#keyFile: <string>
|
||||
|
||||
# Run with/without security (enabled|disabled, disabled by default)
|
||||
#authorization
|
||||
|
||||
|
||||
# setParameter Options - Set MongoDB server parameters
|
||||
# setParameter:
|
||||
|
||||
# opratrionProfiling Options - Profiling settings
|
||||
#operationProfiling:
|
||||
|
||||
# replication Options - ReplSet settings
|
||||
#replication:
|
||||
|
||||
# sharding Options - Shard settings
|
||||
#sharding:
|
||||
|
170
SOURCES/mongod.init
Normal file
170
SOURCES/mongod.init
Normal file
@ -0,0 +1,170 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# mongod init file for starting up the mongoDB server
|
||||
#
|
||||
# chkconfig: - 90 10
|
||||
# description: Starts and stops the mongoDB daemon that handles all \
|
||||
# database requests.
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
prog="mongod"
|
||||
exec="/usr/bin/$prog"
|
||||
logfile=${LOGFILE-/var/log/mongodb/$prog.log}
|
||||
|
||||
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
|
||||
|
||||
pidfile=${PIDFILE-/var/run/mongodb/$prog.pid}
|
||||
options="$OPTIONS"
|
||||
lockfile="/var/lock/subsys/$prog"
|
||||
|
||||
# Nicer version of killproc that does not kill mongodb when it takes
|
||||
# a long time to shut down and does not hang for a long time when mongo
|
||||
# shuts down quickly
|
||||
killproc_nice() {
|
||||
local RC base pid pid_file= delay i
|
||||
|
||||
RC=0; delay=3
|
||||
# Test syntax.
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]"
|
||||
return 1
|
||||
fi
|
||||
if [ "$1" = "-p" ]; then
|
||||
pid_file=$2
|
||||
shift 2
|
||||
fi
|
||||
if [ "$1" = "-d" ]; then
|
||||
delay=$2
|
||||
shift 2
|
||||
fi
|
||||
|
||||
# Save basename.
|
||||
base=${1##*/}
|
||||
|
||||
# Find pid.
|
||||
__pids_var_run "$1" "$pid_file"
|
||||
RC=$?
|
||||
if [ -z "$pid" ]; then
|
||||
if [ -z "$pid_file" ]; then
|
||||
pid="$(__pids_pidof "$1")"
|
||||
else
|
||||
[ "$RC" = "4" ] && { failure $"$base shutdown" ; return $RC ;}
|
||||
fi
|
||||
fi
|
||||
|
||||
# Kill it.
|
||||
if [ -n "$pid" ] ; then
|
||||
[ "$BOOTUP" = "verbose" -a -z "${LSB:-}" ] && echo -n "$base "
|
||||
if checkpid $pid 2>&1; then
|
||||
# TERM first, then KILL if not dead
|
||||
kill -TERM $pid >/dev/null 2>&1
|
||||
usleep 100000
|
||||
|
||||
# Check every one second if the program is stopped.
|
||||
# Do so for a maximum of $delay seconds
|
||||
for ((i = 0 ; i < $delay; i++))
|
||||
do
|
||||
if checkpid $pid; then
|
||||
sleep 1
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# If the program is not stopped, kill it
|
||||
if checkpid $pid ; then
|
||||
kill -KILL $pid >/dev/null 2>&1
|
||||
usleep 100000
|
||||
fi
|
||||
fi
|
||||
checkpid $pid
|
||||
RC=$?
|
||||
[ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown"
|
||||
RC=$((! $RC))
|
||||
else
|
||||
failure $"$base shutdown"
|
||||
RC=0
|
||||
fi
|
||||
|
||||
# Remove pid file if any.
|
||||
rm -f "${pid_file:-/var/run/$base.pid}"
|
||||
return $RC
|
||||
}
|
||||
|
||||
start() {
|
||||
[ -x $exec ] || exit 5
|
||||
[ "$(id -u)" -eq 0 ] || exit 4
|
||||
echo -n $"Starting $prog: "
|
||||
daemon --pidfile=${pidfile} --user mongodb "$exec $options run >> $logfile 2>&1"
|
||||
retval=$?
|
||||
echo
|
||||
[ $retval -eq 0 ] && touch $lockfile
|
||||
return $retval
|
||||
}
|
||||
|
||||
stop() {
|
||||
[ "$(id -u)" -eq 0 ] || exit 4
|
||||
echo -n $"Stopping $prog: "
|
||||
killproc_nice -p ${pidfile} -d 300 $prog
|
||||
retval=$?
|
||||
echo
|
||||
[ $retval -eq 0 ] && rm -f $lockfile
|
||||
return $retval
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
force_reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
rh_status() {
|
||||
# run checks to determine if the service is running or use generic status
|
||||
status -p ${pidfile} $prog
|
||||
}
|
||||
|
||||
rh_status_q() {
|
||||
rh_status >/dev/null 2>&1
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
rh_status_q && exit 0
|
||||
$1
|
||||
;;
|
||||
stop)
|
||||
rh_status_q || exit 0
|
||||
$1
|
||||
;;
|
||||
restart)
|
||||
$1
|
||||
;;
|
||||
reload)
|
||||
rh_status_q || exit 7
|
||||
$1
|
||||
;;
|
||||
force-reload)
|
||||
force_reload
|
||||
;;
|
||||
status)
|
||||
rh_status
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
rh_status_q || exit 0
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
||||
exit 2
|
||||
esac
|
||||
exit $?
|
15
SOURCES/mongod.service
Normal file
15
SOURCES/mongod.service
Normal file
@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=High-performance, schema-free document-oriented database
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
User=mongodb
|
||||
EnvironmentFile=/etc/sysconfig/mongod
|
||||
ExecStart=/bin/sh -c "exec $NUMACTL /usr/bin/mongod $OPTIONS run"
|
||||
PrivateTmp=true
|
||||
LimitNOFILE=64000
|
||||
TimeoutStartSec=180
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
5
SOURCES/mongod.sysconf
Normal file
5
SOURCES/mongod.sysconf
Normal file
@ -0,0 +1,5 @@
|
||||
OPTIONS="-f /etc/mongod.conf"
|
||||
|
||||
# To run numactl before starting mongodb server
|
||||
# https://docs.mongodb.com/manual/administration/production-notes/#configuring-numa-on-linux
|
||||
#NUMACTL="/usr/bin/numactl --interleave=all"
|
3
SOURCES/mongodb-tmpfile
Normal file
3
SOURCES/mongodb-tmpfile
Normal file
@ -0,0 +1,3 @@
|
||||
# make sure the mongodb dir is owned by mongodb so the process running as
|
||||
# mongodb can write the pid there
|
||||
d /run/mongodb 0755 mongodb root -
|
12
SOURCES/mongodb.logrotate
Normal file
12
SOURCES/mongodb.logrotate
Normal file
@ -0,0 +1,12 @@
|
||||
/var/log/mongodb/*.log {
|
||||
weekly
|
||||
rotate 10
|
||||
copytruncate
|
||||
delaycompress
|
||||
compress
|
||||
notifempty
|
||||
missingok
|
||||
postrotate
|
||||
/bin/kill -USR1 `cat /var/run/mongodb/mongod.pid 2>/dev/null` 2> /dev/null|| true
|
||||
endscript
|
||||
}
|
86
SOURCES/mongos.conf
Normal file
86
SOURCES/mongos.conf
Normal file
@ -0,0 +1,86 @@
|
||||
##
|
||||
## For list of options visit:
|
||||
## https://docs.mongodb.org/manual/reference/configuration-options/
|
||||
##
|
||||
|
||||
# systemLog Options - How to do logging
|
||||
systemLog:
|
||||
# The default log message verbosity level for components (0-5)
|
||||
verbosity: 0
|
||||
|
||||
# The destination to which MongoDB sends all log output (file|syslog, if not specifed to STDOUT)
|
||||
destination: file
|
||||
|
||||
# Log file to send write to instead of stdout - has to be a file, not directory
|
||||
path: /var/log/mongodb/mongod.log
|
||||
|
||||
# Append to logpath instead of over-writing (false by default)
|
||||
logAppend: true
|
||||
|
||||
# Set the log rotation behavior (rename|reopen, rename by default)
|
||||
logRotate: reopen
|
||||
|
||||
|
||||
# processManagement Options - How the process runs
|
||||
processManagement:
|
||||
# Fork server process (false by default)
|
||||
fork: true
|
||||
|
||||
# Full path to pidfile (if not set, no pidfile is created)
|
||||
pidFilePath: /var/run/mongodb/mongod.pid
|
||||
|
||||
|
||||
# net Options - Network interfaces settings
|
||||
net:
|
||||
# Specify port number (27017 by default)
|
||||
port: 27017
|
||||
|
||||
# Comma separated list of ip addresses to listen on (all local ips by default)
|
||||
bindIp: 127.0.0.1,::1
|
||||
|
||||
# Enable IPv6 support (disabled by default)
|
||||
ipv6: true
|
||||
|
||||
unixDomainSocket:
|
||||
# Enable/disable listening on the UNIX domain socket (true by default)
|
||||
enabled: true
|
||||
|
||||
# Alternative directory for UNIX domain sockets (defaults to /tmp)
|
||||
pathPrefix: /var/run/mongodb
|
||||
|
||||
#ssl:
|
||||
# Set the SSL operation mode (disabled|allowSSL|preferSSL|requireSSL)
|
||||
#mode: <string>
|
||||
|
||||
# PEM file for ssl
|
||||
#PEMKeyFile: <string>
|
||||
|
||||
# Certificate Authority file for SSL
|
||||
#CAFile: <string>
|
||||
|
||||
|
||||
# secutiry Options - Authorization and other security settings
|
||||
#security:
|
||||
# Private key for cluster authentication
|
||||
#keyFile: <string>
|
||||
|
||||
|
||||
# sharding Options - Shard settings
|
||||
#sharding:
|
||||
# The configuration servers for the sharded cluster
|
||||
# Acceptable form: <config replset name>/<host1:port>,<host2:port>,[...]
|
||||
#configDB: <string>
|
||||
|
||||
|
||||
# storage Options - How and Where to store data
|
||||
#storage:
|
||||
|
||||
# setParameter Options - Set MongoDB server parameters
|
||||
# setParameter:
|
||||
|
||||
# opratrionProfiling Options - Profiling settings
|
||||
#operationProfiling:
|
||||
|
||||
# replication Options - ReplSet settings
|
||||
#replication:
|
||||
|
170
SOURCES/mongos.init
Normal file
170
SOURCES/mongos.init
Normal file
@ -0,0 +1,170 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# mongos init file for starting up the mongoDB shard server
|
||||
#
|
||||
# chkconfig: - 90 10
|
||||
# description: Starts and stops the mongoDB shard daemon that handles all \
|
||||
# database requests.
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
prog="mongos"
|
||||
exec="/usr/bin/$prog"
|
||||
logfile=${LOGFILE-/var/log/mongodb/$prog.log}
|
||||
|
||||
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
|
||||
|
||||
pidfile=${PIDFILE-/var/run/mongodb/$prog.pid}
|
||||
options="$OPTIONS"
|
||||
lockfile="/var/lock/subsys/$prog"
|
||||
|
||||
# Nicer version of killproc that does not kill mongodb when it takes
|
||||
# a long time to shut down and does not hang for a long time when mongo
|
||||
# shuts down quickly
|
||||
killproc_nice() {
|
||||
local RC base pid pid_file= delay i
|
||||
|
||||
RC=0; delay=3
|
||||
# Test syntax.
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]"
|
||||
return 1
|
||||
fi
|
||||
if [ "$1" = "-p" ]; then
|
||||
pid_file=$2
|
||||
shift 2
|
||||
fi
|
||||
if [ "$1" = "-d" ]; then
|
||||
delay=$2
|
||||
shift 2
|
||||
fi
|
||||
|
||||
# Save basename.
|
||||
base=${1##*/}
|
||||
|
||||
# Find pid.
|
||||
__pids_var_run "$1" "$pid_file"
|
||||
RC=$?
|
||||
if [ -z "$pid" ]; then
|
||||
if [ -z "$pid_file" ]; then
|
||||
pid="$(__pids_pidof "$1")"
|
||||
else
|
||||
[ "$RC" = "4" ] && { failure $"$base shutdown" ; return $RC ;}
|
||||
fi
|
||||
fi
|
||||
|
||||
# Kill it.
|
||||
if [ -n "$pid" ] ; then
|
||||
[ "$BOOTUP" = "verbose" -a -z "${LSB:-}" ] && echo -n "$base "
|
||||
if checkpid $pid 2>&1; then
|
||||
# TERM first, then KILL if not dead
|
||||
kill -TERM $pid >/dev/null 2>&1
|
||||
usleep 100000
|
||||
|
||||
# Check every one second if the program is stopped.
|
||||
# Do so for a maximum of $delay seconds
|
||||
for ((i = 0 ; i < $delay; i++))
|
||||
do
|
||||
if checkpid $pid; then
|
||||
sleep 1
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# If the program is not stopped, kill it
|
||||
if checkpid $pid ; then
|
||||
kill -KILL $pid >/dev/null 2>&1
|
||||
usleep 100000
|
||||
fi
|
||||
fi
|
||||
checkpid $pid
|
||||
RC=$?
|
||||
[ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown"
|
||||
RC=$((! $RC))
|
||||
else
|
||||
failure $"$base shutdown"
|
||||
RC=0
|
||||
fi
|
||||
|
||||
# Remove pid file if any.
|
||||
rm -f "${pid_file:-/var/run/$base.pid}"
|
||||
return $RC
|
||||
}
|
||||
|
||||
start() {
|
||||
[ -x $exec ] || exit 5
|
||||
[ "$(id -u)" -eq 0 ] || exit 4
|
||||
echo -n $"Starting $prog: "
|
||||
daemon --pidfile=${pidfile} --user mongodb "$exec $options >> $logfile 2>&1"
|
||||
retval=$?
|
||||
echo
|
||||
[ $retval -eq 0 ] && touch $lockfile
|
||||
return $retval
|
||||
}
|
||||
|
||||
stop() {
|
||||
[ "$(id -u)" -eq 0 ] || exit 4
|
||||
echo -n $"Stopping $prog: "
|
||||
killproc_nice -p ${pidfile} -d 300 $prog
|
||||
retval=$?
|
||||
echo
|
||||
[ $retval -eq 0 ] && rm -f $lockfile
|
||||
return $retval
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
force_reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
rh_status() {
|
||||
# run checks to determine if the service is running or use generic status
|
||||
status -p ${pidfile} $prog
|
||||
}
|
||||
|
||||
rh_status_q() {
|
||||
rh_status >/dev/null 2>&1
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
rh_status_q && exit 0
|
||||
$1
|
||||
;;
|
||||
stop)
|
||||
rh_status_q || exit 0
|
||||
$1
|
||||
;;
|
||||
restart)
|
||||
$1
|
||||
;;
|
||||
reload)
|
||||
rh_status_q || exit 7
|
||||
$1
|
||||
;;
|
||||
force-reload)
|
||||
force_reload
|
||||
;;
|
||||
status)
|
||||
rh_status
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
rh_status_q || exit 0
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
||||
exit 2
|
||||
esac
|
||||
exit $?
|
15
SOURCES/mongos.service
Normal file
15
SOURCES/mongos.service
Normal file
@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=High-performance, schema-free document-oriented database
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
User=mongodb
|
||||
EnvironmentFile=/etc/sysconfig/mongos
|
||||
ExecStart=/bin/sh -c "exec $NUMACTL /usr/bin/mongos $OPTIONS"
|
||||
PrivateTmp=true
|
||||
LimitNOFILE=64000
|
||||
TimeoutStartSec=180
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
5
SOURCES/mongos.sysconf
Normal file
5
SOURCES/mongos.sysconf
Normal file
@ -0,0 +1,5 @@
|
||||
OPTIONS="-f /etc/mongos.conf"
|
||||
|
||||
# To run numactl before starting mongodb server
|
||||
# https://docs.mongodb.com/manual/administration/production-notes/#configuring-numa-on-linux
|
||||
#NUMACTL="/usr/bin/numactl --interleave=all"
|
13
SOURCES/ppc64-altivec.patch
Normal file
13
SOURCES/ppc64-altivec.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/SConstruct b/SConstruct
|
||||
index 22dd77d947..3b90026138 100644
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -3043,7 +3043,7 @@ def doConfigure(myenv):
|
||||
# ask each module to configure itself and the build environment.
|
||||
moduleconfig.configure_modules(mongo_modules, conf)
|
||||
|
||||
- if env['TARGET_ARCH'] == "ppc64le":
|
||||
+ if env['TARGET_ARCH'] == "ppc64le" or env['TARGET_ARCH'] == "ppc64":
|
||||
# This checks for an altivec optimization we use in full text search.
|
||||
# Different versions of gcc appear to put output bytes in different
|
||||
# parts of the output vector produced by vec_vbpermq. This configure
|
7079
SOURCES/ppc64-arm-i386-mozjs-code.patch
Normal file
7079
SOURCES/ppc64-arm-i386-mozjs-code.patch
Normal file
File diff suppressed because it is too large
Load Diff
76
SOURCES/ppc64.patch
Normal file
76
SOURCES/ppc64.patch
Normal file
@ -0,0 +1,76 @@
|
||||
diff --git a/SConstruct b/SConstruct
|
||||
index fe7975b..88d6650 100644
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -980,6 +980,7 @@ processor_macros = {
|
||||
'arm' : { 'endian': 'little', 'defines': ('__arm__',) },
|
||||
'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
|
||||
'i386' : { 'endian': 'little', 'defines': ('__i386', '_M_IX86')},
|
||||
+ 'ppc64' : { 'endian': 'big', 'defines': ('__powerpc64__) && defined(__BIG_ENDIAN__',)},
|
||||
'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)},
|
||||
's390x' : { 'endian': 'big', 'defines': ('__s390x__',)},
|
||||
'sparc' : { 'endian': 'big', 'defines': ('__sparc',)},
|
||||
diff --git a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/float128/architecture.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/float128/architecture.h
|
||||
index 355d70e..afefe7b 100755
|
||||
--- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/float128/architecture.h
|
||||
+++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/float128/architecture.h
|
||||
@@ -570,7 +570,7 @@
|
||||
# endif
|
||||
|
||||
|
||||
-#elif (defined(__s390x__))
|
||||
+#elif (defined(__s390x__)) || (defined(__powerpc64__) && defined(__BIG_ENDIAN__))
|
||||
|
||||
# undef vax
|
||||
# undef mips
|
||||
diff --git a/src/third_party/IntelRDFPMathLib20U1/SConscript b/src/third_party/IntelRDFPMathLib20U1/SConscript
|
||||
index 20287a6..a495e9c 100644
|
||||
--- a/src/third_party/IntelRDFPMathLib20U1/SConscript
|
||||
+++ b/src/third_party/IntelRDFPMathLib20U1/SConscript
|
||||
@@ -313,6 +313,9 @@ elif processor == 'x86_64' or processor == 'ppc64le':
|
||||
cpp_defines['efi2'] = '1'
|
||||
cpp_defines['EFI2'] = '1'
|
||||
# Using 64 bit big endian
|
||||
+elif processor == 'ppc64':
|
||||
+ cpp_defines['ppc64'] = '1'
|
||||
+ cpp_defines['BID_BIG_ENDIAN'] = '1'
|
||||
elif processor == 's390x':
|
||||
cpp_defines['s390x'] = '1'
|
||||
cpp_defines['BID_BIG_ENDIAN'] = '1'
|
||||
diff --git a/src/third_party/timelib-2017.05/parse_tz.c b/src/third_party/timelib-2017.05/parse_tz.c
|
||||
index 3b68549..6460475 100644
|
||||
--- a/src/third_party/timelib-2017.05/parse_tz.c
|
||||
+++ b/src/third_party/timelib-2017.05/parse_tz.c
|
||||
@@ -38,7 +38,7 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
-#if defined(__s390__)
|
||||
+#if defined(__s390__) || defined(__powerpc64__)
|
||||
# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
# define WORDS_BIGENDIAN
|
||||
# else
|
||||
diff --git a/src/third_party/wiredtiger/SConscript b/src/third_party/wiredtiger/SConscript
|
||||
index 1e07852..8a671b6 100644
|
||||
--- a/src/third_party/wiredtiger/SConscript
|
||||
+++ b/src/third_party/wiredtiger/SConscript
|
||||
@@ -135,7 +135,7 @@ condition_map = {
|
||||
'WINDOWS_HOST' : env.TargetOSIs('windows'),
|
||||
|
||||
'ARM64_HOST' : env['TARGET_ARCH'] == 'aarch64',
|
||||
- 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le',
|
||||
+ 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le' or env['TARGET_ARCH'] == 'ppc64',
|
||||
'X86_HOST' : env['TARGET_ARCH'] == 'x86_64',
|
||||
'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x',
|
||||
}
|
||||
@@ -167,6 +167,10 @@ if useSnappy:
|
||||
if not (env['TARGET_ARCH'] == 's390x' and get_option("use-s390x-crc32") == "off"):
|
||||
env.Append(CPPDEFINES=["HAVE_CRC32_HARDWARE"])
|
||||
|
||||
+# It is not possible to pass ASFLAGS through variables to scons now
|
||||
+if env['TARGET_ARCH'] == 'ppc64':
|
||||
+ env.Append(ASFLAGS=["-mcpu=power8"])
|
||||
+
|
||||
wtlib = env.Library(
|
||||
target="wiredtiger",
|
||||
source=wtsources,
|
13
SOURCES/ppc64le-fix-altivec.patch
Normal file
13
SOURCES/ppc64le-fix-altivec.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/SConstruct b/SConstruct
|
||||
index 4d52f24b85..06ce2bf6f4 100644
|
||||
--- a/SConstruct
|
||||
+++ b/SConstruct
|
||||
@@ -3116,7 +3116,7 @@ def doConfigure(myenv):
|
||||
|
||||
outputIndex = next((idx for idx in [0,1] if conf.CheckAltivecVbpermqOutput(idx)), None)
|
||||
if outputIndex is not None:
|
||||
- conf.env.SetConfigHeaderDefine("MONGO_CONFIG_ALTIVEC_VEC_VBPERMQ_OUTPUT_INDEX", outputIndex)
|
||||
+ conf.env.SetConfigHeaderDefine("MONGO_CONFIG_ALTIVEC_VEC_VBPERMQ_OUTPUT_INDEX", outputIndex)
|
||||
else:
|
||||
myenv.ConfError("Running on ppc64le, but can't find a correct vec_vbpermq output index. Compiler or platform not supported")
|
||||
|
1798
SOURCES/python3-buildscripts-tests.patch
Normal file
1798
SOURCES/python3-buildscripts-tests.patch
Normal file
File diff suppressed because it is too large
Load Diff
1226
SPECS/mongodb.spec
Normal file
1226
SPECS/mongodb.spec
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user