[erlang-xmlrpc] Initial commit (see rhbz #645288)
Peter Lemenkov
peter at fedoraproject.org
Sun Oct 31 04:50:45 UTC 2010
commit 94b92c7d0bc013665938d349455c864b65816027
Author: Peter Lemenkov <lemenkov at gmail.com>
Date: Sun Oct 31 07:50:31 2010 +0300
Initial commit (see rhbz #645288)
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
erlang-xmlrpc.spec | 67 +++++++++++++++++++++++++++++++++++++++++++++
xmlrpc-1.13.tgz | Bin 0 -> 38169 bytes
xmlrpc-fixes.diff | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 143 insertions(+), 0 deletions(-)
---
diff --git a/erlang-xmlrpc.spec b/erlang-xmlrpc.spec
new file mode 100644
index 0000000..f687d3c
--- /dev/null
+++ b/erlang-xmlrpc.spec
@@ -0,0 +1,67 @@
+%global realname xmlrpc
+%global debug_package %{nil}
+
+
+Name: erlang-%{realname}
+Version: 1.13
+Release: 2%{?dist}
+Summary: HTTP 1.1 compliant XML-RPC library for Erlang
+Group: Development/Libraries
+License: BSD
+URL: http://github.com/rwbr/exmlrpc
+Source0: http://erlang.stacken.kth.se/contrib/%{realname}-%{version}.tgz
+Patch1: xmlrpc-fixes.diff
+BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+BuildRequires: erlang-erts
+BuildRequires: erlang-xmerl
+Requires: erlang-erts >= R12B-5
+Requires: erlang-kernel >= R12B-5
+Requires: erlang-stdlib >= R12B-5
+Requires: erlang-xmerl >= R12B-5
+
+
+%description
+HTTP 1.1 compliant XML-RPC library for Erlang.
+
+
+%prep
+%setup -q -n %{realname}-%{version}
+%patch1 -p1
+
+
+%build
+cd src && make %{?_smp_mflags}
+
+
+%install
+rm -rf %{buildroot}
+
+install -d %{buildroot}%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/
+install -d %{buildroot}%{_mandir}/man3/
+
+install -m 644 -p ebin/*.beam %{buildroot}%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/
+install -m 644 -p doc/%{realname}.3 %{buildroot}%{_mandir}/man3/
+
+
+%clean
+rm -rf %{buildroot}
+
+
+%files
+%defattr(-,root,root,-)
+%doc CHANGES LICENSE README TODO examples/ doc/xmlrpc.pdf doc/xmlrpc.ps doc/xmlrpc.txt
+%dir %{_libdir}/erlang/lib/%{realname}-%{version}
+%dir %{_libdir}/erlang/lib/%{realname}-%{version}/ebin
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/tcp_serv.beam
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}.beam
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_*.beam
+%{_mandir}/man3/%{realname}.3*
+
+
+%changelog
+* Thu Oct 28 2010 Peter Lemenkov <lemenkov at gmail.com> - 1.13-2
+- Ensure consistency in macro usage
+
+* Thu Oct 21 2010 Peter Lemenkov <lemenkov at gmail.com> - 1.13-1
+- Initial build
+
diff --git a/xmlrpc-1.13.tgz b/xmlrpc-1.13.tgz
new file mode 100644
index 0000000..7051501
Binary files /dev/null and b/xmlrpc-1.13.tgz differ
diff --git a/xmlrpc-fixes.diff b/xmlrpc-fixes.diff
new file mode 100644
index 0000000..9277428
--- /dev/null
+++ b/xmlrpc-fixes.diff
@@ -0,0 +1,76 @@
+Only in xmlrpc-1.13-ipr2/: ip-patch.diff
+diff -ru xmlrpc-1.13/src/xmlrpc.erl xmlrpc-1.13-ipr2/src/xmlrpc.erl
+--- xmlrpc-1.13/src/xmlrpc.erl 2003-04-23 23:06:45.000000000 +0400
++++ xmlrpc-1.13-ipr2/src/xmlrpc.erl 2006-09-22 14:29:16.000000000 +0400
+@@ -110,11 +110,12 @@
+ case string:tokens(HeaderField, " \r\n") of
+ ["Content-Length:", ContentLength] ->
+ case catch list_to_integer(ContentLength) of
++ badarg ->
++ {error, {invalid_content_length, ContentLength}};
+ Value ->
+ parse_header(Socket, Timeout,
+ Header#header{content_length =
+- Value});
+- _ -> {error, {invalid_content_length, ContentLength}}
++ Value})
+ end;
+ ["Connection:", "close"] ->
+ parse_header(Socket, Timeout,
+@@ -174,12 +175,12 @@
+ start_link(all, Port, MaxSessions, Timeout, Handler, State).
+
+ start_link(IP, Port, MaxSessions, Timeout, Handler, State) ->
+- OptionList = [{active, false}, {reuseaddr, true}|ip(IP)],
++ OptionList = [{active, false}, {reuseaddr, true}] ++ ip(IP),
+ SessionHandler = {xmlrpc_http, handler, [Timeout, Handler, State]},
+ tcp_serv:start_link([Port, MaxSessions, OptionList, SessionHandler]).
+
+ ip(all) -> [];
+-ip(IP) when tuple(IP) -> {ip, IP}.
++ip(IP) when tuple(IP) -> [{ip, IP}].
+
+ %% Exported: stop/1
+
+diff -ru xmlrpc-1.13/src/xmlrpc_decode.erl xmlrpc-1.13-ipr2/src/xmlrpc_decode.erl
+--- xmlrpc-1.13/src/xmlrpc_decode.erl 2003-04-23 23:06:45.000000000 +0400
++++ xmlrpc-1.13-ipr2/src/xmlrpc_decode.erl 2007-08-24 15:34:15.000000000 +0400
+@@ -28,7 +28,7 @@
+ -author('jocke at gleipnir.com').
+ -export([payload/1]).
+
+--include("xmerl.hrl").
++-include_lib("xmerl/include/xmerl.hrl").
+
+ payload(Payload) ->
+ case xmerl_scan:string(Payload) of
+diff -ru xmlrpc-1.13/src/xmlrpc_http.erl xmlrpc-1.13-ipr2/src/xmlrpc_http.erl
+--- xmlrpc-1.13/src/xmlrpc_http.erl 2003-04-23 23:06:45.000000000 +0400
++++ xmlrpc-1.13-ipr2/src/xmlrpc_http.erl 2007-08-22 01:17:39.000000000 +0400
+@@ -96,6 +96,9 @@
+ {"Content-Type:", "text/xml"} ->
+ parse_header(Socket, Timeout,
+ Header#header{content_type = "text/xml"});
++ {"Content-Type:", "text/xml; charset=utf-8"} ->
++ parse_header(Socket, Timeout,
++ Header#header{content_type = "text/xml; charset=utf-8"});
+ {"Content-Type:", ContentType} -> {status, 415};
+ {"User-Agent:", UserAgent} ->
+ parse_header(Socket, Timeout,
+@@ -193,6 +196,7 @@
+ "Content-Length: ", integer_to_list(lists:flatlength(Payload)),
+ "\r\n",
+ "Server: Erlang/1.13\r\n",
++ "Content-Type: text/xml\r\n",
+ ExtraHeader, "\r\n",
+ Payload],
+ gen_tcp:send(Socket, Response).
+@@ -200,7 +204,7 @@
+ reason_phrase(200) -> "OK";
+ reason_phrase(400) -> "Bad Request";
+ reason_phrase(411) -> "Length required";
+-reason_phrase(415) -> "Unsupported Media Type";
++reason_phrase(415) -> "Unsupported Media Type";
+ reason_phrase(500) -> "Internal Server Error";
+ reason_phrase(501) -> "Not Implemented";
+ reason_phrase(505) -> "HTTP Version not supported".
More information about the scm-commits
mailing list