Browse Source

initial package creation

Signed-off-by: Toshaan Bharvani <toshaan@powerel.org>
master
Toshaan Bharvani 3 months ago
commit
f676f12ed9
  1. 218
      SOURCES/rest-0.8.0-fix-the-XML-test.patch
  2. 251
      SPECS/rest.spec

218
SOURCES/rest-0.8.0-fix-the-XML-test.patch

@ -0,0 +1,218 @@ @@ -0,0 +1,218 @@
From a09ea6bd74d6234be8456e7039403bc1c1d078bd Mon Sep 17 00:00:00 2001
From: Christophe Fergeau <cfergeau@redhat.com>
Date: Mon, 20 Jun 2016 12:05:48 +0200
Subject: [PATCH 1/4] xml-node: Use GString in rest_xml_node_print()

The current code is using xml = g_strconcat (xml, ...) which is causing
some leaks as g_strconcat returns a newly allocated string. Using
GString avoids this issue without constantly freeing the intermediate
strings.

This fixes multiple leaks like:

==16611== 18 bytes in 1 blocks are definitely lost in loss record 124 of 301
==16611== at 0x4C2BBAD: malloc (vg_replace_malloc.c:299)
==16611== by 0x5F5CE58: g_malloc (gmem.c:94)
==16611== by 0x5F75B8E: g_strconcat (gstrfuncs.c:585)
==16611== by 0x4E450CF: rest_xml_node_print (rest-xml-node.c:287)
==16611== by 0x4E451DA: rest_xml_node_print (rest-xml-node.c:305)
==16611== by 0x4E450F8: rest_xml_node_print (rest-xml-node.c:292)
==16611== by 0x4009A0: main (xml.c:40)
---
rest/rest-xml-node.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/rest/rest-xml-node.c b/rest/rest-xml-node.c
index 57a942667f06..a8156dbbd432 100644
--- a/rest/rest-xml-node.c
+++ b/rest/rest-xml-node.c
@@ -283,38 +283,41 @@ rest_xml_node_print (RestXmlNode *node)
{
GHashTableIter iter;
gpointer key, value;
- char *xml = g_strconcat ("<", node->name, NULL);
+ GString *xml = g_string_new (NULL);
RestXmlNode *n;
+ g_string_append (xml, "<");
+ g_string_append (xml, node->name);
+
g_hash_table_iter_init (&iter, node->attrs);
while (g_hash_table_iter_next (&iter, &key, &value))
- xml = g_strconcat (xml, " ", key, "=\'", value, "\'", NULL);
+ g_string_append_printf (xml, " %s =\'%s\'", (char *)key, (char *)value);
- xml = g_strconcat (xml, ">", NULL);
+ g_string_append (xml, ">");
g_hash_table_iter_init (&iter, node->children);
while (g_hash_table_iter_next (&iter, &key, &value))
{
char *child = rest_xml_node_print ((RestXmlNode *) value);
- xml = g_strconcat (xml, child, NULL);
+ g_string_append (xml, child);
g_free (child);
}
if (node->content)
- xml = g_strconcat (xml, node->content, "</", node->name, ">", NULL);
- else
- xml = g_strconcat (xml, "</", node->name, ">", NULL);
+ g_string_append (xml, node->content);
+
+ g_string_append_printf (xml, "</%s>", node->name);
for (n = node->next; n; n = n->next)
{
char *sibling = rest_xml_node_print (n);
- xml = g_strconcat (xml, sibling, NULL);
+ g_string_append (xml, sibling);
g_free (sibling);
}
- return xml;
+ return g_string_free (xml, FALSE);
}
/**
--
2.14.2


From a34d02947c4f102e6d16b9d328941a4b2946c8e8 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 13 Oct 2017 18:53:39 +0200
Subject: [PATCH 2/4] xml-node: Remove stray blank space

This had broken tests/xml.c.

Fallout from 61a7b231bd8b9d1b8d02dca120389e79d38b428d

https://bugzilla.gnome.org/show_bug.cgi?id=788960
---
rest/rest-xml-node.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rest/rest-xml-node.c b/rest/rest-xml-node.c
index a8156dbbd432..d3a7c995affd 100644
--- a/rest/rest-xml-node.c
+++ b/rest/rest-xml-node.c
@@ -291,7 +291,7 @@ rest_xml_node_print (RestXmlNode *node)
g_hash_table_iter_init (&iter, node->attrs);
while (g_hash_table_iter_next (&iter, &key, &value))
- g_string_append_printf (xml, " %s =\'%s\'", (char *)key, (char *)value);
+ g_string_append_printf (xml, " %s=\'%s\'", (char *)key, (char *)value);
g_string_append (xml, ">");
--
2.14.2


From f184db2bff0618b99c4de3316082fe80439f124c Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 13 Oct 2017 19:14:16 +0200
Subject: [PATCH 3/4] xml-node: Define the order in which attributes & children
are printed

The order in which GHashTable returns its key-value pairs is undefined.
Therefore the output of rest_xml_node_print can change based on the
GHashTable implementation. While not strictly necessary, it would be
nice to avoid that. Having a stable order, even if it is not
documented and depends on the current RestXmlNode code, is handy for
testing.

This was the main reason behind the tests/xml.c breakage.

https://bugzilla.gnome.org/show_bug.cgi?id=788960
---
rest/rest-xml-node.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/rest/rest-xml-node.c b/rest/rest-xml-node.c
index d3a7c995affd..973ebcf6c3fa 100644
--- a/rest/rest-xml-node.c
+++ b/rest/rest-xml-node.c
@@ -283,6 +283,9 @@ rest_xml_node_print (RestXmlNode *node)
{
GHashTableIter iter;
gpointer key, value;
+ GList *attrs = NULL;
+ GList *children = NULL;
+ GList *l;
GString *xml = g_string_new (NULL);
RestXmlNode *n;
@@ -291,13 +294,29 @@ rest_xml_node_print (RestXmlNode *node)
g_hash_table_iter_init (&iter, node->attrs);
while (g_hash_table_iter_next (&iter, &key, &value))
- g_string_append_printf (xml, " %s=\'%s\'", (char *)key, (char *)value);
+ {
+ char *attr = g_strdup_printf ("%s=\'%s\'", (char *)key, (char *)value);
+ attrs = g_list_prepend (attrs, attr);
+ }
+
+ attrs = g_list_sort (attrs, (GCompareFunc) g_strcmp0);
+ for (l = attrs; l; l = l->next)
+ {
+ const char *attr = (const char *) l->data;
+ g_string_append_printf (xml, " %s", attr);
+ }
g_string_append (xml, ">");
g_hash_table_iter_init (&iter, node->children);
while (g_hash_table_iter_next (&iter, &key, &value))
+ children = g_list_prepend (children, key);
+
+ children = g_list_sort (children, (GCompareFunc) g_strcmp0);
+ for (l = children; l; l = l->next)
{
+ const char *name = (const char *) l->data;
+ RestXmlNode *value = (RestXmlNode *) g_hash_table_lookup (node->children, name);
char *child = rest_xml_node_print ((RestXmlNode *) value);
g_string_append (xml, child);
@@ -317,6 +336,8 @@ rest_xml_node_print (RestXmlNode *node)
g_free (sibling);
}
+ g_list_free_full (attrs, g_free);
+ g_list_free (children);
return g_string_free (xml, FALSE);
}
--
2.14.2


From e5ee6ef751ee5a38d7b9fadcd631cf6ecec7b240 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 13 Oct 2017 19:16:55 +0200
Subject: [PATCH 4/4] tests: Re-enable the XML test

This reverts commit 2d1dbfe7073b1e153ff881426b40a9a517fb796b

https://bugzilla.gnome.org/show_bug.cgi?id=788960
---
tests/Makefile.am | 2 --
1 file changed, 2 deletions(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5d77f9cf5445..5ffdd4634e9a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,6 +1,4 @@
TESTS = proxy proxy-continuous threaded oauth oauth-async oauth2 flickr lastfm xml custom-serialize
-# TODO: fix this test case
-XFAIL_TESTS = xml
AM_CPPFLAGS = $(SOUP_CFLAGS) -I$(top_srcdir) $(GCOV_CFLAGS)
AM_LDFLAGS = $(SOUP_LIBS) $(GCOV_LDFLAGS) \
--
2.14.2

251
SPECS/rest.spec

@ -0,0 +1,251 @@ @@ -0,0 +1,251 @@
Name: rest
Version: 0.8.1
Release: 11%{?dist}
Summary: A library for access to RESTful web services

License: LGPLv2
URL: http://www.gnome.org
Source0: http://download.gnome.org/sources/%{name}/0.8/%{name}-%{version}.tar.xz

# https://bugzilla.redhat.com/show_bug.cgi?id=1445700
Patch0: rest-0.8.0-fix-the-XML-test.patch

BuildRequires: make
BuildRequires: glib2-devel
BuildRequires: gobject-introspection-devel
BuildRequires: libsoup-devel
BuildRequires: libxml2-devel
BuildRequires: gtk-doc
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool

%description
This library was designed to make it easier to access web services that
claim to be "RESTful". A RESTful service should have urls that represent
remote objects, which methods can then be called on. The majority of services
don't actually adhere to this strict definition. Instead, their RESTful end
point usually has an API that is just simpler to use compared to other types
of APIs they may support (XML-RPC, for instance). It is this kind of API that
this library is attempting to support.

%package devel
Summary: Development package for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}

%description devel
Files for development with %{name}.

%prep
%setup -q
%patch0 -p1

%build
autoreconf -vif
%configure --disable-static --enable-gtk-doc --enable-introspection=yes

make %{?_smp_mflags} V=1

%install
make install DESTDIR=%{buildroot} INSTALL='install -p'

#Remove libtool archives.
find %{buildroot} -type f -name "*.la" -delete

%ldconfig_scriptlets

%files
%license COPYING
%doc AUTHORS README
%{_libdir}/librest-0.7.so.0
%{_libdir}/librest-0.7.so.0.0.0
%{_libdir}/librest-extras-0.7.so.0
%{_libdir}/librest-extras-0.7.so.0.0.0
%{_libdir}/girepository-1.0/Rest-0.7.typelib
%{_libdir}/girepository-1.0/RestExtras-0.7.typelib

%files devel
%{_includedir}/rest-0.7
%{_libdir}/pkgconfig/rest*
%{_libdir}/librest-0.7.so
%{_libdir}/librest-extras-0.7.so
%{_datadir}/gtk-doc/html/%{name}*0.7
%{_datadir}/gir-1.0/Rest-0.7.gir
%{_datadir}/gir-1.0/RestExtras-0.7.gir

%changelog
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 0.8.1-11
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688

* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.8.1-10
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Thu Jun 07 2018 Debarshi Ray <rishi@fedoraproject.org> - 0.8.1-3
- Fix the XML test

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Tue Oct 17 2017 Debarshi Ray <rishi@fedoraproject.org> - 0.8.1-1
- Update to 0.8.1

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Mon Apr 18 2016 Christophe Fergeau <cfergeau@redhat.com> 0.8.0-1
- Update to 0.8.0 upstream release

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.93-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.93-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Wed Mar 18 2015 Kalev Lember <kalevlember@gmail.com> - 0.7.93-1
- Update to 0.7.93
- Tighten deps with the _isa macro
- Don't manually require pkgconfig; rpmbuild generates this automatically
- Use license macro for the COPYING file

* Fri Jan 9 2015 Debarshi Ray <rishi@fedoraproject.org> 0.7.92-6
- Backport upstream patch to fix a memory error (GNOME #742644)

* Wed Sep 3 2014 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.92-5
- Update to 0.7.92

* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.91-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Wed Aug 6 2014 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.91-4
- Drop old patch that doesn't appear to be needed any more and causes build issues

* Tue Jul 22 2014 Kalev Lember <kalevlember@gmail.com> - 0.7.91-3
- Rebuilt for gobject-introspection 1.41.4

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.91-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Tue Mar 11 2014 Richard Hughes <rhughes@redhat.com> - 0.7.91-1
- Update to 0.7.91

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.90-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Tue Jul 16 2013 Matthias Clasen <mclasen@redhat.com> 0.7.90-4
- Rebuild with newer gtk-doc to fix multilib issue

* Sat Apr 13 2013 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.90-3
- Run autoreconf for aarch64 (RHBZ 926440)

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.90-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Tue Aug 14 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 0.7.90-1
- Release 0.7.90

* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.12-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Thu Nov 10 2011 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.12-1
- Release 0.7.12. Fixes CVE-2011-4129 RHBZ 752022

* Fri Oct 28 2011 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.11-1
- Release 0.7.11

* Sun Apr 24 2011 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.10-1
- Update to 0.7.10

* Sun Apr 3 2011 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.9-1
- Update to 0.7.9

* Wed Mar 23 2011 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.8-1
- Update to 0.7.8

* Tue Feb 22 2011 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.6-1
- Update to 0.7.6

* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Thu Nov 25 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.5-1
- Update to 0.7.5
- Now its on gnome we have official tar file releases

* Wed Sep 29 2010 jkeating - 0.7.3-2
- Rebuilt for gcc bug 634757

* Wed Sep 15 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.3-1
- Update to 0.7.3

* Mon Aug 30 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.2-1
- Update to 0.7.2

* Thu Aug 5 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.7.0-1
- Update to 0.7.0

* Sun Jul 11 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.6.4-1
- Update to 0.6.4

* Wed May 12 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.6.3-2
- some cleanups and fixes

* Wed May 12 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.6.3-1
- Update to 0.6.3, update url and source details, enable introspection

* Mon Feb 15 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.6.1-4
- Add patch to fix DSO linking. Fixes bug 564764

* Mon Jan 25 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.6.1-3
- Bump build

* Mon Jan 25 2010 Peter Robinson <pbrobinson@fedoraproject.org> 0.6.1-2
- Move to official tarball release of 0.6.1

* Sat Oct 10 2009 Peter Robinson <pbrobinson@fedoraproject.org> 0.6.1-1
- New upstream 0.6.1 release

* Wed Aug 19 2009 Peter Robinson <pbrobinson@fedoraproject.org> 0.6-1
- New upstream 0.6 release

* Fri Aug 7 2009 Peter Robinson <pbrobinson@fedoraproject.org> 0.5-3
- A few minor spec file cleanups

* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Tue Jul 14 2009 Peter Robinson <pbrobinson@fedoraproject.org> 0.5-1
- Update to 0.5

* Mon Jun 22 2009 Peter Robinson <pbrobinson@fedoraproject.org> 0.4-1
- Update to 0.4

* Wed Jun 17 2009 Peter Robinson <pbrobinson@fedoraproject.org> 0.3-1
- Initial packaging
Loading…
Cancel
Save