Hello community,
here is the log from the commit of package libcomps for openSUSE:Factory checked in at 2019-04-01 12:39:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcomps (Old)
and /work/SRC/openSUSE:Factory/.libcomps.new.25356 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcomps"
Mon Apr 1 12:39:48 2019 rev:5 rq:690191 version:0.1.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/libcomps/libcomps.changes 2019-02-27 15:09:08.234392423 +0100
+++ /work/SRC/openSUSE:Factory/.libcomps.new.25356/libcomps.changes 2019-04-01 12:39:50.825957784 +0200
@@ -1,0 +2,11 @@
+Sun Mar 31 14:53:26 UTC 2019 - Neal Gompa
+
+- Upgrade to 0.1.11
+ + Fix missing braces
+ + Fix UAF in comps_objmrtree_unite function
+- Drop merged patches
+ * 0001-Fix-Missing-braces.patch
+ * 0002-Fix-UAF-in-comps_objmrtree_unite-function.patch
+ * libcomps-0.1.7-Add-zlib-as-an-explicit-dependency.patch
+
+-------------------------------------------------------------------
Old:
----
0001-Fix-Missing-braces.patch
0002-Fix-UAF-in-comps_objmrtree_unite-function.patch
libcomps-0.1.7-Add-zlib-as-an-explicit-dependency.patch
libcomps-0.1.9.tar.gz
New:
----
libcomps-0.1.11.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libcomps.spec ++++++
--- /var/tmp/diff_new_pack.WWT5oT/_old 2019-04-01 12:39:51.989958349 +0200
+++ /var/tmp/diff_new_pack.WWT5oT/_new 2019-04-01 12:39:51.989958349 +0200
@@ -19,7 +19,7 @@
%define major 0
%define minor 1
-%define patch 9
+%define patch 11
%define libname %{name}%{major}_%{minor}_%{patch}
%define devname %{name}-devel
@@ -32,16 +32,6 @@
URL: https://github.com/rpm-software-management/libcomps
Source0: %{url}/archive/%{name}-%{version}/%{name}-%{version}.tar.gz
-# Patches from upstream
-# Fix missing braces
-Patch0001: 0001-Fix-Missing-braces.patch
-# Fix use after free in comps_objmrtree_unite() - CVE-2019-3817 - boo#1122841 - rh#1668005
-Patch0002: 0002-Fix-UAF-in-comps_objmrtree_unite-function.patch
-
-# openSUSE specific fixes
-# Fix zlib linking issues
-Patch1000: libcomps-0.1.7-Add-zlib-as-an-explicit-dependency.patch
-
BuildRequires: check-devel
BuildRequires: cmake
BuildRequires: fdupes
@@ -69,7 +59,7 @@
Summary: Development files for the libcomps library
Group: Development/Libraries/C and C++
Requires: %{libname}%{?_isa} = %{version}-%{release}
-Requires: pkg-config
+Requires: pkgconfig
%description -n %{devname}
This package provides the development files for %{name}.
++++++ libcomps-0.1.9.tar.gz -> libcomps-0.1.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/.tito/packages/.readme new/libcomps-libcomps-0.1.11/.tito/packages/.readme
--- old/libcomps-libcomps-0.1.9/.tito/packages/.readme 1970-01-01 01:00:00.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/.tito/packages/.readme 2019-03-11 08:09:27.000000000 +0100
@@ -0,0 +1,3 @@
+the .tito/packages directory contains metadata files
+named after their packages. Each file has the latest tagged
+version and the project's relative directory.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/.tito/tito.props new/libcomps-libcomps-0.1.11/.tito/tito.props
--- old/libcomps-libcomps-0.1.9/.tito/tito.props 1970-01-01 01:00:00.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/.tito/tito.props 2019-03-11 08:09:27.000000000 +0100
@@ -0,0 +1,5 @@
+[buildconfig]
+builder = tito.builder.Builder
+tagger = tito.tagger.VersionTagger
+changelog_do_not_remove_cherrypick = 0
+changelog_format = %s (%ae)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/README.md new/libcomps-libcomps-0.1.11/README.md
--- old/libcomps-libcomps-0.1.9/README.md 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/README.md 2019-03-11 08:09:27.000000000 +0100
@@ -16,6 +16,7 @@
for libcomps library:
+* zlib http://www.zlib.net/
* libxml2 http://www.xmlsoft.org/
* expat http://expat.sourceforge.net/
* gcc http://gcc.gnu.org/
@@ -32,35 +33,30 @@
* doxygen http://www.stack.nl/~dimitri/doxygen/
+for rpm building:
+
+* tito https://github.com/dgoodwin/tito
+
### Building
1. clone this repository
git clone https://github.com/midnightercz/libcomps.git
-2. run cmake
+2. from the checkout dir:
- - for python2 bindings run cmake build system with no params:
- cd
- cmake
- - for python3 bindings run cmake build system with PYTHON_DESIRED param:
- cd
- cmake -DPYTHON_DESIRED:str=3
-3. run make
+ mkdir build
+ cd build/
+ cmake ../libcomps -DPYTHON_DESIRED=3
+ (alternatively cmake ../libcomps -DPYTHON_DESIRED=3 for python2 bindings)
make
+3. building the documentation:
+
+ make docs
+ make pydocs
### Building rpm package
-1. run build\_prep.py for .spec file substitution and tarball creation:
- python build_prep.py
- or run the following code in Python:
- import build_prep
- build_prep.prepare()
-2. copy libcomps.spec and libcomps-(git_commit_rev).tar.xz to SPECS and
- SOURCES dirs
- cp libcomps-*.tar.xz /
- cp libcomps.spec /
-3. run rpmbuild. If you want build bindings only for specified verion of python
- edit top of libcomps.spec file:
- %global with_python 1
- %global with_python3 1
+You can use tito for building rpm package. From checkout dir:
+
+ tito build --rpm --test
### Installing
* After successful build run:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/build_prep.cmake new/libcomps-libcomps-0.1.11/build_prep.cmake
--- old/libcomps-libcomps-0.1.9/build_prep.cmake 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/build_prep.cmake 2019-03-11 08:09:27.000000000 +0100
@@ -169,6 +169,5 @@
set(GITCMD "git")
execute_process(COMMAND ${GITCMD} ${GITARG} OUTPUT_FILE ${archive_name})
-configure_file(libcomps.spec.in libcomps.spec)
configure_file(libcomps.pc.in libcomps.pc @ONLY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/build_prep.py new/libcomps-libcomps-0.1.11/build_prep.py
--- old/libcomps-libcomps-0.1.9/build_prep.py 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/build_prep.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,164 +0,0 @@
-#!/bin/env python
-import subprocess
-import sys
-import pprint
-import string
-import json
-from datetime import date
-
-def is_commit_tag(commit):
- p = subprocess.Popen(['git', 'describe',
- '--tags', "--exact-match", "%s"%commit],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- p.wait()
- if p.returncode is 0:
- return p.stdout.readline().strip()
- else:
- return None
-
-def tag_to_commit(tag):
- p = subprocess.Popen(['git', 'rev-parse', "%s^{commit}"%tag],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- p.wait()
- if p.returncode:
- return None
- x = p.stdout.readline().strip()
- return x
-
-def commits_date(commits):
- dates = []
- for c in commits:
- p = subprocess.Popen(['git', 'log', '-1', "--format=%at", "%s"%c],
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- p.wait()
- dates.append(int(p.stdout.read()))
- return dates
-
-def git_tags_chrono():
- p = subprocess.Popen(['git', 'tag'], stdout=subprocess.PIPE)
- p.wait()
- if p.returncode:
- return None
- tags = [x.strip() for x in p.stdout]
- dates = [commits_date([t]) for t in tags]
- return [z[0] for z in sorted(zip(tags, dates), key=lambda x: x[1])]
-
-def git_tags():
- p = subprocess.Popen(['git', 'tag'], stdout=subprocess.PIPE)
- if p.returncode:
- return None
- tags = [x.strip() for x in p.stdout]
- return tags
-
-def commits_for_tag(tags, tag):
- index = tags.index(tag)
- #print index
- if index == 0:
- prev = None
- else:
- prev = tags[index-1]
- prev = tag_to_commit(prev)
- tag = tag_to_commit(tag)
- #print prev
-
- commits = []
- p = subprocess.Popen(['git', 'rev-list', '--all'], stdout=subprocess.PIPE)
- start = False
- for x in p.stdout:
- x = x.strip()
- #print x,tag
- if not start and x == tag:
- start = True
- #print "start true"
- if start:
- commits.append(x)
- if x == prev:
- break
- return commits
-
-def log_for_commits(commits, _format=None):
- log = []
- if not _format:
- _args = ['git', 'log', '-1']
- else:
- _args = ['git', 'log', '-1', '--format=%s'%_format]
- for x in commits:
- #print x
- p = subprocess.Popen(_args + [x], stdout=subprocess.PIPE)
- log.append([x.rstrip("\n") for x in p.stdout])
- return log
-
-def format_chlog_msg(msg):
- msg = filter(lambda x: x != "", msg)
- for x in range(0, len(msg)):
- if not msg[x].startswith("- "):
- msg[x] = "- "+msg[x]
- return msg
-
-def build_chlog(tags ,top='HEAD'):
- f = open("chcommits", "r")
- chcommits = set([x.strip() for x in f])
- f.close()
-
- log = []
- for tag in tags:
- head = log_for_commits([tag], _format="%ct%n%cn <%ce>%n%B")
- head = ["*"]+head[0]
- head_body = head[3:]
- head = head[:3]
- head[1] = date.fromtimestamp(int(head[1])).strftime("%a %b %d %Y")
- head.append("-".join(tag.split("-")[1:]))
- #print head
-
- commits = commits_for_tag(tags, tag)
- loc_chcommits = list(chcommits & set(commits))
- loc_log = log_for_commits(loc_chcommits, _format="%B")
- _log = [" ".join(head)]
- _log.append("\n".join(format_chlog_msg(head_body)))
- for x in loc_log:
- _log.append("\n".join(format_chlog_msg(x)))
- _log.append("")
- #print _log
-
- log.append("\n".join(_log))
- return reversed(log)
-
-def prepare(ref='HEAD'):
- vfp = open("version.json", "r")
- version = json.load(vfp)
- vfp.close()
-
- subs = {}
- top_commit = subs["GITREVLONG"] = tag_to_commit(ref)
-
- subs.update(version)
- tags = git_tags_chrono()
- subs["CHANGELOG"] = "\n".join(build_chlog(tags, top_commit))
-
- tag = is_commit_tag(top_commit)
- if not tag:
- subs["SOURCE_URL_PATH"] = "archive/%{commit}/libcomps-%{commit}.tar.gz"
- archive_name = "libcomps-%s.tar.gz"%(top_commit,)
- else:
- subs["SOURCE_URL_PATH"] = tags[-1]+".tar.gz"
- archive_name = "%s.tar.gz"%(tag,)
-
- subs["VERSION"] = "%s.%s.%s" % (subs["libcomps_VERSION_MAJOR"],
- subs["libcomps_VERSION_MINOR"],
- subs["libcomps_VERSION_PATCH"])
- spec = open("libcomps.spec.in", "r")
- specstr_in = spec.read()
- spec.close()
- specstr_out = string.Template(specstr_in).safe_substitute(subs)
- spec = open("libcomps.spec", "w")
- spec.write(specstr_out)
- spec.close()
-
- p = subprocess.Popen(['git', 'archive', top_commit, "--format=tar.gz",
- "--prefix=libcomps-%s/"%(top_commit,), "-o",
- archive_name])#,
- #stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- p.wait()
-
-if __name__ == "__main__":
- prepare(next(iter(sys.argv[1:]), 'HEAD'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/CMakeLists.txt new/libcomps-libcomps-0.1.11/libcomps/CMakeLists.txt
--- old/libcomps-libcomps-0.1.9/libcomps/CMakeLists.txt 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/CMakeLists.txt 2019-03-11 08:09:27.000000000 +0100
@@ -22,12 +22,14 @@
FIND_LIBRARY(CHECK_LIBRARY NAMES check)
FIND_LIBRARY(EXPAT_LIBRARY NAMES expat)
+find_package(ZLIB REQUIRED)
find_package(LibXml2 REQUIRED)
find_package(EXPAT REQUIRED)
include_directories(${CHECK_INCLUDE_DIR})
include_directories(${EXPAT_INCLUDE_DIR})
include_directories(${LIBXML2_INCLUDE_DIR})
+include_directories(${ZLIB_INCLUDE_DIRS})
#add_custom_target(pytest DEPENDS pytest_run)
#add_custom_target(ctest DEPENDS test_comps_run test_parse_run)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/src/CMakeLists.txt new/libcomps-libcomps-0.1.11/libcomps/src/CMakeLists.txt
--- old/libcomps-libcomps-0.1.9/libcomps/src/CMakeLists.txt 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/src/CMakeLists.txt 2019-03-11 08:09:27.000000000 +0100
@@ -1,3 +1,4 @@
+include(GNUInstallDirs)
set (libcomps_SOURCES comps_doc.c comps_docgroup.c comps_doccategory.c
comps_docenv.c comps_docpackage.c comps_docgroupid.c
comps_obj.c comps_mm.c
@@ -43,6 +44,7 @@
add_library(libcomps SHARED ${libcomps_SOURCES})
target_link_libraries(libcomps ${EXPAT_LIBRARY})
target_link_libraries(libcomps ${LIBXML2_LIBRARIES})
+target_link_libraries(libcomps ${ZLIB_LIBRARIES})
target_link_libraries(libcomps m)
set_target_properties(libcomps PROPERTIES OUTPUT_NAME "comps")
set_target_properties(libcomps PROPERTIES SOVERSION ${VERSION})
@@ -52,7 +54,7 @@
IF (CMAKE_SIZEOF_VOID_P MATCHES "8")
SET (LIB_SUFFIX "64")
ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8")
-set (LIB_INST_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
+set (LIB_INST_DIR ${CMAKE_INSTALL_LIBDIR})
install (FILES ${libcomps_HEADERS} DESTINATION include/libcomps)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/src/comps_mradix.c new/libcomps-libcomps-0.1.11/libcomps/src/comps_mradix.c
--- old/libcomps-libcomps-0.1.9/libcomps/src/comps_mradix.c 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/src/comps_mradix.c 2019-03-11 08:09:27.000000000 +0100
@@ -177,7 +177,6 @@
struct Pair {
COMPS_HSList * subnodes;
char * key;
- char added;
} *pair, *parent_pair;
pair = malloc(sizeof(struct Pair));
@@ -195,7 +194,6 @@
parent_pair = (struct Pair*) it->data;
free(it);
- pair->added = 0;
for (it = tmp_subnodes->first; it != NULL; it=it->next) {
pair = malloc(sizeof(struct Pair));
pair->subnodes = ((COMPS_MRTreeData*)it->data)->subnodes;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/src/comps_objmradix.c new/libcomps-libcomps-0.1.11/libcomps/src/comps_objmradix.c
--- old/libcomps-libcomps-0.1.9/libcomps/src/comps_objmradix.c 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/src/comps_objmradix.c 2019-03-11 08:09:27.000000000 +0100
@@ -285,7 +285,6 @@
struct Pair {
COMPS_HSList * subnodes;
char * key;
- char added;
} *pair, *parent_pair;
pair = malloc(sizeof(struct Pair));
@@ -303,7 +302,6 @@
parent_pair = (struct Pair*) it->data;
free(it);
- pair->added = 0;
for (it = tmp_subnodes->first; it != NULL; it=it->next) {
pair = malloc(sizeof(struct Pair));
pair->subnodes = ((COMPS_ObjMRTreeData*)it->data)->subnodes;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/src/comps_objradix.c new/libcomps-libcomps-0.1.11/libcomps/src/comps_objradix.c
--- old/libcomps-libcomps-0.1.9/libcomps/src/comps_objradix.c 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/src/comps_objradix.c 2019-03-11 08:09:27.000000000 +0100
@@ -697,7 +697,6 @@
struct Pair {
COMPS_HSList * subnodes;
char * key;
- char added;
} *pair, *parent_pair;
pair = malloc(sizeof(struct Pair));
@@ -716,7 +715,6 @@
//printf("key-part:%s\n", parent_pair->key);
free(it);
- //pair->added = 0;
for (it = tmp_subnodes->first; it != NULL; it=it->next) {
pair = malloc(sizeof(struct Pair));
pair->subnodes = ((COMPS_ObjRTreeData*)it->data)->subnodes;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/src/comps_radix.c new/libcomps-libcomps-0.1.11/libcomps/src/comps_radix.c
--- old/libcomps-libcomps-0.1.9/libcomps/src/comps_radix.c 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/src/comps_radix.c 2019-03-11 08:09:27.000000000 +0100
@@ -529,7 +529,6 @@
struct Pair {
COMPS_HSList * subnodes;
char * key;
- char added;
} *pair, *parent_pair;
pair = malloc(sizeof(struct Pair));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/src/python/docs/doc-sources/conf.py new/libcomps-libcomps-0.1.11/libcomps/src/python/docs/doc-sources/conf.py
--- old/libcomps-libcomps-0.1.9/libcomps/src/python/docs/doc-sources/conf.py 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/src/python/docs/doc-sources/conf.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,265 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# x documentation build configuration file, created by
-# sphinx-quickstart on Mon Dec 9 16:34:26 2013.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys, os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-
-import ctypes
-clibcomps = ctypes.cdll.LoadLibrary("/home/jluza/libcomps/libcomps-build/src/libcomps.so.0.1.6")
-os.environ['LD_LIBRARY_PATH'] = "%s" % "/home/jluza/libcomps/libcomps-build/src"
-print os.environ['LD_LIBRARY_PATH']
-
-sys.path.insert(0, os.path.abspath("/home/jluza/libcomps/libcomps-build/src/python/src/python2"))
-import libcomps
-
-# -- General configuration -----------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath']
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = u'libcomps'
-copyright = u'RedHat 2013'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '0.1.6'
-# The full version, including alpha/beta/rc tags.
-release = ("0." "1."
- "6-" "9")
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-
-autodoc_member_order = "groupwise"
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = []
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-
-# -- Options for HTML output ---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-html_theme = 'default'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'xdoc'
-
-
-# -- Options for LaTeX output --------------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
-latex_documents = [
- ('index', 'x.tex', u'x Documentation',
- u'x', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output --------------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- ('index', 'x', u'x Documentation',
- [u'x'], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output ------------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- ('index', 'x', u'x Documentation',
- u'x', 'x', 'One line description of project.',
- 'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
-
-
-def skip(app, what, name, obj, skip, options):
- if what == "module" and type(obj).__name__ == "builtin_function_or_method":
- return False
- if name == "__init__":
- return type(obj).__name__ == "wrapper_descriptor"
- return skip
-def setup(app):
- app.connect("autodoc-skip-member", skip)
-
-# Example configuration for intersphinx: refer to the Python standard library.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/src/python/docs/doc-sources/conf.py.in new/libcomps-libcomps-0.1.11/libcomps/src/python/docs/doc-sources/conf.py.in
--- old/libcomps-libcomps-0.1.9/libcomps/src/python/docs/doc-sources/conf.py.in 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/src/python/docs/doc-sources/conf.py.in 2019-03-11 08:09:27.000000000 +0100
@@ -32,7 +32,7 @@
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath']
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/tests/check_objrtree.c new/libcomps-libcomps-0.1.11/libcomps/tests/check_objrtree.c
--- old/libcomps-libcomps-0.1.9/libcomps/tests/check_objrtree.c 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/tests/check_objrtree.c 2019-03-11 08:09:27.000000000 +0100
@@ -60,9 +60,10 @@
}
while (!feof(f)) {
memset(buffer, 0, 100);
- if (!fgets(buffer, 100, f))
+ if (!fgets(buffer, 100, f)) {
fclose(f);
return rt;
+ }
buffer[strlen(buffer)-1] =0;
//printf("buffer:%s\n", buffer);
pch = strrchr(buffer, '-');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps/version.cmake new/libcomps-libcomps-0.1.11/libcomps/version.cmake
--- old/libcomps-libcomps-0.1.9/libcomps/version.cmake 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps/version.cmake 2019-03-11 08:09:27.000000000 +0100
@@ -1,5 +1,5 @@
set (libcomps_VERSION_MAJOR 0)
set (libcomps_VERSION_MINOR 1)
-set (libcomps_VERSION_PATCH 9)
+set (libcomps_VERSION_PATCH 11)
set (libcomps_RELEASE 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps.spec new/libcomps-libcomps-0.1.11/libcomps.spec
--- old/libcomps-libcomps-0.1.9/libcomps.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps.spec 2019-03-11 08:09:27.000000000 +0100
@@ -0,0 +1,191 @@
+# Do not build python3 bindings for RHEL <= 7
+%if 0%{?rhel} && 0%{?rhel} <= 7
+%bcond_with python3
+%else
+%bcond_without python3
+%endif
+
+# Do not build python2 bindings for RHEL > 7 and Fedora > 29
+%if 0%{?rhel} > 7 || 0%{?fedora} > 29
+%bcond_with python2
+%else
+%bcond_without python2
+%endif
+
+Name: libcomps
+Version: 0.1.11
+Release: 1%{?dist}
+Summary: Comps XML file manipulation library
+
+License: GPLv2+
+URL: https://github.com/rpm-software-management/libcomps
+Source0: %{url}/archive/%{name}-%{version}/%{name}-%{version}.tar.gz
+
+BuildRequires: gcc-c++
+BuildRequires: cmake
+BuildRequires: gcc
+BuildRequires: libxml2-devel
+BuildRequires: check-devel
+BuildRequires: expat-devel
+BuildRequires: zlib-devel
+
+%description
+Libcomps is library for structure-like manipulation with content of
+comps XML files. Supports read/write XML file, structure(s) modification.
+
+%package devel
+Summary: Development files for libcomps library
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+Development files for libcomps library.
+
+%package doc
+Summary: Documentation files for libcomps library
+Requires: %{name} = %{version}-%{release}
+BuildArch: noarch
+BuildRequires: doxygen
+
+%description doc
+Documentation files for libcomps library.
+
+%package -n python-%{name}-doc
+Summary: Documentation files for python bindings libcomps library
+Requires: %{name} = %{version}-%{release}
+BuildArch: noarch
+%if %{with python3}
+BuildRequires: python3-sphinx
+%endif
+%if %{with python2}
+%if 0%{?rhel} && 0%{?rhel} <= 7
+BuildRequires: python-sphinx
+%else
+BuildRequires: python2-sphinx
+%endif
+%endif
+
+%description -n python-%{name}-doc
+Documentation files for python bindings libcomps library.
+
+%if %{with python2}
+%package -n python2-%{name}
+Summary: Python 2 bindings for libcomps library
+%{?python_provide:%python_provide python2-%{name}}
+BuildRequires: python2-devel
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description -n python2-%{name}
+Python 2 bindings for libcomps library.
+%endif
+
+%if %{with python3}
+%package -n python3-%{name}
+Summary: Python 3 bindings for libcomps library
+BuildRequires: python3-devel
+%{?python_provide:%python_provide python3-%{name}}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Obsoletes: platform-python-%{name} < %{version}-%{release}
+
+%description -n python3-%{name}
+Python3 bindings for libcomps library.
+%endif
+
+%prep
+%autosetup -n %{name}-%{name}-%{version}
+
+%if %{with python2}
+mkdir build-py2
+%endif
+%if %{with python3}
+mkdir build-py3
+%endif
+mkdir build-doc
+
+%build
+%if %{with python2}
+pushd build-py2
+ %cmake ../libcomps/ -DPYTHON_DESIRED:STRING=2
+ %make_build
+popd
+%endif
+
+%if %{with python3}
+pushd build-py3
+ %cmake ../libcomps/ -DPYTHON_DESIRED:STRING=3
+ %make_build
+popd
+%endif
+
+pushd build-doc
+%if %{with python2}
+ %cmake ../libcomps/ -DPYTHON_DESIRED:STRING=2
+%else
+%if %{with python3}
+ %cmake ../libcomps/ -DPYTHON_DESIRED:STRING=3
+%endif
+%endif
+ make %{?_smp_mflags} docs
+ make %{?_smp_mflags} pydocs
+popd
+
+%install
+%if %{with python2}
+pushd build-py2
+ %make_install
+popd
+%endif
+
+%if %{with python3}
+pushd build-py3
+ %make_install
+popd
+%endif
+
+%check
+%if %{with python2}
+pushd build-py2
+ make test
+ make pytest
+popd
+%endif
+
+%if %{with python3}
+pushd build-py3
+ make test
+ make pytest
+popd
+%endif
+
+%if %{undefined ldconfig_scriptlets}
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+%else
+%ldconfig_scriptlets
+%endif
+
+%files
+%license COPYING
+%doc README.md
+%{_libdir}/%{name}.so.*
+
+%files devel
+%{_libdir}/%{name}.so
+%{_includedir}/%{name}/
+
+%files doc
+%doc build-doc/docs/libcomps-doc/html
+
+%files -n python-%{name}-doc
+%doc build-doc/src/python/docs/html
+
+%if %{with python2}
+%files -n python2-%{name}
+%{python2_sitearch}/%{name}/
+%endif
+
+%if %{with python3}
+%files -n python3-%{name}
+%{python3_sitearch}/%{name}/
+%endif
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/libcomps.spec.in new/libcomps-libcomps-0.1.11/libcomps.spec.in
--- old/libcomps-libcomps-0.1.9/libcomps.spec.in 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/libcomps.spec.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,156 +0,0 @@
-%global commit ${GITREVLONG}
-
-%if 0%{?rhel} && 0%{?rhel} <= 7
-%define python3_build 0
-#%{!?__python2: %global __python2 /usr/bin/python2}
-#%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
-#%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
-%else
-%define python3_build 1
-%endif
-
-
-Name: libcomps
-Version: ${VERSION}
-Release: ${libcomps_RELEASE}%{?dist}
-Summary: Comps XML file manipulation library
-
-Group: Development/Libraries
-License: GPLv2+
-URL: https://github.com/midnightercz/libcomps/
-Source0: https://github.com/midnightercz/libcomps/${SOURCE_URL_PATH}
-BuildRequires: libxml2-devel
-BuildRequires: check-devel
-BuildRequires: expat-devel
-#%if 0%{?rhel} == 6
-#BuildRequires: cmake28
-#%else
-BuildRequires: cmake
-#%endif
-
-%description
-Libcomps is library for structure-like manipulation with content of
-comps XML files. Supports read/write XML file, structure(s) modification.
-
-%package doc
-Summary: Documentation files for libcomps library
-Group: Documentation
-Requires: %{name} = %{version}-%{release}
-BuildArch: noarch
-BuildRequires: doxygen
-
-%description doc
-Documentation files for libcomps library
-
-%package -n python-libcomps-doc
-Summary: Documentation files for python bindings libcomps library
-Group: Documentation
-Requires: %{name} = %{version}-%{release}
-BuildArch: noarch
-BuildRequires: python-sphinx
-
-%description -n python-libcomps-doc
-Documentation files for python bindings libcomps library
-
-%package devel
-Summary: Development files for libcomps library
-Group: Development/Libraries
-Requires: %{name}%{?_isa} = %{version}-%{release}
-
-%description devel
-Development files for libcomps library
-
-%package -n python-libcomps
-Summary: Python2 bindings for libcomps library
-Group: Development/Libraries
-BuildRequires: python-devel
-Requires: %{name}%{?_isa} = %{version}-%{release}
-
-%description -n python-libcomps
-Python2 bindings for libcomps library
-
-%if %python3_build
-%package -n python3-libcomps
-Summary: Python3 bindings for libcomps library
-Group: Development/Libraries
-BuildRequires: python3-devel
-Requires: %{name}%{?_isa} = %{version}-%{release}
-
-%description -n python3-libcomps
-Python3 bindings for libcomps library
-%endif
-
-%prep
-%setup -qn %{name}-%{commit}
-
-%if %python3_build == 1
-rm -rf py3
-mkdir ../py3
-cp -a . ../py3/
-mv ../py3 ./
-%endif
-
-%build
-%cmake -DPYTHON_DESIRED:STRING=2 libcomps/
-make %{?_smp_mflags}
-make %{?_smp_mflags} docs
-make %{?_smp_mflags} pydocs
-
-%if %python3_build == 1
-pushd py3
-%cmake -DPYTHON_DESIRED:STRING=3 libcomps/
-make %{?_smp_mflags}
-popd
-%endif
-
-
-%check
-make test
-%if %{python3_build}
-pushd py3
-make pytest
-popd
-%endif
-
-%install
-make install DESTDIR=%{buildroot}
-
-%if %{python3_build}
-pushd py3
-make install DESTDIR=%{buildroot}
-popd
-%endif
-
-%clean
-rm -rf $buildroot
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%files
-%{_libdir}/libcomps.so.*
-%doc README.md COPYING
-
-%files devel
-%{_libdir}/libcomps.so
-%{_includedir}/*
-
-%files doc
-%doc docs/libcomps-doc/html
-
-%files -n python-libcomps-doc
-%doc src/python/docs/html
-
-%files -n python-libcomps
-%{_libdir}/python2*
-#%exclude %{_libdir}/python2/libcomps/__pycache__
-
-%if %{python3_build}
-%files -n python3-libcomps
-%{_libdir}/python3*
-#%exclude %{_libdir}/python3/libcomps/__pycache__
-%endif
-
-%changelog
-${CHANGELOG}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/rel-eng/packages/libcomps new/libcomps-libcomps-0.1.11/rel-eng/packages/libcomps
--- old/libcomps-libcomps-0.1.9/rel-eng/packages/libcomps 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/rel-eng/packages/libcomps 2019-03-11 08:09:27.000000000 +0100
@@ -1 +1 @@
-0.1.1-1 ./
+0.1.11-1 ./
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcomps-libcomps-0.1.9/version.json new/libcomps-libcomps-0.1.11/version.json
--- old/libcomps-libcomps-0.1.9/version.json 2018-12-12 13:36:35.000000000 +0100
+++ new/libcomps-libcomps-0.1.11/version.json 2019-03-11 08:09:27.000000000 +0100
@@ -1,6 +1,6 @@
{
- "libcomps_VERSION_MAJOR": 0,
- "libcomps_RELEASE": 1,
- "libcomps_VERSION_MINOR": 1,
- "libcomps_VERSION_PATCH": 9
-}
\ No newline at end of file
+ "libcomps_VERSION_MAJOR": 0,
+ "libcomps_RELEASE": 1,
+ "libcomps_VERSION_MINOR": 1,
+ "libcomps_VERSION_PATCH": 11
+}