diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3939063 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mongodb-src-r2.6.9.tar.gz diff --git a/.rh-mongodb26-mongodb.metadata b/.rh-mongodb26-mongodb.metadata new file mode 100644 index 0000000..a9a9a57 --- /dev/null +++ b/.rh-mongodb26-mongodb.metadata @@ -0,0 +1 @@ +70a3eb69d94b02d42bf3c2be22a6741a9264f354 SOURCES/mongodb-src-r2.6.9.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/README b/SOURCES/README new file mode 100644 index 0000000..41962ac --- /dev/null +++ b/SOURCES/README @@ -0,0 +1,63 @@ +To run mongoDB tests enable rh-mongodb26 and python27 Software Collections: + $ scl enable rh-mongodb26 python27 bash + +This directory contains a test suite for the mongoDB daemon. To run the +currently existing test cases, execute "./smoke.py all" 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 + # scl enable rh-mongodb26 python27 bash + # su -s /bin/bash mongodb -c "./smoke.py all" + +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 these test suites: mongosTest, jsCore, quota, jsPerf, disk, +noPassthroughWithMongod, noPassthrough, parallel, repl, replSets, dur, auth, +sharding, tool, aggregation, multiVersion, failPoint, ssl, sslSpecial, gle, +slow1 and slow2. To run a specific testsuite execute "./smoke.py TESTSUITE". + +If you want to run a specific test, use the --mode=files option to smoke.py +and specify what JavaSctipt file from /usr/share/mongodb-test/jstests/ you +want to run. It is also possible to specify more files. For example to run +jstests/libs/*.js files execute "./smoke.py --mode=files jstests/libs/*.js" + +If you want to use an already running mongoBD server for specific tests, use +the '--dont-start-mongod' option to smoke.py. Please note that in this mode, +the test suite expects you to run mongod with desired options. For example, +here is the command to run the "jsCore" tests with an external server: +"./smoke.py --dont-start-mongod jsCore --port 27017" + +For more options run "./smoke.py --help". + + +In Red Hat distributions use this syntax: + $ su - + # cd /usr/share/mongodb-test + # scl enable rh-mongodb26 python27 bash + # su -s /bin/bash mongodb -c "./smoke.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 (it is going to be + deprecated) and perftest (it is not working at all) binaries. + diff --git a/SOURCES/daemon-scl-helper.sh b/SOURCES/daemon-scl-helper.sh new file mode 100644 index 0000000..da8a3f3 --- /dev/null +++ b/SOURCES/daemon-scl-helper.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# This helper script is necessary for having proper SELinux context of daemon +# process run in SCL environment via systemd unit file. +# Without this script the process looses SELinux type because /usr/bin/scl +# has context bin_t and unit_t -> bin_t results in unconfined process running. +# If this helper script has the same SELinux context as the original binary, +# the process will have proper SELinux context. +# +# This script was designed to be usable the same as the scl command is used, +# including the collections given as more arguments, separated from binary +# itself by -- separator. +# So it is possible to use the list of collections to be enabled via +# environment file. +# Thus, instead of: +# /usr/bin/scl enable scl1 scl2 -- /path/to/bin arg1 arg2 +# you can use: +# /usr/bin/this-script enable scl1 scl2 -- /path/to/bin arg1 arg2 +# +# Notice: do not forget to set proper SELinux context for this file. +# The context should be the same as the binary running has. + +action="$1" +shift + +while [ -n "$1" ] && [ "$1" != "--" ] ; do + source scl_source "$action" "$1" + shift +done + +if [ $# -le 2 ] ; then + echo "Usage `basename $0` enable sclname [sclname ...] -- /path/to/bin [arg ...]" >&2 + exit 1 +fi + +shift + +exec "$@" + + + diff --git a/SOURCES/mongod.conf b/SOURCES/mongod.conf new file mode 100644 index 0000000..c004a62 --- /dev/null +++ b/SOURCES/mongod.conf @@ -0,0 +1,237 @@ +## +### Basic Defaults +## + +# Comma separated list of ip addresses to listen on (all local ips by default) +bind_ip = 127.0.0.1 + +# Specify port number (27017 by default) +#port = 27017 + +# 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 + +# Log file to send write to instead of stdout - has to be a file, not directory +logpath = /var/log/mongodb/mongod.log + +# Alternative directory for UNIX domain sockets (defaults to /tmp) +unixSocketPrefix = /var/run/mongodb + +# Directory for datafiles (defaults to /data/db/) +dbpath = /var/lib/mongodb + +# Enable/Disable journaling (journaling is on by default for 64 bit) +#journal = true +#nojournal = true + + + +## +### General options +## + +# Be more verbose (include multiple times for more verbosity e.g. -vvvvv) (v by default) +#verbose = v + +# Max number of simultaneous connections (1000000 by default) +#maxConns = 1000000 + +# Log to system's syslog facility instead of file or stdout (false by default) +#syslog = true + +# Syslog facility used for monogdb syslog message (user by defautl) +#syslogFacility = user + +# Append to logpath instead of over-writing (false by default) +#logappend = true + +# Desired format for timestamps in log messages (One of ctime, iso8601-utc or iso8601-local) (iso8601-local by default) +#timeStampFormat = arg + +# Private key for cluster authentication +#keyFile = arg + +# Set a configurable parameter +#setParameter = arg + +# Enable http interface (false by default) +#httpinterface = true + +# Authentication mode used for cluster authentication. Alternatives are (keyFile|sendKeyFile|sendX509|x509) (keyFile by default) +#clusterAuthMode = arg + +# Disable listening on unix sockets (false by default) +#nounixsocket = true + +# Run with/without security (without by default) +#auth = true +#noauth = true + +# Enable IPv6 support (disabled by default) +#ipv6 = true + +# Allow JSONP access via http (has security implications) (false by default) +#jsonp = true + +# Turn on simple rest api (false by default) +#rest = true + +# Value of slow for profile and console log (100 by default) +#slowms = 100 + +# 0=off 1=slow, 2=all (0 by default) +#profile = 0 + +# Periodically show cpu and iowait utilization (false by default) +#cpu = true + +# Print some diagnostic system information (false by default) +#sysinfo = true + +# Each database will be stored in a separate directory (false by default) +#directoryperdb = true + +# Don't retry any index builds that were interrupted by shutdown (false by default) +#noIndexBuildRetry = true + +# Disable data file preallocation - will often hurt performance (false by default) +#noprealloc = true + +# .ns file size (in MB) for new databases (16 MB by default) +#nssize = 16 + +# Limits each database to a certain number of files (8 default) +#quota + +# Number of files allowed per db, implies --quota (8 by default) +#quotaFiles = 8 + +# Use a smaller default file size (false by default) +#smallfiles = true + +# Seconds between disk syncs (0=never, but not recommended) (60 by default) +#syncdelay = 60 + +# Upgrade db if needed (false by default) +#upgrade = true + +# Run repair on all dbs (false by default) +#repair = true + +# Root directory for repair files (defaults to dbpath) +#repairpath = arg + +# Disable scripting engine (false by default) +#noscripting = true + +# Do not allow table scans (false by default) +#notablescan = true + +# Journal diagnostic options (0 by default) +#journalOptions = 0 + +# How often to group/batch commit (ms) (100 or 30 by default) +#journalCommitInterval = 100 + + + +## +### Replication options +## + +# Size to use (in MB) for replication op log (default 5% of disk space - i.e. large is good) +#oplogSize = arg + + + +## +### Master/slave options (old; use replica sets instead) +## + +# Master mode +#master = true + +# Slave mode +#slave = true + +# When slave: specify master as +#source = arg + +# When slave: specify a single database to replicate +#only = arg + +# Specify delay (in seconds) to be used when applying master ops to slave +#slavedelay = arg + +# Automatically resync if slave data is stale +#autoresync = true + + + +## +### Replica set options +## + +# Arg is [/] +#replSet = arg + +# Specify index prefetching behavior (if secondary) [none|_id_only|all] (all by default) +#replIndexPrefetch = all + + + +## +### Sharding options +## + +# Declare this is a config db of a cluster (default port 27019; default dir /data/configdb) (false by default) +#configsvr = true + +# Declare this is a shard db of a cluster (default port 27018) (false by default) +#shardsvr = true + + + +## +### SSL options +## + +# Use ssl on configured ports +#sslOnNormalPorts = true + +# Set the SSL operation mode (disabled|allowSSL|preferSSL|requireSSL) +# sslMode = arg + +# PEM file for ssl +#sslPEMKeyFile = arg + +# PEM file password +#sslPEMKeyPassword = arg + +# Key file for internal SSL authentication +#sslClusterFile = arg + +# Internal authentication key file password +#sslClusterPassword = arg + +# Certificate Authority file for SSL +#sslCAFile = arg + +# Certificate Revocation List file for SSL +#sslCRLFile = arg + +# Allow client to connect without presenting a certificate +#sslWeakCertificateValidation = true + +# Allow server certificates to provide non-matching hostnames +#sslAllowInvalidHostnames = true + +# Allow connections to servers with invalid certificates +#sslAllowInvalidCertificates = true + +# Activate FIPS 140-2 mode at startup +#sslFIPSMode = true + diff --git a/SOURCES/mongod.init b/SOURCES/mongod.init new file mode 100644 index 0000000..2de7fde --- /dev/null +++ b/SOURCES/mongod.init @@ -0,0 +1,172 @@ +#!/bin/sh +# +# mongod init file for starting up the MongoDB server +# +# chkconfig: - 90 10 +# description: Starts and stops the MongDB daemon that handles all \ +# database requests. + +# Source function library. +. /etc/rc.d/init.d/functions + +prog="mongod" +exec="/usr/bin/$prog" +logfile="/var/log/mongodb/$prog.log" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +pidfile=${PIDFILE-/var/run/mongodb/$prog.pid} +options="$MONGODB_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 +} + +. __SCL_SCRIPTS__/service-environment +. scl_source enable __list of scls__ + +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 $? diff --git a/SOURCES/mongod.service b/SOURCES/mongod.service new file mode 100644 index 0000000..9e92f40 --- /dev/null +++ b/SOURCES/mongod.service @@ -0,0 +1,17 @@ +[Unit] +Description=High-performance, schema-free document-oriented database +After=syslog.target network.target + +[Service] +Type=forking +User=mongodb +PIDFile=/var/run/mongodb/mongod.pid +EnvironmentFile=__SCL_SCRIPTS__/service-environment +EnvironmentFile=/etc/sysconfig/mongod +ExecStart=@libexecdir@/mongodb-scl-helper enable __list of scls__ -- /usr/bin/mongod $OPTIONS run +PrivateTmp=true +LimitNOFILE=64000 +TimeoutStartSec=180 + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/mongod.sysconf b/SOURCES/mongod.sysconf new file mode 100644 index 0000000..d4d5adf --- /dev/null +++ b/SOURCES/mongod.sysconf @@ -0,0 +1 @@ +OPTIONS="--quiet -f /etc/mongod.conf" diff --git a/SOURCES/mongodb-tmpfile b/SOURCES/mongodb-tmpfile new file mode 100644 index 0000000..634b44e --- /dev/null +++ b/SOURCES/mongodb-tmpfile @@ -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 - diff --git a/SOURCES/mongodb.logrotate b/SOURCES/mongodb.logrotate new file mode 100644 index 0000000..8df6558 --- /dev/null +++ b/SOURCES/mongodb.logrotate @@ -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 +} diff --git a/SOURCES/mongos.conf b/SOURCES/mongos.conf new file mode 100644 index 0000000..0953e01 --- /dev/null +++ b/SOURCES/mongos.conf @@ -0,0 +1,133 @@ +## +### Basic Defaults +## + +# Comma separated list of ip addresses to listen on (all local ips by default) +bind_ip = 127.0.0.1 + +# Specify port number (27017 by default) +#port = 27017 + +# Fork server process (false by default) +fork = true + +# Full path to pidfile (if not set, no pidfile is created) +pidfilepath = /var/run/mongodb/mongos.pid + +# Log file to send write to instead of stdout - has to be a file, not directory +logpath = /var/log/mongodb/mongos.log + +# Alternative directory for UNIX domain sockets (defaults to /tmp) +unixSocketPrefix = /var/run/mongodb + +# 1 or 3 comma separated config servers +configdb = 127.0.0.1:27019 + + + +## +### General options +## + +# Be more verbose (include multiple times for more verbosity e.g. -vvvvv) (v by default) +#verbose = v + +# Max number of simultaneous connections (1000000 by default) +#maxConns = 1000000 + +# Log to system's syslog facility instead of file or stdout (false by default) +#syslog = true + +# Syslog facility used for monogdb syslog message (user by defautl) +#syslogFacility = arg + +# Append to logpath instead of over-writing (false by default) +#logappend = true + +# Desired format for timestamps in log messages (One of ctime, iso8601-utc or iso8601-local) (iso8601-local by default) +# timeStampFormat = arg + +# Private key for cluster authentication +#keyFile = arg + +# Set a configurable parameter +#setParameter = arg + +# Enable http interface (false by default) +#httpinterface = true + +# Authentication mode used for cluster authentication. Alternatives are (keyFile|sendKeyFile|sendX509|x509) (keyFile by default) +#clusterAuthMode = arg + +# Disable listening on unix sockets (false by default) +#nounixsocket = true + + + +## +### Sharding options +## + +# Ping time (in ms) for a node to be considered local (default 15ms) +#localThreshold = 15 + +# Just run unit tests (false by default) +#test = true + +# upgrade meta data version (false by default) +#upgrade = true + +# Maximum amount of data per chunk (64 by default) +#chunkSize = 64 + +# Enable IPv6 support (disabled by default) +#ipv6 = true + +# Allow JSONP access via http (has security implications) (false by default) +#jsonp = true + +# Disable scripting engine (false by default) +#noscripting = true + + + +## +### SSL options +## + +# Use ssl on configured ports +#sslOnNormalPorts = true + +# Set the SSL operation mode (disabled|allowSSL|preferSSL|requireSSL) +# sslMode = arg + +# PEM file for ssl +#sslPEMKeyFile = arg + +#PEM file password +#sslPEMKeyPassword = arg + +# Key file for internal SSL authentication +#sslClusterFile = arg + +# Internal authentication key file password +#sslClusterPassword = arg + +# Certificate Authority file for SSL +#sslCAFile = arg + +# Certificate Revocation List file for SSL +#sslCRLFile = arg + +# Allow client to connect without presenting a certificate +#sslWeakCertificateValidation = true + +# Allow server certificates to provide non-matching hostnames +#sslAllowInvalidHostnames = true + +# Allow connections to servers with invalid certificates +#sslAllowInvalidCertificates = true + +# Activate FIPS 140-2 mode at startup +#sslFIPSMode = true + diff --git a/SOURCES/mongos.init b/SOURCES/mongos.init new file mode 100644 index 0000000..ec10e60 --- /dev/null +++ b/SOURCES/mongos.init @@ -0,0 +1,177 @@ +#!/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="/var/log/mongodb/$prog.log" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +pidfile=${PIDFILE-/var/run/mongodb/$prog.pid} +options="$MONGODB_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 + printf '%s' $"Starting $prog: " + # why the hell is this not checked in /etc/rc.d/init.d/functions ? + [ "$(id -u)" -eq 0 ] || exit 4 + # FIXME check mongod source - if parent waits after forking for childs + # message about proper initialization + 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 + printf '%s' $"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 +} + +. __SCL_SCRIPTS__/service-environment +. scl_source enable __list of scls__ + +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 $? diff --git a/SOURCES/mongos.service b/SOURCES/mongos.service new file mode 100644 index 0000000..45b00ad --- /dev/null +++ b/SOURCES/mongos.service @@ -0,0 +1,17 @@ +[Unit] +Description=High-performance, schema-free document-oriented database +After=syslog.target network.target + +[Service] +Type=forking +User=mongodb +PIDFile=/var/run/mongodb/mongos.pid +EnvironmentFile=__SCL_SCRIPTS__/service-environment +EnvironmentFile=/etc/sysconfig/mongos +ExecStart=@libexecdir@/mongodb-scl-helper enable __list of scls__ -- /usr/bin/mongos $OPTIONS +PrivateTmp=true +LimitNOFILE=64000 +TimeoutStartSec=180 + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/mongos.sysconf b/SOURCES/mongos.sysconf new file mode 100644 index 0000000..11a1ead --- /dev/null +++ b/SOURCES/mongos.sysconf @@ -0,0 +1 @@ +OPTIONS="-f /etc/mongos.conf" diff --git a/SPECS/mongodb.spec b/SPECS/mongodb.spec new file mode 100644 index 0000000..0a603fd --- /dev/null +++ b/SPECS/mongodb.spec @@ -0,0 +1,900 @@ +#%global _hardened_build 1 +# for better compatibility with SCL spec file +%{?scl:%scl_package mongodb} +%{!?scl:%global pkg_name %{name}} +# mongod daemon +%global daemon mongod +# mongos daemon +%global daemonshard mongos + +# Regression tests may take a long time (many cores recommended), skip them by +# passing --nocheck to rpmbuild or by setting runselftest to 0 if defining +# --nocheck is not possible (e.g. in koji build) +%{!?runselftest:%global runselftest 1} + +# Python SCL (to run scons with python2.7; test subpackage) +%global scl_python python27 +%global scl_python_prefix %{scl_python}- + +# Convert SCL name into uppercase including - to _ conversion +%if 0%{?scl:1} +%global scl_upper %{lua:print(string.upper(string.gsub(rpm.expand("%{scl}"), "-", "_")))} +%global _initddir %{_root_initddir} +%if %runselftest +%global buildscls %{scl} %{scl_python} +%else +%global buildscls %{scl} +%endif +%endif + +Name: %{?scl_prefix}mongodb +Version: 2.6.9 +Release: 1%{?dist} +Summary: High-performance, schema-free document-oriented database +Group: Applications/Databases +License: AGPLv3 and zlib and ASL 2.0 +# util/md5 is under the zlib license +# manpages and bson are under ASL 2.0 +# everything else is AGPLv3 +URL: http://www.mongodb.org + +Source0: http://fastdl.mongodb.org/src/%{pkg_name}-src-r%{version}.tar.gz +Source1: %{pkg_name}-tmpfile +Source2: %{pkg_name}.logrotate +Source3: %{daemon}.conf +Source4: %{daemon}.init +Source5: %{daemon}.service +Source6: %{daemon}.sysconf +Source7: %{daemonshard}.conf +Source8: %{daemonshard}.init +Source9: %{daemonshard}.service +Source10: %{daemonshard}.sysconf +Source11: README +Source12: daemon-scl-helper.sh + +# https://bugzilla.redhat.com/show_bug.cgi?id=958014 +# need to work on getting this properly patched upstream +# -> same work is made in prep section +#Patch7: mongodb-2.4.5-pass-flags.patch + +# compile with GCC 4.8 +# -> upstream solved it, by default -Wno-unused-local-typedefs is used +#Patch8: mongodb-2.4.5-gcc48.patch + +Requires: %{?scl_prefix_v8}v8 >= 3.14.5.10 +%ifarch %{arm} +BuildRequires: gcc >= 4.7 +%endif +BuildRequires: pcre-devel +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 +BuildRequires: boost-devel >= 1.44 +%else +BuildRequires: %{?scl_prefix}boost-devel >= 1.44 +%endif +# Provides tcmalloc +BuildRequires: %{?scl_prefix}gperftools-devel +BuildRequires: snappy-devel +BuildRequires: %{?scl_prefix_v8}v8-devel +BuildRequires: %{?scl_prefix}yaml-cpp-devel +BuildRequires: %{?scl_prefix}scons +BuildRequires: openssl-devel +BuildRequires: libpcap-devel +BuildRequires: %{?scl_prefix}libstemmer-devel +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 +BuildRequires: systemd +%endif +%if %runselftest +%ifarch %{ix86} x86_64 +BuildRequires: %{?scl_python_prefix}python-pymongo +%endif +%endif + +%{?scl:Requires:%scl_runtime} + +# Mongodb must run on a little-endian CPU (see bug #630898) +ExcludeArch: ppc ppc64 %{sparc} s390 s390x + +%description +Mongo (from "humongous") is a high-performance, open source, schema-free +document-oriented database. MongoDB is written in C++ and offers the following +features: + * Collection oriented storage: easy storage of object/JSON-style data + * Dynamic queries + * Full index support, including on inner objects and embedded arrays + * Query profiling + * Replication and fail-over support + * Efficient storage of binary data including large objects (e.g. photos + and videos) + * Auto-sharding for cloud-level scalability (currently in early alpha) + * Commercial Support Available + +A key goal of MongoDB is to bridge the gap between key/value stores (which are +fast and highly scalable) and traditional RDBMS systems (which are deep in +functionality). + + +%package server +Summary: MongoDB server, sharding server and support scripts +Group: Applications/Databases +Requires(pre): shadow-utils +Requires: %{?scl_prefix_v8}v8 +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +%else +Requires(post): chkconfig +Requires(preun): chkconfig +Requires(postun): initscripts +%endif + +%{?scl:Requires:%scl_runtime} + +%description server +This package provides the mongo server software, mongo sharding server +software, default configuration files, and init scripts. + + +%ifarch %{ix86} x86_64 +%package test +Summary: MongoDB test suite +Group: Applications/Databases +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-server%{?_isa} = %{version}-%{release} +Requires: %{?scl_python_prefix}python-pymongo + +%{?scl:Requires:%scl_runtime} + +%description test +This package contains the regression test suite distributed with +the MongoDB sources. +%endif + +%prep +%setup -q -n mongodb-src-r%{version} + +# Fixed in upstream - version 2.7.3 +sed -i -r "s|(conf.FindSysLibDep\(\"yaml\", \[\"yaml)(\"\]\))|\1-cpp\2|" SConstruct + +# Use optflags and __global_ldflags, disable -fPIC +#(opt=$(echo "%{?optflags}" | sed -r -e 's| |","|g' ) +#sed -i -r -e "s|(CCFLAGS=\[)\"-fPIC\"|\1\"$opt\"|" SConstruct) +#(opt=$(echo "%{?__global_ldflags}" | sed -r -e 's| |","|g' ) +#sed -i -r -e "s|(LINKFLAGS=\[)\"-fPIC\"|\1\"$opt\"|" SConstruct) + +# CRLF -> LF +sed -i 's/\r//' README + +# disable propagation of $TERM env var into the Scons build system +sed -i -r "s|(for key in \('HOME'), 'TERM'(\):)|\1\2|" SConstruct + +# disable run test and perftest programs +sed -i -r "s|^([[:space:]]*)(if suite == 'test':)|\1\2\n\1 continue|" buildscripts/smoke.py +sed -i -r "s|^([[:space:]]*)(elif suite == 'perf':)|\1\2\n\1 continue|" buildscripts/smoke.py + +# by default use system mongod, mongos and mongo binaries +sed -i -r "s|(default=os.path.join\()mongo_repo(, 'mongod'\))|\1'%{_bindir}'\2|" buildscripts/smoke.py +sed -i -r "s|(default=os.path.join\()mongo_repo(, 'mongo'\))|\1'%{_bindir}'\2|" buildscripts/smoke.py +sed -i -r "s|(os.path.join\()mongo_repo(, program)|\1'%{_bindir}'\2|" buildscripts/smoke.py + +# set default data prefix +sed -i -r "s|(smoke_db_prefix = ')'|\1var'|" buildscripts/smoke.py +sed -i -r "s|^([[:space:]]*)(set_globals\(options, tests\))$|\1\2\n\1global failfile\n\1\ +failfile = os.path.join\(os.path.join\(mongo_repo, smoke_db_prefix\), 'failfile.smoke'\)|" buildscripts/smoke.py + +# copy them (we will change their content) +cp %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} \ + %{SOURCE6} %{SOURCE7} %{SOURCE8} %{SOURCE9} %{SOURCE10} %{SOURCE11} ./ + +for f in %{SOURCE4} %{SOURCE8}; do + sed -i -r -e "s|/usr/bin|%{_bindir}|g" \ + -e "s|/var(/run/mongodb)|%{_localstatedir}\1|g" \ + -e "s|/var(/log/mongodb)|%{_localstatedir}\1|g" \ + -e "s|/etc(/mongo[ds]\.conf)|%{_sysconfdir}\1|g" \ + -e "s|/etc(/sysconfig)|%{_sysconfdir}\1|g" \ + -e "s|/var(/lock)|%{_localstatedir}\1|g" \ + -e "s|__SCL_SCRIPTS__|%{?_scl_scripts}|g" \ + -e "s|__list of scls__|\$%{scl_upper}_SCLS_ENABLED|g" \ + "$(basename "$f")" +done + +sed -i -r -e "s|/var(/log/mongodb)|%{_localstatedir}\1|g" \ + -e "s|/var(/run/mongodb)|%{_localstatedir}\1|g" \ + "$(basename %{SOURCE2})" + +for f in %{SOURCE3} %{SOURCE7}; do + sed -i -r -e "s|/var/lib(/mongodb)|%{_sharedstatedir}\1|g" \ + -e "s|/var(/run/mongodb)|%{_localstatedir}\1|g" \ + -e "s|/var(/log/mongodb)|%{_localstatedir}\1|g" \ + "$(basename "$f")" +done + +for f in %{SOURCE6} %{SOURCE10}; do + sed -i -r -e "s|/etc(/mongo[ds]\.conf)|%{_sysconfdir}\1|g" \ + "$(basename "$f")" +done + +sed -i -r -e "s|(/run/mongodb)|%{_localstatedir}\1|g" \ + "$(basename %{SOURCE1})" + +for f in %{SOURCE5} %{SOURCE9}; do + #FIXME check if the _SCLS_ENABLED var isn't empty! + sed -i -r -e "s|/var(/run/mongodb)|%{_localstatedir}\1|g" \ + -e "s|/etc(/sysconfig)|%{_sysconfdir}\1|g" \ + -e "s|/usr/bin(/mongo[ds])|%{_bindir}\1|g" \ + -e "s|__SCL_SCRIPTS__|%{?_scl_scripts}|g" \ + -e "s|__list of scls__|\$%{scl_upper}_SCLS_ENABLED|g" \ + -e "s|@libexecdir@|%{_libexecdir}|" \ + "$(basename "$f")" +done + +sed -i -r -e "s|(/usr/share)|%{_datarootdir}|g" \ + "$(basename %{SOURCE11})" + + +%build +# see add_option() calls in SConstruct for options +%{?scl:scl enable %{buildscls} - << "EOF"} +scons all \ + %{?_smp_mflags} \ + --use-system-all \ + --usev8 \ + --nostrip \ + --ssl \ + --propagate-shell-environment + +%{?scl:EOF} + + +%install +# NOTE: If install flags are not EXACTLY the same as in %%build, +# mongodb will be built twice! +%{?scl:scl enable %{buildscls} - << "EOF"} +scons install \ + %{?_smp_mflags} \ + --use-system-all \ + --usev8 \ + --nostrip \ + --ssl \ + --propagate-shell-environment \ + --prefix=%{buildroot}%{_prefix} + +%{?scl:EOF} + +mkdir -p %{buildroot}%{_sharedstatedir}/%{pkg_name} +mkdir -p %{buildroot}%{_localstatedir}/log/%{pkg_name} +mkdir -p %{buildroot}%{_localstatedir}/run/%{pkg_name} +mkdir -p %{buildroot}%{_sysconfdir}/sysconfig + +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 +install -p -D -m 644 "$(basename %{SOURCE1})" %{buildroot}%{_tmpfilesdir}/%{?scl_prefix}%{pkg_name}.conf +install -p -D -m 644 "$(basename %{SOURCE5})" %{buildroot}%{_unitdir}/%{?scl_prefix}%{daemon}.service +install -p -D -m 644 "$(basename %{SOURCE9})" %{buildroot}%{_unitdir}/%{?scl_prefix}%{daemonshard}.service + +mkdir -p %{buildroot}%{_libexecdir} +install -p -m 755 %{SOURCE12} %{buildroot}%{_libexecdir}/mongodb-scl-helper +%else +install -p -D -m 755 "$(basename %{SOURCE4})" %{buildroot}%{_initddir}/%{?scl_prefix}%{daemon} +install -p -D -m 755 "$(basename %{SOURCE8})" %{buildroot}%{_initddir}/%{?scl_prefix}%{daemonshard} +%endif +install -p -D -m 644 "$(basename %{SOURCE2})" %{buildroot}%{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/logrotate.d/%{?scl_prefix}%{pkg_name} +install -p -D -m 644 "$(basename %{SOURCE3})" %{buildroot}%{_sysconfdir}/%{daemon}.conf +install -p -D -m 644 "$(basename %{SOURCE7})" %{buildroot}%{_sysconfdir}/%{daemonshard}.conf +install -p -D -m 644 "$(basename %{SOURCE6})" %{buildroot}%{_sysconfdir}/sysconfig/%{daemon} +install -p -D -m 644 "$(basename %{SOURCE10})" %{buildroot}%{_sysconfdir}/sysconfig/%{daemonshard} + +install -d -m 755 %{buildroot}%{_mandir}/man1 +install -p -m 644 debian/*.1 %{buildroot}%{_mandir}/man1/ + +%ifarch %{ix86} x86_64 +mkdir -p %{buildroot}%{_datadir}/%{pkg_name}-test +mkdir -p %{buildroot}%{_datadir}/%{pkg_name}-test/var +install -p -D -m 555 buildscripts/smoke.py %{buildroot}%{_datadir}/%{pkg_name}-test/ +install -p -D -m 444 buildscripts/cleanbb.py %{buildroot}%{_datadir}/%{pkg_name}-test/ +install -p -D -m 444 buildscripts/utils.py %{buildroot}%{_datadir}/%{pkg_name}-test/ + +cp -R jstests %{buildroot}%{_datadir}/%{pkg_name}-test/ + +install -p -D -m 444 "$(basename %{SOURCE11})" %{buildroot}%{_datadir}/%{pkg_name}-test/ + + +%check +# More info about testing: +# http://www.mongodb.org/about/contributors/tutorial/test-the-mongodb-server/ +# Run new-style unit tests (*_test files) +%if %runselftest +%{?scl:scl enable %{buildscls} - << "EOF"} +cd %{_builddir}/%{pkg_name}-src-r%{version} +while read unittest +do + ./$unittest + if [ $? -ne 0 ] + then + exit 1 + fi +done < ./build/unittests.txt + +# Run JavaScript integration tests +mkdir ./var +buildscripts/smoke.py --smoke-db-prefix ./var --continue-on-failure --mongo=%{buildroot}%{_bindir}/mongo --mongod=%{buildroot}%{_bindir}/%{daemon} --nopreallocj jsCore +rm -Rf ./var +%{?scl:EOF} +%endif +%endif + +%post -p /sbin/ldconfig + + +%postun -p /sbin/ldconfig + + +%pre server +getent group %{pkg_name} >/dev/null || groupadd -r %{pkg_name} +# TODO _sharedstatedir +getent passwd %{pkg_name} >/dev/null || useradd -r -g %{pkg_name} -u 184 \ + -d /var/lib/%{pkg_name} -s /sbin/nologin \ + -c "MongoDB Database Server" %{pkg_name} +exit 0 + + +%post server +%if 0%{?scl:1} +# handle SELinux context for files outside of normal location +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 +semanage fcontext -a -e %{_unitdir}/%{daemon}.service %{_unitdir}/%{?scl_prefix}%{daemon}.service >/dev/null 2>&1 || : +semanage fcontext -a -e %{_unitdir}/%{daemonshard}.service %{_unitdir}/%{?scl_prefix}%{daemonshard}.service >/dev/null 2>&1 || : +selinuxenabled && load_policy || : +restorecon %{_unitdir}/%{?scl_prefix}* >/dev/null 2>&1 || : +%else +semanage fcontext -a -e %{_initddir}/%{daemon} %{_initddir}/%{?scl_prefix}%{daemon} >/dev/null 2>&1 || : +semanage fcontext -a -e %{_initddir}/%{daemon} %{_initddir}/%{?scl_prefix}%{daemonshard} >/dev/null 2>&1 || : +selinuxenabled && load_policy || : +restorecon %{_initddir}/%{?scl_prefix}* >/dev/null 2>&1 || : +%endif +restorecon -r %{?_scl_root}/ >/dev/null 2>&1 || : +restorecon -R %{_sharedstatedir}/%{pkg_name} +restorecon -R %{_localstatedir}/log/%{pkg_name} +restorecon -R %{_localstatedir}/run/%{pkg_name} +%endif + +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 + # https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd + # daemon-reload + %systemd_postun +%else + /sbin/chkconfig --add %{?scl_prefix}%{daemon} + /sbin/chkconfig --add %{?scl_prefix}%{daemonshard} +%endif + + +%preun server +if [ "$1" = 0 ]; then +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 + # --no-reload disable; stop + %systemd_preun %{?scl_prefix}%{daemon}.service + %systemd_preun %{?scl_prefix}%{daemonshard}.service +%else + /sbin/service %{?scl_prefix}%{daemon} stop >/dev/null 2>&1 + /sbin/service %{?scl_prefix}%{daemonshard} stop >/dev/null 2>&1 + /sbin/chkconfig --del %{?scl_prefix}%{daemon} + /sbin/chkconfig --del %{?scl_prefix}%{daemonshard} +%endif +fi + + +%postun server +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 + # daemon-reload + %systemd_postun +%endif +if [ "$1" -ge 1 ] ; then +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 + # try-restart + %systemd_postun_with_restart %{?scl_prefix}%{daemon}.service + %systemd_postun_with_restart %{?scl_prefix}%{daemonshard}.service +%else + /sbin/service %{?scl_prefix}%{daemon} condrestart >/dev/null 2>&1 || : + /sbin/service %{?scl_prefix}%{daemonshard} condrestart >/dev/null 2>&1 || : +%endif +fi + + +%files +%{!?_licensedir:%global license %%doc} +%license GNU-AGPL-3.0.txt APACHE-2.0.txt +%doc README +%{_bindir}/bsondump +%{_bindir}/mongo +%{_bindir}/mongodump +%{_bindir}/mongoexport +%{_bindir}/mongofiles +%{_bindir}/mongoimport +%{_bindir}/mongooplog +%{_bindir}/mongoperf +%{_bindir}/mongorestore +%{_bindir}/mongosniff +%{_bindir}/mongostat +%{_bindir}/mongotop + +%{_mandir}/man1/bsondump.1* +%{_mandir}/man1/mongo.1* +%{_mandir}/man1/mongodump.1* +%{_mandir}/man1/mongoexport.1* +%{_mandir}/man1/mongofiles.1* +%{_mandir}/man1/mongoimport.1* +%{_mandir}/man1/mongooplog.1* +%{_mandir}/man1/mongoperf.1* +%{_mandir}/man1/mongorestore.1* +%{_mandir}/man1/mongosniff.1* +%{_mandir}/man1/mongostat.1* +%{_mandir}/man1/mongotop.1* + + +%files server +%{_bindir}/mongod +%{_bindir}/mongos +%{_mandir}/man1/mongod.1* +%{_mandir}/man1/mongos.1* + +%dir %attr(0750, %{pkg_name}, root) %{_sharedstatedir}/%{pkg_name} +%dir %attr(0750, %{pkg_name}, root) %{_localstatedir}/log/%{pkg_name} +%dir %attr(0750, %{pkg_name}, root) %{_localstatedir}/run/%{pkg_name} +%config(noreplace) %{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/logrotate.d/%{?scl_prefix}%{pkg_name} +%config(noreplace) %{_sysconfdir}/%{daemon}.conf +%config(noreplace) %{_sysconfdir}/%{daemonshard}.conf +%config(noreplace) %{_sysconfdir}/sysconfig/%{daemon} +%config(noreplace) %{_sysconfdir}/sysconfig/%{daemonshard} +%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 +%{_tmpfilesdir}/%{?scl_prefix}%{pkg_name}.conf +%{_unitdir}/*.service +%{_libexecdir}/mongodb-scl-helper +%else +%{_initddir}/%{?scl_prefix}%{daemon} +%{_initddir}/%{?scl_prefix}%{daemonshard} +%endif + + +%ifarch %{ix86} x86_64 +%files test +%doc %{_datadir}/%{pkg_name}-test/README +%dir %attr(0755, %{pkg_name}, root) %{_datadir}/%{pkg_name}-test +%dir %attr(0755, %{pkg_name}, root) %{_datadir}/%{pkg_name}-test/var +%dir %attr(0755, %{pkg_name}, root) %{_datadir}/%{pkg_name}-test/jstests +%{_datadir}/%{pkg_name}-test/smoke.* +%{_datadir}/%{pkg_name}-test/cleanbb.* +%{_datadir}/%{pkg_name}-test/utils.* +%{_datadir}/%{pkg_name}-test/jstests/* +%endif + +%changelog +* Wed May 13 2015 Marek Skalicky 2.6.9-1 +- Correct SELinux type for slc-helper script + Resolves: #1202013 +- Fix mongodb user HOME (Resolves: #1206157) +- Upgrade to latest minor release 2.6.9 (Resolves: #1207118) + +* Thu Mar 19 2015 Marek Skalicky 2.6.8-4 +- Use mongod_initrc_exex_t SELinux type for slc-helper script + +* Thu Mar 19 2015 Marek Skalicky 2.6.8-3 +- Fixed SELinux context +- Renamed scl-helper script + +* Thu Mar 19 2015 Marek Skalicky 2.6.8-2 +- Resolves: #1202013 (Daemon run with proper SELinux context) + +* Mon Mar 2 2015 Marek Skalicky 2.6.8-1 +- Upgrade to version 2.6.8 +- Resolves: #1194412 (MongoDB Security & Defaults) + +* Fri Feb 27 2015 Honza Horak - 2.6.7-9 +- Remove NFS register feature for questionable usage for DBs +- Allow to skip tests during build +- Simplify few SCL macros + +* Thu Feb 26 2015 Marek Skalicky 2.6.7-8 +- Resolves: #1075736 (initscript doesn't respect LSB) + +* Tue Jan 27 2015 Honza Horak - 2.6.7-7 +- Use 0755 on var directory for tests, mark README as doc + +* Tue Jan 27 2015 Honza Horak - 2.6.7-6 +- Run selinux magic in post, not preun +- Create lock file directory + +* Tue Jan 27 2015 Honza Horak - 2.6.7-5 +- Add removed $ by mistake +- Create dir for config files and data in scl register + +* Tue Jan 27 2015 Honza Horak - 2.6.7-4 +- Implement scl register support + +* Mon Jan 26 2015 Honza Horak - 2.6.7-3 +- Convert - to _ when translating to uppercase scl name +- Do not use & in the init script if daemon call is used + +* Fri Jan 23 2015 Marek Skalicky 2.6.7-2 +- Changed name of conf and log files +- Added service-environment into mongodb package +- Changed location of log files + +* Mon Jan 19 2015 Marek Skalicky 2.6.7-1 +- Merged changes from Fedora Rawhide + +* Tue Nov 18 2014 Marek Skalicky 2.6.5-5 +- Changed and cleaned up requirements + +* Fri Nov 14 2014 Marek Skalicky 2.6.5-4 +- Changed v8 dependency to SCL v8314 +- Added MONGODB_OPTIONS options variable into *.init files + +* Fri Nov 7 2014 Marek Skalicky 2.6.5-3 +- Ported to SCL + +* Thu Oct 9 2014 Marek Skalicky 2.6.5-2 +- Corrected/Finished renaming services and pid files +- Changed default mongos ports + +* Thu Oct 9 2014 Marek Skalicky 2.6.5-1 +- Updated to version 2.6.5 +- Renamed sysmted service files (to reflect mainstream names) + +* Sun Aug 17 2014 Fedora Release Engineering - 2.6.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Jul 9 2014 Jan Pacner - 2.6.3-1 +- Resolves: #1103163 new major release with major differences +- add sharding server daemon init/unit files (and rename existing) +- use ld library path from env +- spec cleanup/clarification +- Resolves: #1047858 (RFE: Turn on PrivateTmp and relocate unix socket file) +- Related: #963824 (bloated binaries; splitting according to latest upstream) + +* Sat Jun 7 2014 Peter Robinson 2.4.9-7 +- aarch64 now has gperftools + +* Sat Jun 07 2014 Fedora Release Engineering - 2.4.9-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri May 23 2014 Petr Machata - 2.4.9-5 +- Rebuild for boost 1.55.0 + +* Fri May 23 2014 David Tardon - 2.4.9-4 +- rebuild for boost 1.55.0 + + +* Fri Feb 14 2014 T.C. Hollingsworth - 2.4.9-3 +- rebuild for icu-53 (via v8) + +* Tue Feb 04 2014 Matthias Saou 2.4.9-2 +- Merge el6 branch changes (we shouldn't start diverging now). +- Re-introduce conditionals, but to still support EL6. +- Include run directory only for EL6. +- Don't own the /usr/include directory. +- Make libmongodb requirement arch specific (#1010535). +- Fix multiple_occurrences error from duplicate --quiet options (#1022476). +- Fix broken v8 version specific requirement (#1027157). + +* Sun Jan 19 2014 Peter Robinson 2.4.9-1 +- Update to 2.4.9 +- Drop old < F-15 conditionals +- Cleanup Spec +- Run ldconfig for the lib package, not binary package +- Don't make some directories world readable (RHBZ 857926) + +* Mon Jan 06 2014 Jan Pacner - 2.4.6-3 +- Resolves: #1027157 (mongo shell sefgaults when using arbitrary v8 version) + +* Thu Nov 28 2013 Jan Pacner - 2.4.8-1 +- new release +- Resolves: #1010712 (LimitNOFILE) +- make sysconf options being respected + +* Wed Aug 21 2013 Troy Dawson - 2.4.6-1 +- Updated to 2.4.6 +- Added Requires: v8 (#971595) + +* Sun Jul 28 2013 Petr Machata - 2.4.5-6 +- Rebuild for boost 1.54.0 + +* Sat Jul 27 2013 pmachata@redhat.com - 2.4.5-5 +- Rebuild for boost 1.54.0 + +* Fri Jul 12 2013 Troy Dawson - 2.4.5-4 +- Added Provides: mongodb-devel to libmongodb-devel + +* Fri Jul 12 2013 Troy Dawson - 2.4.5-3 +- Removed hardening section. Currently doesn't work with 2.4.x + Wasn't really being applied when we thought it was. +- Cleaned up RHEL5 spec leftovers + +* Thu Jul 11 2013 David Marlin - 2.4.5-2 +- Updated arm patches to work with 2.4.x + +* Mon Jul 08 2013 Troy Dawson - 2.4.5-1 +- Update to version 2.4.5 to fix CVE-2013-4650 +- Patch3 fixed upstream - https://jira.mongodb.org/browse/SERVER-5575 +- Patch4 fixed upstream - https://jira.mongodb.org/browse/SERVER-6514 +- Put lib dir in correct place +- no longer have to remove duplicate headers + +* Sun Jul 07 2013 Johan Hedin - 2.4.4-4 +- Added patch to make mongodb compile with gcc 4.8 + +* Wed Jul 03 2013 Johan Hedin - 2.4.4-3 +- Added missing daemon name to the preun script for the server +- Fixed init script so that it does not kill the server on shutdown +- Renamed mongodb-devel to libmongdb-devel +- Dependency cleanup between the sub packages +- Moved Requires for the server to the server sub package +- Using %%{_unitdir} macro for where to put systemd unit files +- Fixed rpmlint warnings regarding %% in comments and mixed tabs/spaces +- Run systemd-tmpfiles --create mongodb.conf in post server + +* Mon Jul 01 2013 Troy Dawson - 2.4.4-2 +- Turn on hardened build (#958014) +- Apply patch to accept env flags + +* Sun Jun 30 2013 Johan Hedin - 2.4.4-1 +- Bumped version up to 2.4.4 +- Rebased the old 2.2 patches that are still needed to 2.4.4 +- Added some new patches to build 2.4.4 properly + +* Sat May 04 2013 David Marlin - 2.2.4-2 +- Updated patch to work on both ARMv5 and ARMv7 (#921226) + +* Thu May 02 2013 Troy Dawson - 2.2.4-1 +- Bumped version up to 2.2.4 +- Refreshed all patches to 2.2.4 + +* Fri Apr 26 2013 David Marlin - 2.2.3-5 +- Patch to build on ARM (#921226) + +* Wed Mar 27 2013 Troy Dawson - 2.2.3-4 +- Fix for CVE-2013-1892 + +* Sun Feb 10 2013 Denis Arnaud - 2.2.3-3 +- Rebuild for Boost-1.53.0 + +* Sat Feb 09 2013 Denis Arnaud - 2.2.3-2 +- Rebuild for Boost-1.53.0 + +* Tue Feb 05 2013 Troy Dawson - 2.2.3-1 +- Update to version 2.2.3 + +* Mon Jan 07 2013 Troy Dawson - 2.2.2-2 +- remove duplicate headers (#886064) + +* Wed Dec 05 2012 Troy Dawson - 2.2.2-1 +- Updated to version 2.2.2 + +* Tue Nov 27 2012 Troy Dawson - 2.2.1-3 +- Add ssl build option +- Using the reserved mongod UID for the useradd +- mongod man page in server package (#880351) +- added optional MONGODB_OPTIONS to init script + +* Wed Oct 31 2012 Nathaniel McCallum - 2.2.1-2 +- Make sure build and install flags are the same +- Actually remove the js patch file + +* Wed Oct 31 2012 Nathaniel McCallum - 2.2.1-1 +- Remove fork fix patch (fixed upstream) +- Remove pcre patch (fixed upstream) +- Remove mozjs patch (now using v8 upstream) +- Update to 2.2.1 + +* Tue Oct 02 2012 Troy Dawson - 2.2.0-6 +- full flag patch to get 32 bit builds to work + +* Tue Oct 02 2012 Troy Dawson - 2.2.0-5 +- shared libraries patch +- Fix up minor %%files issues + +* Fri Sep 28 2012 Troy Dawson - 2.2.0-4 +- Fix spec files problems + +* Fri Sep 28 2012 Troy Dawson - 2.2.0-3 +- Updated patch to use system libraries +- Update init script to use a pidfile + +* Thu Sep 27 2012 Troy Dawson - 2.2.0-2 +- Added patch to use system libraries + +* Wed Sep 19 2012 Troy Dawson - 2.2.0-1 +- Updated to 2.2.0 +- Updated patches that were still needed +- use v8 instead of spider_monkey due to bundled library issues + +* Tue Aug 21 2012 Nathaniel McCallum - 2.0.7-1 +- Update to 2.0.7 +- Don't patch for boost-filesystem version 3 on EL6 + +* Mon Aug 13 2012 Nathaniel McCallum - 2.0.6-3 +- Remove EL5 support +- Add patch to use boost-filesystem version 3 + +* Wed Aug 01 2012 Nathaniel McCallum - 2.0.6-2 +- Don't apply fix-xtime patch on EL5 + +* Wed Aug 01 2012 Nathaniel McCallum - 2.0.6-1 +- Update to 2.0.6 +- Update no-term patch +- Add fix-xtime patch for new boost + +* Fri Jul 20 2012 Fedora Release Engineering - 2.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Apr 17 2012 Nathaniel McCallum - 2.0.4-1 +- Update to 2.0.4 +- Remove oldpython patch (fixed upstream) +- Remove snappy patch (fixed upstream) + +* Tue Feb 28 2012 Fedora Release Engineering - 2.0.2-10 +- Rebuilt for c++ ABI breakage + +* Fri Feb 10 2012 Petr Pisar - 2.0.2-9 +- Rebuild against PCRE 8.30 + +* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-8 +- Disable HTTP interface by default (#752331) + +* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-7 +- Enable journaling by default (#656112) +- Remove BuildRequires on unittest (#755081) + +* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-6 +- Clean up mongodb-src-r2.0.2-js.patch and fix #787246 + +* Tue Jan 17 2012 Nathaniel McCallum - 2.0.2-5 +- Enable build using external snappy + +* Tue Jan 17 2012 Nathaniel McCallum - 2.0.2-4 +- Patch buildsystem for building on older pythons (RHEL5) + +* Mon Jan 16 2012 Nathaniel McCallum - 2.0.2-3 +- Merge the 2.0.2 spec file with EPEL +- Merge mongodb-sm-pkgconfig.patch into mongodb-src-r2.0.2-js.patch + +* Mon Jan 16 2012 Nathaniel McCallum - 2.0.2-2 +- Add pkg-config enablement patch + +* Sat Jan 14 2012 Nathaniel McCallum - 2.0.2-1 +- Update to 2.0.2 +- Add new files (mongotop and bsondump manpage) +- Update mongodb-src-r1.8.2-js.patch => mongodb-src-r2.0.2-js.patch +- Update mongodb-fix-fork.patch +- Fix pcre linking + +* Fri Jan 13 2012 Fedora Release Engineering - 1.8.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Sun Nov 20 2011 Chris Lalancette - 1.8.2-10 +- Rebuild for rawhide boost update + +* Thu Sep 22 2011 Chris Lalancette - 1.8.2-9 +- Copy the right source file into place for tmpfiles.d + +* Tue Sep 20 2011 Chris Lalancette - 1.8.2-8 +- Add a tmpfiles.d file to create the /var/run/mongodb subdirectory + +* Mon Sep 12 2011 Chris Lalancette - 1.8.2-7 +- Add a patch to fix the forking to play nice with systemd +- Make the /var/run/mongodb directory owned by mongodb + +* Thu Jul 28 2011 Chris Lalancette - 1.8.2-6 +- BZ 725601 - fix the javascript engine to not hang (thanks to Eduardo Habkost) + +* Mon Jul 25 2011 Chris Lalancette - 1.8.2-5 +- Fixes to post server, preun server, and postun server to use systemd + +* Thu Jul 21 2011 Chris Lalancette - 1.8.2-4 +- Update to use systemd init + +* Thu Jul 21 2011 Chris Lalancette - 1.8.2-3 +- Rebuild for boost ABI break + +* Wed Jul 13 2011 Chris Lalancette - 1.8.2-2 +- Make mongodb-devel require boost-devel (BZ 703184) + +* Fri Jul 01 2011 Chris Lalancette - 1.8.2-1 +- Update to upstream 1.8.2 +- Add patch to ignore TERM + +* Fri Jul 01 2011 Chris Lalancette - 1.8.0-3 +- Bump release to build against new boost package + +* Sat Mar 19 2011 Nathaniel McCallum - 1.8.0-2 +- Make mongod bind only to 127.0.0.1 by default + +* Sat Mar 19 2011 Nathaniel McCallum - 1.8.0-1 +- Update to 1.8.0 +- Remove upstreamed nonce patch + +* Wed Feb 16 2011 Nathaniel McCallum - 1.7.5-5 +- Add nonce patch + +* Sun Feb 13 2011 Nathaniel McCallum - 1.7.5-4 +- Manually define to use boost-fs v2 + +* Sat Feb 12 2011 Nathaniel McCallum - 1.7.5-3 +- Disable extra warnings + +* Fri Feb 11 2011 Nathaniel McCallum - 1.7.5-2 +- Disable compilation errors on warnings + +* Fri Feb 11 2011 Nathaniel McCallum - 1.7.5-1 +- Update to 1.7.5 +- Remove CPPFLAGS override +- Added libmongodb package + +* Tue Feb 08 2011 Fedora Release Engineering - 1.6.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Dec 06 2010 Nathaniel McCallum - 1.6.4-3 +- Add post/postun ldconfig... oops! + +* Mon Dec 06 2010 Nathaniel McCallum - 1.6.4-2 +- Enable --sharedclient option, remove static lib + +* Sat Dec 04 2010 Nathaniel McCallum - 1.6.4-1 +- New upstream release + +* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-4 +- Put -fPIC onto both the build and install scons calls + +* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-3 +- Define _initddir when it doesn't exist for el5 and others + +* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-2 +- Added -fPIC build option which was dropped by accident + +* Thu Oct 7 2010 Ionuț C. Arțăriși - 1.6.3-1 +- removed js Requires +- new upstream release +- added more excludearches: sparc s390, s390x and bugzilla pointer + +* Tue Sep 7 2010 Ionuț C. Arțăriși - 1.6.2-2 +- added ExcludeArch for ppc + +* Fri Sep 3 2010 Ionuț C. Arțăriși - 1.6.2-1 +- new upstream release 1.6.2 +- send mongod the USR1 signal when doing logrotate +- use config options when starting the daemon from the initfile +- removed dbpath patch: rely on config +- added pid directory to config file and created the dir in the spec +- made the init script use options from the config file +- changed logpath in mongodb.conf + +* Wed Sep 1 2010 Ionuț C. Arțăriși - 1.6.1-1 +- new upstream release 1.6.1 +- patched SConstruct to allow setting cppflags +- stopped using sed and chmod macros + +* Fri Aug 6 2010 Ionuț C. Arțăriși - 1.6.0-1 +- new upstream release: 1.6.0 +- added -server package +- added new license file to %%docs +- fix spurious permissions and EOF encodings on some files + +* Tue Jun 15 2010 Ionuț C. Arțăriși - 1.4.3-2 +- added explicit js requirement +- changed some names + +* Wed May 26 2010 Ionuț C. Arțăriși - 1.4.3-1 +- updated to 1.4.3 +- added zlib license for util/md5 +- deleted upstream deb/rpm recipes +- made scons not strip binaries +- made naming more consistent in logfile, lockfiles, init scripts etc. +- included manpages and added corresponding license +- added mongodb.conf to sources + +* Fri Oct 2 2009 Ionuț Arțăriși - 1.0.0-3 +- fixed libpath issue for 64bit systems + +* Thu Oct 1 2009 Ionuț Arțăriși - 1.0.0-2 +- added virtual -static package + +* Mon Aug 31 2009 Ionuț Arțăriși - 1.0.0-1 +- Initial release.