rel-eng/push-packages-to-fedora.sh
by Miroslav Suchý
rel-eng/push-packages-to-fedora.sh | 57 +++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
New commits:
commit 200aa6cfa63053fce4046c807f9b20131cebdab7
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Thu Feb 11 13:34:52 2010 +0100
script for pushing Spacewalk packages to Fedora rawhide
diff --git a/rel-eng/push-packages-to-fedora.sh b/rel-eng/push-packages-to-fedora.sh
new file mode 100755
index 0000000..17dd209
--- /dev/null
+++ b/rel-eng/push-packages-to-fedora.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# top dir of you fedora cvs checkout
+# e.g. ~/fedora/cvs
+TOP_DIR_FEDORA=$1
+
+# top dir of spacewalk git checkout
+TOP_DIR_GIT=$2
+
+PACKAGE_LIST="rhnlib rhn-client-tools rhnsd yum-rhn-plugin rhncfg spacewalk-koan spacewalk-certs-tools rhnpush nocpulse-common perl-Satcon perl-NOCpulse-CLAC perl-NOCpulse-Debug perl-NOCpulse-Gritch perl-NOCpulse-Object perl-NOCpulse-SetID perl-NOCpulse-Utils spacewalk-proxy-html spacewalk-proxy-docs"
+
+
+if [ -z "$TOP_DIR_FEDORA" -o ! -d "$TOP_DIR_FEDORA" ]; then
+ echo "Error: Fedora CVS directory $TOP_DIR_FEDORA do not exist"
+ exit 1
+fi
+if [ -z "$TOP_DIR_GIT" -o ! -d "$TOP_DIR_GIT" ]; then
+ echo "Error: Spacewalk git checkout $TOP_DIR_FEDORA do not exist"
+ exit 2
+fi
+
+pushd `pwd`
+for package in $PACKAGE_LIST; do
+ echo "Importing $package to Fedora:"
+ cd "$TOP_DIR_GIT"
+ cd `cat rel-eng/packages/$package | cut -f2 -d" "`
+ SRC_RPM=`tito build --srpm | tail -n1 | cut -f2 -d" "`
+ BASENAME=`basename $SRC_RPM`
+ NVR_GIT=`rpm -qp --queryformat '%{name}-%{version}' "$SRC_RPM"`
+ cd "$TOP_DIR_FEDORA"
+ if [ ! -d "$package" ]; then
+ echo "Directory $TOP_DIR_FEDORA/$package do not exist!"
+ exit 1
+ fi
+ cd "$package"
+
+ echo "Updating $TOP_DIR_FEDORA/$package"
+ cvs -fq update -d -P >/dev/null
+
+ # find version of package in fedora CVS and strip release from it
+ cd devel
+ NVR_CVS=`make verrel | perl -an -F- -e 'pop @F; print join("-", @F)'`
+ cd ..
+
+ if [ "$NVR_CVS" != "$NVR_GIT" ]; then
+ echo "Version in CVS is: $NVR_CVS"
+ echo "Importing version: $NVR_GIT"
+ ./common/cvs-import.sh -m "Rebase to $BASENAME in rawhide." $SRC_RPM || exit $?
+ cvs -fq update -d -P >/dev/null
+ cd devel
+ make build
+ else
+ echo "$NVR_CVS already imported - skipping."
+ fi
+done
+
+popd
14 years, 3 months
Changes to 'refs/tags/spacewalk-repo-0.9-1'
by Michael Mraka
Tag 'spacewalk-repo-0.9-1' created by Michael Mraka <michael.mraka(a)redhat.com> at 2010-02-11 09:19 +0000
Tagging package [spacewalk-repo] version [0.9-1] in directory [spec-tree/spacewalk-repo/].
Changes since spacewalk-java-0.9.2-1:
Justin Sherrill (2):
small perl fix
adding missing semicolon
Michael Mraka (4):
562644 - added class to emulate mod_python's mp_table
pointed to Spacewalk 0.8 repo
Automatic commit of package [spacewalk-repo] minor release [0.8-1].
Automatic commit of package [spacewalk-repo] minor release [0.9-1].
---
backend/server/wsgi/wsgiRequest.py | 54 +++++++++++++++++++++++++--
rel-eng/packages/spacewalk-repo | 2 -
spec-tree/spacewalk-repo/spacewalk-repo.spec | 10 ++++-
web/modules/pxt/PXT/ApacheHandler.pm | 2 -
web/modules/pxt/PXT/Debug.pm | 4 +-
5 files changed, 62 insertions(+), 10 deletions(-)
---
14 years, 3 months
3 commits - rel-eng/packages spec-tree/spacewalk-repo
by Michael Mraka
rel-eng/packages/spacewalk-repo | 2 +-
spec-tree/spacewalk-repo/spacewalk-repo.spec | 10 ++++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
New commits:
commit 63aa2e31e482fe82e2a56567d8e13049389c976d
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Feb 11 10:19:51 2010 +0100
Automatic commit of package [spacewalk-repo] minor release [0.9-1].
diff --git a/rel-eng/packages/spacewalk-repo b/rel-eng/packages/spacewalk-repo
index b85dd0b..8c59d76 100644
--- a/rel-eng/packages/spacewalk-repo
+++ b/rel-eng/packages/spacewalk-repo
@@ -1 +1 @@
-0.8-1 spec-tree/spacewalk-repo/
+0.9-1 spec-tree/spacewalk-repo/
diff --git a/spec-tree/spacewalk-repo/spacewalk-repo.spec b/spec-tree/spacewalk-repo/spacewalk-repo.spec
index 1a6854a..a71e2de 100644
--- a/spec-tree/spacewalk-repo/spacewalk-repo.spec
+++ b/spec-tree/spacewalk-repo/spacewalk-repo.spec
@@ -1,6 +1,6 @@
Summary: Spacewalk packages yum repository configuration
Name: spacewalk-repo
-Version: 0.8
+Version: 0.9
Release: 1%{?dist}
License: GPLv2
Group: System Environment/Base
@@ -67,6 +67,9 @@ rm -rf $RPM_BUILD_ROOT
%config %{_sysconfdir}/yum.repos.d/spacewalk-client.repo
%changelog
+* Thu Feb 11 2010 Michael Mraka <michael.mraka(a)redhat.com> 0.9-1
+- pointed to Spacewalk 0.9 repo
+
* Thu Feb 11 2010 Michael Mraka <michael.mraka(a)redhat.com> 0.8-1
- pointed to Spacewalk 0.8 repo
commit ae769960073fdcc9fee6f0706566fa9ec4a47535
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Feb 11 10:11:50 2010 +0100
Automatic commit of package [spacewalk-repo] minor release [0.8-1].
diff --git a/rel-eng/packages/spacewalk-repo b/rel-eng/packages/spacewalk-repo
index e6bb2e9..b85dd0b 100644
--- a/rel-eng/packages/spacewalk-repo
+++ b/rel-eng/packages/spacewalk-repo
@@ -1 +1 @@
-0.7-4 spec-tree/spacewalk-repo/
+0.8-1 spec-tree/spacewalk-repo/
diff --git a/spec-tree/spacewalk-repo/spacewalk-repo.spec b/spec-tree/spacewalk-repo/spacewalk-repo.spec
index b58f7dc..1a6854a 100644
--- a/spec-tree/spacewalk-repo/spacewalk-repo.spec
+++ b/spec-tree/spacewalk-repo/spacewalk-repo.spec
@@ -1,7 +1,7 @@
Summary: Spacewalk packages yum repository configuration
Name: spacewalk-repo
Version: 0.8
-Release: 0%{?dist}
+Release: 1%{?dist}
License: GPLv2
Group: System Environment/Base
# This src.rpm is cannonical upstream
@@ -67,6 +67,9 @@ rm -rf $RPM_BUILD_ROOT
%config %{_sysconfdir}/yum.repos.d/spacewalk-client.repo
%changelog
+* Thu Feb 11 2010 Michael Mraka <michael.mraka(a)redhat.com> 0.8-1
+- pointed to Spacewalk 0.8 repo
+
* Fri Nov 27 2009 Miroslav Suchý <msuchy(a)redhat.com> 0.7-4
- create subpackage spacewalk-client-repo
commit 51933afef52f0c92ef14b85961a2ca20200725ce
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Feb 11 10:03:20 2010 +0100
pointed to Spacewalk 0.8 repo
diff --git a/spec-tree/spacewalk-repo/spacewalk-repo.spec b/spec-tree/spacewalk-repo/spacewalk-repo.spec
index 3372e86..b58f7dc 100644
--- a/spec-tree/spacewalk-repo/spacewalk-repo.spec
+++ b/spec-tree/spacewalk-repo/spacewalk-repo.spec
@@ -1,7 +1,7 @@
Summary: Spacewalk packages yum repository configuration
Name: spacewalk-repo
-Version: 0.7
-Release: 4%{?dist}
+Version: 0.8
+Release: 0%{?dist}
License: GPLv2
Group: System Environment/Base
# This src.rpm is cannonical upstream
14 years, 3 months
Changes to 'refs/tags/spacewalk-repo-0.8-1'
by Michael Mraka
Tag 'spacewalk-repo-0.8-1' created by Michael Mraka <michael.mraka(a)redhat.com> at 2010-02-11 09:11 +0000
Tagging package [spacewalk-repo] version [0.8-1] in directory [spec-tree/spacewalk-repo/].
Changes since spacewalk-proxy-installer-0.8.3-1:
Michael Mraka (2):
pointed to Spacewalk 0.8 repo
Automatic commit of package [spacewalk-repo] minor release [0.8-1].
---
rel-eng/packages/spacewalk-repo | 2 +-
spec-tree/spacewalk-repo/spacewalk-repo.spec | 7 +++++--
2 files changed, 6 insertions(+), 3 deletions(-)
---
14 years, 3 months
Branch 'SPACEWALK-0.8' - 2 commits - rel-eng/packages spec-tree/spacewalk-repo
by Michael Mraka
rel-eng/packages/spacewalk-repo | 2 +-
spec-tree/spacewalk-repo/spacewalk-repo.spec | 7 +++++--
2 files changed, 6 insertions(+), 3 deletions(-)
New commits:
commit cb8088e30b53418fc1996f7a76e72d7cd7856725
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Feb 11 10:11:50 2010 +0100
Automatic commit of package [spacewalk-repo] minor release [0.8-1].
diff --git a/rel-eng/packages/spacewalk-repo b/rel-eng/packages/spacewalk-repo
index e6bb2e9..b85dd0b 100644
--- a/rel-eng/packages/spacewalk-repo
+++ b/rel-eng/packages/spacewalk-repo
@@ -1 +1 @@
-0.7-4 spec-tree/spacewalk-repo/
+0.8-1 spec-tree/spacewalk-repo/
diff --git a/spec-tree/spacewalk-repo/spacewalk-repo.spec b/spec-tree/spacewalk-repo/spacewalk-repo.spec
index b58f7dc..1a6854a 100644
--- a/spec-tree/spacewalk-repo/spacewalk-repo.spec
+++ b/spec-tree/spacewalk-repo/spacewalk-repo.spec
@@ -1,7 +1,7 @@
Summary: Spacewalk packages yum repository configuration
Name: spacewalk-repo
Version: 0.8
-Release: 0%{?dist}
+Release: 1%{?dist}
License: GPLv2
Group: System Environment/Base
# This src.rpm is cannonical upstream
@@ -67,6 +67,9 @@ rm -rf $RPM_BUILD_ROOT
%config %{_sysconfdir}/yum.repos.d/spacewalk-client.repo
%changelog
+* Thu Feb 11 2010 Michael Mraka <michael.mraka(a)redhat.com> 0.8-1
+- pointed to Spacewalk 0.8 repo
+
* Fri Nov 27 2009 Miroslav Suchý <msuchy(a)redhat.com> 0.7-4
- create subpackage spacewalk-client-repo
commit 4c2adb767b30d4f8965085a1f1c02a50369a7e39
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Feb 11 10:03:20 2010 +0100
pointed to Spacewalk 0.8 repo
diff --git a/spec-tree/spacewalk-repo/spacewalk-repo.spec b/spec-tree/spacewalk-repo/spacewalk-repo.spec
index 3372e86..b58f7dc 100644
--- a/spec-tree/spacewalk-repo/spacewalk-repo.spec
+++ b/spec-tree/spacewalk-repo/spacewalk-repo.spec
@@ -1,7 +1,7 @@
Summary: Spacewalk packages yum repository configuration
Name: spacewalk-repo
-Version: 0.7
-Release: 4%{?dist}
+Version: 0.8
+Release: 0%{?dist}
License: GPLv2
Group: System Environment/Base
# This src.rpm is cannonical upstream
14 years, 3 months
Changes to 'refs/tags/spacewalk-proxy-installer-0.8.3-1'
by Michael Mraka
Tag 'spacewalk-proxy-installer-0.8.3-1' created by Michael Mraka <michael.mraka(a)redhat.com> at 2010-02-10 22:51 +0000
Tagging package [spacewalk-proxy-installer] version [0.8.3-1] in directory [proxy/installer/].
Changes since spacewalk-backend-0.8.44-1:
Michael Mraka (1):
Automatic commit of package [spacewalk-proxy-installer] release [0.8.3-1].
---
proxy/installer/spacewalk-proxy-installer.spec | 5 ++++-
rel-eng/packages/spacewalk-proxy-installer | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
---
14 years, 3 months
Branch 'SPACEWALK-0.8' - proxy/installer rel-eng/packages
by Michael Mraka
proxy/installer/spacewalk-proxy-installer.spec | 5 ++++-
rel-eng/packages/spacewalk-proxy-installer | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
New commits:
commit 2913fbcbd6972c2fe1c8dbd3bb741cf7147caa88
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 10 23:51:49 2010 +0100
Automatic commit of package [spacewalk-proxy-installer] release [0.8.3-1].
diff --git a/proxy/installer/spacewalk-proxy-installer.spec b/proxy/installer/spacewalk-proxy-installer.spec
index 9e8c7ab..6766dc4 100644
--- a/proxy/installer/spacewalk-proxy-installer.spec
+++ b/proxy/installer/spacewalk-proxy-installer.spec
@@ -2,7 +2,7 @@ Name: spacewalk-proxy-installer
Summary: Spacewalk Proxy Server Installer
Group: Applications/Internet
License: GPLv2
-Version: 0.8.2
+Version: 0.8.3
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -87,6 +87,9 @@ rm -rf $RPM_BUILD_ROOT
%doc LICENSE answers.txt
%changelog
+* Wed Feb 10 2010 Michael Mraka <michael.mraka(a)redhat.com> 0.8.3-1
+- 558628 - fixing configure-proxy and making /cblr work over SSL
+
* Fri Jan 29 2010 Miroslav Suchý <msuchy(a)redhat.com> 0.8.2-1
- 543879 - adding support to the proxy side to redirect to a url
that will rewrite kickstarts with the proxy name for /cblr
diff --git a/rel-eng/packages/spacewalk-proxy-installer b/rel-eng/packages/spacewalk-proxy-installer
index 91bc1aa..79b7d6e 100644
--- a/rel-eng/packages/spacewalk-proxy-installer
+++ b/rel-eng/packages/spacewalk-proxy-installer
@@ -1 +1 @@
-0.8.2-1 proxy/installer/
+0.8.3-1 proxy/installer/
14 years, 3 months
backend/server
by Michael Mraka
backend/server/wsgi/wsgiRequest.py | 54 ++++++++++++++++++++++++++++++++++---
1 file changed, 50 insertions(+), 4 deletions(-)
New commits:
commit 8b197ec4f347a5405488e9a475d8772765a9ce41
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 10 23:35:27 2010 +0100
562644 - added class to emulate mod_python's mp_table
diff --git a/backend/server/wsgi/wsgiRequest.py b/backend/server/wsgi/wsgiRequest.py
index 5b042ef..50c4aee 100644
--- a/backend/server/wsgi/wsgiRequest.py
+++ b/backend/server/wsgi/wsgiRequest.py
@@ -32,12 +32,12 @@ class WsgiRequest:
self.options = {}
self.main = 0
self.proto_num = float(env['SERVER_PROTOCOL'].split('/')[1])
- self.headers_out = WsgiDict()
+ self.headers_out = WsgiMPtable()
self.sent_header = 0
self.content_type = ""
self.the_request = env['REQUEST_METHOD'] + " " + env['SCRIPT_NAME'] + " " + env['SERVER_PROTOCOL']
self.output = []
- self.err_headers_out = WsgiDict()
+ self.err_headers_out = WsgiMPtable()
self.status = ""
self.sent_bodyct = 0
self.sent_header = 0
@@ -92,6 +92,52 @@ class WsgiConnection:
def __init__(self, remote_ip):
self.remote_ip = remote_ip
-class WsgiDict(dict):
+class WsgiMPtable:
+ """ This class emulates mod_python's mp_table. See
+ http://www.modpython.org/live/current/doc-html/pyapi-mptable.html
+
+ The table object is a wrapper around the Apache APR table. The table
+ object behaves very much like a dictionary (including the Python 2.2
+ features such as support of the in operator, etc.), with the following
+ differences:
+
+ ...
+ - Duplicate keys are allowed (see add() below). When there is more
+ than one value for a key, a subscript operation returns a list.
+
+ Much of the information that Apache uses is stored in tables.
+ For example, req.headers_in and req.headers_out.
+ """
+ def __init__(self):
+ self.dict = {}
+
def add(self, key, value):
- self[key] = value;
+ if self.dict.has_key(key):
+ self.dict[key].append(str(value))
+ else:
+ self.dict[key] = [str(value)]
+
+ def __getitem__(self, key):
+ if len(self.dict[key]) == 1:
+ return self.dict[key][0]
+ return self.dict[key]
+
+ def __setitem__(self, key, value):
+ self.dict[key] = [str(value)]
+
+ def items(self):
+ list = []
+ for k,v in self.dict.items():
+ for vi in v:
+ list.append((k,vi))
+ return list
+
+ def has_key(self, key):
+ return self.dict.has_key(key)
+
+ def keys(self):
+ return self.dict.keys()
+
+ def __str__(self):
+ return str(self.items())
+
14 years, 3 months
Changes to 'refs/tags/spacewalk-backend-0.8.44-1'
by Michael Mraka
Tag 'spacewalk-backend-0.8.44-1' created by Michael Mraka <michael.mraka(a)redhat.com> at 2010-02-10 22:37 +0000
Tagging package [spacewalk-backend] version [0.8.44-1] in directory [backend/].
Changes since spacewalk-web-0.8.16-1:
Michael Mraka (2):
562644 - added class to emulate mod_python's mp_table
Automatic commit of package [spacewalk-backend] release [0.8.44-1].
---
backend/server/wsgi/wsgiRequest.py | 54 ++++++++++++++++++++++++++++++++++---
backend/spacewalk-backend.spec | 5 ++-
rel-eng/packages/spacewalk-backend | 2 -
3 files changed, 55 insertions(+), 6 deletions(-)
---
14 years, 3 months
Branch 'SPACEWALK-0.8' - 2 commits - backend/server backend/spacewalk-backend.spec rel-eng/packages
by Michael Mraka
backend/server/wsgi/wsgiRequest.py | 54 ++++++++++++++++++++++++++++++++++---
backend/spacewalk-backend.spec | 5 ++-
rel-eng/packages/spacewalk-backend | 2 -
3 files changed, 55 insertions(+), 6 deletions(-)
New commits:
commit eb52be366419c4faa146434af2441bfe53871ff5
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 10 23:37:19 2010 +0100
Automatic commit of package [spacewalk-backend] release [0.8.44-1].
diff --git a/backend/spacewalk-backend.spec b/backend/spacewalk-backend.spec
index 29af99e..934a281 100644
--- a/backend/spacewalk-backend.spec
+++ b/backend/spacewalk-backend.spec
@@ -8,7 +8,7 @@ Name: spacewalk-backend
Summary: Common programs needed to be installed on the Spacewalk servers/proxies
Group: Applications/Internet
License: GPLv2
-Version: 0.8.43
+Version: 0.8.44
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -621,6 +621,9 @@ rm -f %{rhnconf}/rhnSecret.py*
# $Id$
%changelog
+* Wed Feb 10 2010 Michael Mraka <michael.mraka(a)redhat.com> 0.8.44-1
+- 562644 - added class to emulate mod_python's mp_table
+
* Thu Feb 04 2010 Michael Mraka <michael.mraka(a)redhat.com> 0.8.43-1
- updated copyrights
- 479911 - removing duplicate rewrites and consolidating to a single location
diff --git a/rel-eng/packages/spacewalk-backend b/rel-eng/packages/spacewalk-backend
index 3eff9cb..e360f66 100644
--- a/rel-eng/packages/spacewalk-backend
+++ b/rel-eng/packages/spacewalk-backend
@@ -1 +1 @@
-0.8.43-1 backend/
+0.8.44-1 backend/
commit 320bbbd902e990f3882bc8598f5a834b83ab3070
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 10 23:34:15 2010 +0100
562644 - added class to emulate mod_python's mp_table
diff --git a/backend/server/wsgi/wsgiRequest.py b/backend/server/wsgi/wsgiRequest.py
index 5b042ef..50c4aee 100644
--- a/backend/server/wsgi/wsgiRequest.py
+++ b/backend/server/wsgi/wsgiRequest.py
@@ -32,12 +32,12 @@ class WsgiRequest:
self.options = {}
self.main = 0
self.proto_num = float(env['SERVER_PROTOCOL'].split('/')[1])
- self.headers_out = WsgiDict()
+ self.headers_out = WsgiMPtable()
self.sent_header = 0
self.content_type = ""
self.the_request = env['REQUEST_METHOD'] + " " + env['SCRIPT_NAME'] + " " + env['SERVER_PROTOCOL']
self.output = []
- self.err_headers_out = WsgiDict()
+ self.err_headers_out = WsgiMPtable()
self.status = ""
self.sent_bodyct = 0
self.sent_header = 0
@@ -92,6 +92,52 @@ class WsgiConnection:
def __init__(self, remote_ip):
self.remote_ip = remote_ip
-class WsgiDict(dict):
+class WsgiMPtable:
+ """ This class emulates mod_python's mp_table. See
+ http://www.modpython.org/live/current/doc-html/pyapi-mptable.html
+
+ The table object is a wrapper around the Apache APR table. The table
+ object behaves very much like a dictionary (including the Python 2.2
+ features such as support of the in operator, etc.), with the following
+ differences:
+
+ ...
+ - Duplicate keys are allowed (see add() below). When there is more
+ than one value for a key, a subscript operation returns a list.
+
+ Much of the information that Apache uses is stored in tables.
+ For example, req.headers_in and req.headers_out.
+ """
+ def __init__(self):
+ self.dict = {}
+
def add(self, key, value):
- self[key] = value;
+ if self.dict.has_key(key):
+ self.dict[key].append(str(value))
+ else:
+ self.dict[key] = [str(value)]
+
+ def __getitem__(self, key):
+ if len(self.dict[key]) == 1:
+ return self.dict[key][0]
+ return self.dict[key]
+
+ def __setitem__(self, key, value):
+ self.dict[key] = [str(value)]
+
+ def items(self):
+ list = []
+ for k,v in self.dict.items():
+ for vi in v:
+ list.append((k,vi))
+ return list
+
+ def has_key(self, key):
+ return self.dict.has_key(key)
+
+ def keys(self):
+ return self.dict.keys()
+
+ def __str__(self):
+ return str(self.items())
+
14 years, 3 months