summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRandy Barlow <randy@electronsweatshop.com>2016-02-13 21:57:19 -0500
committerRandy Barlow <randy@electronsweatshop.com>2016-02-13 21:57:19 -0500
commit6f00c58c22ea629ca90264d21e66c55690f43e8d (patch)
tree6c8adbe700ea74b32f9a65bb72d1d8363d740705
parent39a78d327910fc18341b17296f0ee112ee9c71c6 (diff)
downloadejabberd-6f00c58c22ea629ca90264d21e66c55690f43e8d.tar.gz
ejabberd-6f00c58c22ea629ca90264d21e66c55690f43e8d.tar.xz
ejabberd-6f00c58c22ea629ca90264d21e66c55690f43e8d.zip
This commit successfully builds ejabberd-15.11.
This commit will successfully build ejabberd-15.11. It depends on a build of erlang-p1_sip that just got built in Rawhide, so it will not build in Koji until tomorrow. There is a lot of commented code, most notably a lot of former patches that no longer apply. We will need to review these patches against the upstream changes between 14.07 and 15.11 to determine whether they are still needed, and we will need to recreate them if so. I intend to perform a lot of cleanup in this spec file in the coming weeks and months, but I wanted to commit as is since this is the first state I've gotten it to where it builds successfully.
-rw-r--r--.gitignore1
-rw-r--r--0013-Do-not-manage-deps-during-build.patch47
-rw-r--r--0014-Remove-the-xmlrpc-dependency-as-it-s-only-used-for-t.patch60
-rw-r--r--ejabberd.spec236
-rw-r--r--sources3
5 files changed, 248 insertions, 99 deletions
diff --git a/.gitignore b/.gitignore
index 157f4d1..f1819c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@ ejabberd-2.1.5.tar.gz
/ejabberd-v2.1.13.tar.gz
/ejabberd-14.07.tar.gz
/ejabberd-src-deps.tar
+/15.11.tar.gz
diff --git a/0013-Do-not-manage-deps-during-build.patch b/0013-Do-not-manage-deps-during-build.patch
new file mode 100644
index 0000000..e81a784
--- /dev/null
+++ b/0013-Do-not-manage-deps-during-build.patch
@@ -0,0 +1,47 @@
+From 6a5900c74692f7a56bdf55862b07f0c2bb8154c2 Mon Sep 17 00:00:00 2001
+From: Randy Barlow <randy@electronsweatshop.com>
+Date: Sat, 13 Feb 2016 10:57:00 -0500
+Subject: [PATCH] Do not manage deps during build.
+
+---
+ Makefile.in | 16 +++-------------
+ 1 file changed, 3 insertions(+), 13 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 8dd6bf5..55140b1 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -77,19 +77,9 @@ else
+ INIT_USER=$(INSTALLUSER)
+ endif
+
+-all: deps src
++all: src
+
+-deps: deps/.got
+-
+-deps/.got:
+- rm -rf deps/.got
+- rm -rf deps/.built
+- $(REBAR) get-deps && :> deps/.got
+-
+-deps/.built: deps/.got
+- $(REBAR) compile && :> deps/.built
+-
+-src: deps/.built
++src:
+ $(REBAR) skip_deps=true compile
+
+ update:
+@@ -137,7 +127,7 @@ $(call TO_DEST,deps/p1_pam/priv/bin/epam): $(LIBDIR)/%: deps/% $(call TO_DEST,de
+
+ copy-files: $(call TO_DEST,$(DEPS_FILES) $(MAIN_FILES))
+
+-install: all copy-files
++install: copy-files
+ #
+ # Configuration files
+ $(INSTALL) -d -m 750 $(G_USER) $(ETCDIR)
+--
+2.7.1
+
diff --git a/0014-Remove-the-xmlrpc-dependency-as-it-s-only-used-for-t.patch b/0014-Remove-the-xmlrpc-dependency-as-it-s-only-used-for-t.patch
new file mode 100644
index 0000000..53542c4
--- /dev/null
+++ b/0014-Remove-the-xmlrpc-dependency-as-it-s-only-used-for-t.patch
@@ -0,0 +1,60 @@
+From 2aaad0d30d7ee580d5678c48a928c9422844699e Mon Sep 17 00:00:00 2001
+From: Randy Barlow <randy@electronsweatshop.com>
+Date: Sat, 13 Feb 2016 21:01:58 -0500
+Subject: [PATCH] Remove the xmlrpc dependency as it's only used for tests.
+
+---
+ mix.exs | 3 +--
+ mix.lock | 3 +--
+ rebar.config.script | 3 +--
+ 3 files changed, 3 insertions(+), 6 deletions(-)
+
+diff --git a/mix.exs b/mix.exs
+index fcc2973..4169c13 100644
+--- a/mix.exs
++++ b/mix.exs
+@@ -20,7 +20,7 @@ defmodule Ejabberd.Mixfile do
+ included_applications: [:p1_logger, :p1_yaml, :p1_tls, :p1_xml,
+ :p1_stringprep, :p1_zlib, :p1_cache_tab,
+ :mnesia, :p1_utils, :p1_iconv, :esip, :p1_stun,
+- :p1_mysql, :p1_pgsql, :eredis, :oauth2, :xmlrpc]]
++ :p1_mysql, :p1_pgsql, :eredis, :oauth2]]
+ end
+
+ defp erlc_options do
+@@ -45,7 +45,6 @@ defmodule Ejabberd.Mixfile do
+ {:p1_pgsql, git: "https://github.com/processone/pgsql"},
+ {:eredis, git: "https://github.com/wooga/eredis"},
+ {:oauth2, git: "https://github.com/prefiks/oauth2.git"},
+- {:xmlrpc, git: "https://github.com/rds13/xmlrpc.git"},
+ {:exrm, "~> 0.19.2"}]
+ end
+
+diff --git a/mix.lock b/mix.lock
+index 001e006..7ef1884 100644
+--- a/mix.lock
++++ b/mix.lock
+@@ -20,5 +20,4 @@
+ "p1_yaml": {:git, "https://github.com/processone/p1_yaml", "79f756ba73a235c4d3836ec07b5f7f2b55f49638", []},
+ "p1_zlib": {:git, "https://github.com/processone/zlib", "e3d4222b7aae616d7ef2e7e2fa0bbf451516c602", []},
+ "providers": {:hex, :providers, "1.4.1"},
+- "relx": {:hex, :relx, "3.5.0"},
+- "xmlrpc": {:git, "https://github.com/rds13/xmlrpc.git", "42e6e96a0fe7106830274feed915125feb1056f3", []}}
++ "relx": {:hex, :relx, "3.5.0"}}
+diff --git a/rebar.config.script b/rebar.config.script
+index 833595d..1aa21a2 100644
+--- a/rebar.config.script
++++ b/rebar.config.script
+@@ -63,8 +63,7 @@ Deps = [{p1_cache_tab, ".*", {git, "https://github.com/processone/cache_tab", "f
+ {p1_yaml, ".*", {git, "https://github.com/processone/p1_yaml", "79f756ba73a235c4d3836ec07b5f7f2b55f49638"}},
+ {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", "d7800881e6702723ce58b7646b60c9e4cd25d563"}},
+ {jiffy, ".*", {git, "https://github.com/davisp/jiffy", "cfc61a2e952dc3182e0f9b1473467563699992e2"}},
+- {oauth2, ".*", {git, "https://github.com/prefiks/oauth2.git", "e6da9912e5d8f658e7e868f41a102d085bdbef59"}},
+- {xmlrpc, ".*", {git, "https://github.com/rds13/xmlrpc.git", "42e6e96a0fe7106830274feed915125feb1056f3"}}],
++ {oauth2, ".*", {git, "https://github.com/prefiks/oauth2.git", "e6da9912e5d8f658e7e868f41a102d085bdbef59"}}],
+
+ CFLags = proplists:get_value(cflags, Cfg, ""),
+ CPPFLags = proplists:get_value(cppflags, Cfg, ""),
+--
+2.7.1
+
diff --git a/ejabberd.spec b/ejabberd.spec
index 3fcb07f..75518c0 100644
--- a/ejabberd.spec
+++ b/ejabberd.spec
@@ -1,4 +1,5 @@
%global _hardened_build 1
+%global debug_package %{nil}
# FIXME non-standard directory for storing *.so objects
%{?filter_setup:
@@ -9,81 +10,99 @@
%{expand: %(DRV_VER=`rpm -q erlang-erts --provides | grep --color=no erl_drv_version` ; if [ "$DRV_VER" != "" ]; then echo %%global __erlang_drv_version $DRV_VER ; fi)}
-# Currently, hevea available only in Fedora
-%if 0%{?fedora}
-%global _with_hevea 1
-%endif
-
-
Name: ejabberd
-Version: 14.07
-Release: 8%{?dist}
-Summary: A distributed, fault-tolerant Jabber/XMPP server
+Version: 15.11
+Release: 1%{?dist}
-Group: Applications/Internet
+Summary: A distributed, fault-tolerant Jabber/XMPP server
License: GPLv2+
URL: http://www.ejabberd.im/
-%if 0%{?el7}%{?fedora}
-VCS: scm:git:https://github.com/processone/ejabberd.git
-%endif
-Source0: https://github.com/processone/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
+VCS: scm:git:https://github.com/processone/ejabberd.git
+Source0: https://github.com/processone/%{name}/archive/%{version}.tar.gz
+#Source1: ejabberd-15.11-deps.tar.bz2
Source2: ejabberd.logrotate
# Support for systemd
-Source4: ejabberd.service
-Source5: ejabberd.tmpfiles.conf
+Source4: ejabberd.service
+Source5: ejabberd.tmpfiles.conf
# PAM support
Source9: ejabberdctl.pam
Source11: ejabberd.pam
# polkit support
-Source12: ejabberdctl.polkit.actions
-Source13: ejabberdctl.polkit.rules
+Source12: ejabberdctl.polkit.actions
+Source13: ejabberdctl.polkit.rules
-Source14: ejabberd-src-deps.tar
# Use ejabberd as an example for PAM service name (fedora/epel-specific)
Patch1: ejabberd-0001-Fix-PAM-service-example-name-to-match-actual-one.patch
# Introducing mod_admin_extra
-Patch2: ejabberd-0002-Introducing-mod_admin_extra.patch
+# rbarlow: it seems that mod_admin_extra already exists upstream in 15.11
+#Patch2: ejabberd-0002-Introducing-mod_admin_extra.patch
# BZ# 439583, 452326, 451554, 465196, 502361 (fedora/epel-specific)
-Patch3: ejabberd-0003-Fedora-specific-changes-to-ejabberdctl.patch
+# rbarlow: i'm not sure what this patch is for, but it does not apply cleanly
+#Patch3: ejabberd-0003-Fedora-specific-changes-to-ejabberdctl.patch
# Fedora-specific
-Patch4: ejabberd-0004-Install-.so-objects-with-0755-permissions.patch
+# rbarlow: this patch fails to apply
+#Patch4: ejabberd-0004-Install-.so-objects-with-0755-permissions.patch
# Fedora-specific
-Patch5: ejabberd-0005-Clean-up-false-security-measure.patch
+# rbarlow: This patch fails to apply cleanly
+# Patch5: ejabberd-0005-Clean-up-false-security-measure.patch
# polkit support
Patch6: ejabberd-0006-Enable-polkit-support.patch
# Fedora-specific
Patch7: ejabberd-0007-Install-into-BINDIR-instead-of-SBINDIR.patch
# Fedora-specific
-Patch8: ejabberd-0008-Disable-Erlang-version-check.patch
+# rbarlow: this patch failed to apply
+# Patch8: ejabberd-0008-Disable-Erlang-version-check.patch
# Fedora-specific
-Patch9: ejabberd-0009-Fix-permissions-for-captcha-script.patch
+# rbarlow: This patch failed to apply
+# Patch9: ejabberd-0009-Fix-permissions-for-captcha-script.patch
# Fedora-specific
Patch10:ejabberd-0010-Enable-systemd-notification-if-available.patch
-Patch11: ejabberd-0011-aarch64.patch
+#Patch11: ejabberd-0011-aarch64.patch
+# Patch12: 0012-Use-rds13_xmlrpc-instead-of-xmlrpc.patch
+Patch13: 0013-Do-not-manage-deps-during-build.patch
+Patch14: 0014-Remove-the-xmlrpc-dependency-as-it-s-only-used-for-t.patch
-BuildRequires: expat-devel
-BuildRequires: openssl-devel >= 0.9.8
+BuildRequires: expat-devel >= 1.95
+BuildRequires: openssl-devel >= 1.0.0
BuildRequires: pam-devel
-BuildRequires: libyaml-devel
-BuildRequires: erlang
+BuildRequires: libyaml-devel >= 0.1.4
+BuildRequires: erlang >= 17.1
BuildRequires: erlang-rebar
+BuildRequires: erlang-rpm-macros
BuildRequires: git
# FIXME
-#BuildRequires: erlang-jiffy
-#BuildRequires: erlang-lager
-#BuildRequires: erlang-ibrowse
-#BuildRequires: erlang-xmlrpc
-%if 0%{?_with_hevea}
+BuildRequires: elixir
+BuildRequires: erlang-jiffy
+BuildRequires: erlang-lager
+BuildRequires: erlang-meck
+BuildRequires: erlang-oauth2
+BuildRequires: erlang-p1_iconv
+BuildRequires: erlang-p1_mysql
+BuildRequires: erlang-p1_pam
+BuildRequires: erlang-p1_pgsql
+BuildRequires: erlang-p1_zlib
+BuildRequires: erlang-riak_client
+# Fixmore
+BuildRequires: erlang-cache_tab
+BuildRequires: erlang-p1_tls
+BuildRequires: erlang-p1_stringprep
+BuildRequires: erlang-p1_xml
+BuildRequires: erlang-p1_sip >= 1.0.0-2
+BuildRequires: erlang-p1_stun
+BuildRequires: erlang-p1_yaml
+BuildRequires: erlang-p1_utils
+#BuildRequires: erlang-rds13_xmlrpc
+
BuildRequires: hevea
BuildRequires: texlive-comment
-%endif
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: gcc-c++
# For creating user and group
Requires(pre): shadow-utils
@@ -103,6 +122,28 @@ Requires: erlang
Requires: polkit
# for flock in ejabberdctl
Requires: util-linux
+# From rebar
+Requires: elixir
+Requires: erlang-jiffy
+Requires: erlang-lager
+Requires: erlang-meck
+Requires: erlang-oauth2
+Requires: erlang-p1_iconv
+Requires: erlang-p1_mysql
+Requires: erlang-p1_pam
+Requires: erlang-p1_pgsql
+Requires: erlang-p1_zlib
+Requires: erlang-riak_client
+# Fix these
+Requires: erlang-cache_tab
+Requires: erlang-p1_tls
+Requires: erlang-p1_stringprep
+Requires: erlang-p1_xml
+Requires: erlang-p1_sip >= 1.0.0-2
+Requires: erlang-p1_stun
+Requires: erlang-p1_yaml
+Requires: erlang-p1_utils
+#Requires: erlang-rds13_xmlrpc
%{?__erlang_drv_version:Requires: %{__erlang_drv_version}}
%{?__erlang_nif_version:Requires: %{__erlang_nif_version}}
@@ -113,55 +154,63 @@ Jabber/XMPP server. It is mostly written in Erlang, and runs on many
platforms (tested on Linux, FreeBSD, NetBSD, Solaris, Mac OS X and
Windows NT/2000/XP).
-%package doc
-Summary: Documentation for ejabberd
-BuildArch: noarch
-Obsoletes: %{name}-doc < 2.1.4
-# docdir owner
-Requires: %{name} = %{version}-%{release}
-Group: Documentation
+#%package doc
+#Summary: Documentation for ejabberd
+#BuildArch: noarch
+#Obsoletes: %{name}-doc < 2.1.4
+## docdir owner
+#Requires: %{name} = %{version}-%{release}
+#Group: Documentation
-%description doc
-Documentation for ejabberd.
+#%description doc
+#Documentation for ejabberd.
%prep
%setup -q
%patch1 -p1 -b .pam_name
-%patch2 -p1 -b .mod_admin_extra
-%patch3 -p1 -b .fedora_specific
-%patch4 -p1 -b .so_lib_755
-%patch5 -p1 -b .false_security
+# %patch2 -p1 -b .mod_admin_extra
+# %patch3 -p1 -b .fedora_specific
+# %patch4 -p1 -b .so_lib_755
+# %patch5 -p1 -b .false_security
%patch6 -p1 -b .use_polkit
%patch7 -p1 -b .use_bindir
-%patch8 -p1 -b .no_ver_check
-%patch9 -p1 -b .captcha_perms
+# %patch8 -p1 -b .no_ver_check
+# %patch9 -p1 -b .captcha_perms
#%patch10 -p1 -b .systemd_notify
-tar xvf %{S:14}
-%patch11 -p1
+#tar xvf %{S:1}
+#%patch11 -p1
+#%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+#touch deps/.got
+#touch deps/.built
%build
autoreconf -ivf
+#./autogen.sh
# Disabled: --enable-hipe --enable-roster-gateway-workaround --enable-transient_supervisors --enable-full-xml --enable-mssql --enable-tools --enable-riak --enable-http
-%configure --enable-nif --enable-odbc --enable-mysql --enable-pgsql --enable-pam --enable-zlib --enable-json --enable-iconv --enable-debug --enable-lager
-make
-%if 0%{?_with_hevea}
-pushd doc
-%ifarch %{power64}
-ulimit -a
-ulimit -Hs 65536
-ulimit -Ss 65536
-%endif
+#LDFLAGS="$LDFLAGS -L%{_libdir}/erlang/lib/"
+#echo $LDFLAGS
+%configure --enable-nif --enable-odbc --enable-mysql --enable-pgsql --enable-pam --enable-zlib --enable-iconv --enable-debug --enable-lager --libdir=%{_libdir}/erlang/lib/
+%rebar_compile
+#make src
+#pushd doc
+#%ifarch %{power64}
+#ulimit -a
+#ulimit -Hs 65536
+#ulimit -Ss 65536
+#%endif
# remove pre-built docs
-rm -f dev.html features.html
-# See this link - http://thread.gmane.org/gmane.linux.redhat.fedora.devel/198954/focus=198957
-make release
-make html pdf
-popd
-%endif
+#rm -f dev.html features.html
+## See this link - http://thread.gmane.org/gmane.linux.redhat.fedora.devel/198954/focus=198957
+#make release
+#make html pdf
+#popd
+# make edoc
%install
@@ -186,9 +235,8 @@ install -D -p -m 0644 %{S:2} %{buildroot}%{_sysconfdir}/logrotate.d/ejabberd
# create room for additional files (such as SQL schemas)
install -d %{buildroot}%{_datadir}/%{name}
# install sql-scripts for creating db schemes for various RDBMS
-install -p -m 0644 sql/mssql2000.sql %{buildroot}%{_datadir}/%{name}
-install -p -m 0644 sql/mssql2005.sql %{buildroot}%{_datadir}/%{name}
-install -p -m 0644 sql/mssql2012.sql %{buildroot}%{_datadir}/%{name}
+install -p -m 0644 sql/lite.sql %{buildroot}%{_datadir}/%{name}
+install -p -m 0644 sql/mssql.sql %{buildroot}%{_datadir}/%{name}
install -p -m 0644 sql/mysql.sql %{buildroot}%{_datadir}/%{name}
install -p -m 0644 sql/pg.sql %{buildroot}%{_datadir}/%{name}
@@ -285,27 +333,23 @@ fi)
%{_datadir}/polkit-1/rules.d/51-ejabberdctl.rules
%{_bindir}/ejabberdctl
-%dir %{_libdir}/%{name}
-%dir %{_libdir}/%{name}/ebin
-%dir %{_libdir}/%{name}/include
-%dir %{_libdir}/%{name}/priv
-%dir %{_libdir}/%{name}/priv/bin
-%dir %{_libdir}/%{name}/priv/lib
-%dir %{_libdir}/%{name}/priv/msgs
+%dir %{_erllibdir}/%{name}
+%dir %{_erllibdir}/%{name}/ebin
+%dir %{_erllibdir}/%{name}/include
+%dir %{_erllibdir}/%{name}/priv
+%dir %{_erllibdir}/%{name}/priv/bin
+%dir %{_erllibdir}/%{name}/priv/msgs
-%{_libdir}/%{name}/ebin/*.app
-%{_libdir}/%{name}/ebin/*.beam
-%{_libdir}/%{name}/include/*.hrl
-%{_libdir}/%{name}/priv/bin/captcha.sh
-%attr(4750,root,ejabberd) %{_libdir}/%{name}/priv/bin/epam
-%{_libdir}/%{name}/priv/lib/*.so
+%{_erllibdir}/%{name}/ebin/*.app
+%{_erllibdir}/%{name}/ebin/*.beam
+%{_erllibdir}/%{name}/include/*.hrl
+%{_erllibdir}/%{name}/priv/bin/captcha.sh
-%{_libdir}/%{name}/priv/msgs/*.msg
+%{_erllibdir}/%{name}/priv/msgs/*.msg
%dir %{_datadir}/%{name}
-%{_datadir}/%{name}/mssql2000.sql
-%{_datadir}/%{name}/mssql2005.sql
-%{_datadir}/%{name}/mssql2012.sql
+%{_datadir}/%{name}/lite.sql
+%{_datadir}/%{name}/mssql.sql
%{_datadir}/%{name}/mysql.sql
%{_datadir}/%{name}/pg.sql
@@ -313,18 +357,16 @@ fi)
%attr(750,ejabberd,ejabberd) %dir /var/lock/ejabberdctl
%attr(750,ejabberd,ejabberd) %dir /var/log/ejabberd
-%files doc
-%doc doc/*.html
-%doc doc/*.png
-%if 0%{?_with_hevea}
-%doc doc/*.pdf
-%endif
-%doc doc/*.txt
+#%files doc
+#%doc doc/*.html
+#%doc doc/*.png
+#%doc doc/*.pdf
+#%doc doc/*.txt
%changelog
-* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 14.07-8
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+* Fri Feb 12 2016 Randy Barlow <rbarlow@redhat.com> - 15.11-1
+- Raise the version to 15.11.
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14.07-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
diff --git a/sources b/sources
index b1728e6..de74c26 100644
--- a/sources
+++ b/sources
@@ -1,2 +1 @@
-a26b8acfc8fd15d94874befa06da15be ejabberd-14.07.tar.gz
-0362024d73b2c8ee38246be5a168869b ejabberd-src-deps.tar
+6e24541cc1526d1eee59c238c77c19c1 15.11.tar.gz