diff options
author | Randy Barlow <randy@electronsweatshop.com> | 2016-02-13 21:57:19 -0500 |
---|---|---|
committer | Randy Barlow <randy@electronsweatshop.com> | 2016-02-13 21:57:19 -0500 |
commit | 6f00c58c22ea629ca90264d21e66c55690f43e8d (patch) | |
tree | 6c8adbe700ea74b32f9a65bb72d1d8363d740705 | |
parent | 39a78d327910fc18341b17296f0ee112ee9c71c6 (diff) | |
download | ejabberd-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-- | .gitignore | 1 | ||||
-rw-r--r-- | 0013-Do-not-manage-deps-during-build.patch | 47 | ||||
-rw-r--r-- | 0014-Remove-the-xmlrpc-dependency-as-it-s-only-used-for-t.patch | 60 | ||||
-rw-r--r-- | ejabberd.spec | 236 | ||||
-rw-r--r-- | sources | 3 |
5 files changed, 248 insertions, 99 deletions
@@ -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 @@ -1,2 +1 @@ -a26b8acfc8fd15d94874befa06da15be ejabberd-14.07.tar.gz -0362024d73b2c8ee38246be5a168869b ejabberd-src-deps.tar +6e24541cc1526d1eee59c238c77c19c1 15.11.tar.gz |