Hello community, here is the log from the commit of package createrepo_c for openSUSE:Factory checked in at 2020-02-21 16:39:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/createrepo_c (Old) and /work/SRC/openSUSE:Factory/.createrepo_c.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "createrepo_c" Fri Feb 21 16:39:31 2020 rev:10 rq:775199 version:0.15.7 Changes: -------- --- /work/SRC/openSUSE:Factory/createrepo_c/createrepo_c.changes 2020-01-21 20:57:13.676761206 +0100 +++ /work/SRC/openSUSE:Factory/.createrepo_c.new.26092/createrepo_c.changes 2020-02-21 16:39:32.973696357 +0100 @@ -1,0 +2,7 @@ +Tue Feb 18 13:27:23 UTC 2020 - Neal Gompa <[email protected]> + +- Update to 0.15.7 + + Add relogin_suggested to updatecollectionpackage (rh#1779751) + + Support issued date in epoch format in Python API (rh#1779751) + +------------------------------------------------------------------- Old: ---- createrepo_c-0.15.6.tar.gz New: ---- createrepo_c-0.15.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ createrepo_c.spec ++++++ --- /var/tmp/diff_new_pack.50Aoev/_old 2020-02-21 16:39:33.481697373 +0100 +++ /var/tmp/diff_new_pack.50Aoev/_new 2020-02-21 16:39:33.497697405 +0100 @@ -54,7 +54,7 @@ %define devname lib%{name}-devel Name: createrepo_c -Version: 0.15.6 +Version: 0.15.7 Release: 0 Summary: RPM repository metadata generation utility License: GPL-2.0-or-later ++++++ createrepo_c-0.15.6.tar.gz -> createrepo_c-0.15.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/CMakeLists.txt new/createrepo_c-0.15.7/CMakeLists.txt --- old/createrepo_c-0.15.6/CMakeLists.txt 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/CMakeLists.txt 2020-02-14 20:51:12.000000000 +0100 @@ -47,9 +47,13 @@ # Add include dirs +include_directories(${BZIP2_INCLUDE_DIRS}) +include_directories(${CURL_INCLUDE_DIRS}) +include_directories(${EXPAT_INCLUDE_DIRS}) include_directories(${GLIB2_INCLUDE_DIRS}) include_directories(${LIBXML2_INCLUDE_DIR}) include_directories(${OPENSSL_INCLUDE_DIR}) +include_directories(${ZLIB_INCLUDE_DIR}) IF (RPM_PATH) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/VERSION.cmake new/createrepo_c-0.15.7/VERSION.cmake --- old/createrepo_c-0.15.6/VERSION.cmake 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/VERSION.cmake 2020-02-14 20:51:12.000000000 +0100 @@ -1,3 +1,3 @@ SET(CR_MAJOR "0") SET(CR_MINOR "15") -SET(CR_PATCH "6") +SET(CR_PATCH "7") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/cmake/Modules/FindGLIB2.cmake new/createrepo_c-0.15.7/cmake/Modules/FindGLIB2.cmake --- old/createrepo_c-0.15.6/cmake/Modules/FindGLIB2.cmake 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/cmake/Modules/FindGLIB2.cmake 2020-02-14 20:51:12.000000000 +0100 @@ -1,235 +1,100 @@ -# - Try to find GLib2 -# Once done this will define +#.rst: +# FindGLIB2 +# --------- # -# GLIB2_FOUND - system has GLib2 -# GLIB2_INCLUDE_DIRS - the GLib2 include directory -# GLIB2_LIBRARIES - Link these to use GLib2 -# -# HAVE_GLIB_GREGEX_H glib has gregex.h header and -# supports g_regex_match_simple -# -# Copyright (c) 2006 Andreas Schneider <[email protected]> -# Copyright (c) 2006 Philippe Bernery <[email protected]> -# Copyright (c) 2007 Daniel Gollub <[email protected]> -# Copyright (c) 2007 Alban Browaeys <[email protected]> -# Copyright (c) 2008 Michael Bell <[email protected]> -# Copyright (c) 2008-2009 Bjoern Ricks <[email protected]> -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - - -IF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS ) - # in cache already - SET(GLIB2_FOUND TRUE) -ELSE (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS ) - - INCLUDE(FindPkgConfig) - - ## Glib - IF ( GLIB2_FIND_REQUIRED ) - SET( _pkgconfig_REQUIRED "REQUIRED" ) - ELSE ( GLIB2_FIND_REQUIRED ) - SET( _pkgconfig_REQUIRED "" ) - ENDIF ( GLIB2_FIND_REQUIRED ) - - IF ( GLIB2_MIN_VERSION ) - PKG_SEARCH_MODULE( GLIB2 ${_pkgconfig_REQUIRED} glib-2.0>=${GLIB2_MIN_VERSION} ) - ELSE ( GLIB2_MIN_VERSION ) - PKG_SEARCH_MODULE( GLIB2 ${_pkgconfig_REQUIRED} glib-2.0 ) - ENDIF ( GLIB2_MIN_VERSION ) - IF ( PKG_CONFIG_FOUND ) - IF ( GLIB2_FOUND ) - SET ( GLIB2_CORE_FOUND TRUE ) - ELSE ( GLIB2_FOUND ) - SET ( GLIB2_CORE_FOUND FALSE ) - ENDIF ( GLIB2_FOUND ) - ENDIF ( PKG_CONFIG_FOUND ) - - # Look for glib2 include dir and libraries w/o pkgconfig - IF ( NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND ) - FIND_PATH( - _glibconfig_include_DIR - NAMES - glibconfig.h - PATHS - /opt/gnome/lib64 - /opt/gnome/lib - /opt/lib/ - /opt/local/lib - /sw/lib/ - /usr/lib64 - /usr/lib - /usr/local/include - ${CMAKE_LIBRARY_PATH} - PATH_SUFFIXES - glib-2.0/include - ) - - FIND_PATH( - _glib2_include_DIR - NAMES - glib.h - PATHS - /opt/gnome/include - /opt/local/include - /sw/include - /usr/include - /usr/local/include - PATH_SUFFIXES - glib-2.0 - ) - - #MESSAGE(STATUS "Glib headers: ${_glib2_include_DIR}") - - FIND_LIBRARY( - _glib2_link_DIR - NAMES - glib-2.0 - glib - PATHS - /opt/gnome/lib - /opt/local/lib - /sw/lib - /usr/lib - /usr/local/lib - ) - IF ( _glib2_include_DIR AND _glib2_link_DIR ) - SET ( _glib2_FOUND TRUE ) - ENDIF ( _glib2_include_DIR AND _glib2_link_DIR ) - - - IF ( _glib2_FOUND ) - SET ( GLIB2_INCLUDE_DIRS ${_glib2_include_DIR} ${_glibconfig_include_DIR} ) - SET ( GLIB2_LIBRARIES ${_glib2_link_DIR} ) - SET ( GLIB2_CORE_FOUND TRUE ) - ELSE ( _glib2_FOUND ) - SET ( GLIB2_CORE_FOUND FALSE ) - ENDIF ( _glib2_FOUND ) - - # Handle dependencies - # libintl - IF ( NOT LIBINTL_FOUND ) - FIND_PATH(LIBINTL_INCLUDE_DIR - NAMES - libintl.h - PATHS - /opt/gnome/include - /opt/local/include - /sw/include - /usr/include - /usr/local/include - ) - - FIND_LIBRARY(LIBINTL_LIBRARY - NAMES - intl - PATHS - /opt/gnome/lib - /opt/local/lib - /sw/lib - /usr/local/lib - /usr/lib - ) - - IF (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) - SET (LIBINTL_FOUND TRUE) - ENDIF (LIBINTL_LIBRARY AND LIBINTL_INCLUDE_DIR) - ENDIF ( NOT LIBINTL_FOUND ) - - # libiconv - IF ( NOT LIBICONV_FOUND ) - FIND_PATH(LIBICONV_INCLUDE_DIR - NAMES - iconv.h - PATHS - /opt/gnome/include - /opt/local/include - /opt/local/include - /sw/include - /sw/include - /usr/local/include - /usr/include - PATH_SUFFIXES - glib-2.0 - ) - - FIND_LIBRARY(LIBICONV_LIBRARY - NAMES - iconv - PATHS - /opt/gnome/lib - /opt/local/lib - /sw/lib - /usr/lib - /usr/local/lib - ) - - IF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) - SET (LIBICONV_FOUND TRUE) - ENDIF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) - ENDIF ( NOT LIBICONV_FOUND ) - - IF (LIBINTL_FOUND) - SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBINTL_LIBRARY}) - SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBINTL_INCLUDE_DIR}) - ENDIF (LIBINTL_FOUND) - - IF (LIBICONV_FOUND) - SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBICONV_LIBRARY}) - SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBICONV_INCLUDE_DIR}) - ENDIF (LIBICONV_FOUND) - - ENDIF ( NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND ) - ## - - IF (GLIB2_CORE_FOUND AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) - SET (GLIB2_FOUND TRUE) - ENDIF (GLIB2_CORE_FOUND AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES) - - IF (GLIB2_FOUND) - IF (NOT GLIB2_FIND_QUIETLY) - MESSAGE (STATUS "Found GLib2: ${GLIB2_LIBRARIES} ${GLIB2_INCLUDE_DIRS}") - ENDIF (NOT GLIB2_FIND_QUIETLY) - ELSE (GLIB2_FOUND) - IF (GLIB2_FIND_REQUIRED) - MESSAGE (SEND_ERROR "Could not find GLib2") - ENDIF (GLIB2_FIND_REQUIRED) - ENDIF (GLIB2_FOUND) - - # show the GLIB2_INCLUDE_DIRS and GLIB2_LIBRARIES variables only in the advanced view - MARK_AS_ADVANCED(GLIB2_INCLUDE_DIRS GLIB2_LIBRARIES) - MARK_AS_ADVANCED(LIBICONV_INCLUDE_DIR LIBICONV_LIBRARY) - MARK_AS_ADVANCED(LIBINTL_INCLUDE_DIR LIBINTL_LIBRARY) - -ENDIF (GLIB2_LIBRARIES AND GLIB2_INCLUDE_DIRS) - -IF ( WIN32 ) - # include libiconv for win32 - IF ( NOT LIBICONV_FOUND ) - FIND_PATH(LIBICONV_INCLUDE_DIR iconv.h PATH_SUFFIXES glib-2.0) - - FIND_LIBRARY(LIBICONV_LIBRARY NAMES iconv) - - IF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) - SET (LIBICONV_FOUND TRUE) - ENDIF (LIBICONV_LIBRARY AND LIBICONV_INCLUDE_DIR) - ENDIF ( NOT LIBICONV_FOUND ) - IF (LIBICONV_FOUND) - SET (GLIB2_LIBRARIES ${GLIB2_LIBRARIES} ${LIBICONV_LIBRARY}) - SET (GLIB2_INCLUDE_DIRS ${GLIB2_INCLUDE_DIRS} ${LIBICONV_INCLUDE_DIR}) - ENDIF (LIBICONV_FOUND) -ENDIF ( WIN32 ) - -IF ( GLIB2_FOUND ) - # Check if system has a newer version of glib - # which supports g_regex_match_simple - INCLUDE( CheckIncludeFiles ) - SET( CMAKE_REQUIRED_INCLUDES ${GLIB2_INCLUDE_DIRS} ) - CHECK_INCLUDE_FILES ( glib/gregex.h HAVE_GLIB_GREGEX_H ) - CHECK_INCLUDE_FILES ( glib/gchecksum.h HAVE_GLIB_GCHECKSUM_H ) - # Reset CMAKE_REQUIRED_INCLUDES - SET( CMAKE_REQUIRED_INCLUDES "" ) -ENDIF( GLIB2_FOUND ) +# Try to locate the GLib2 library. +# If found, this will define the following variables: +# +# ``GLIB2_FOUND`` +# True if the GLib2 library is available +# ``GLIB2_INCLUDE_DIRS`` +# The GLib2 include directories +# ``GLIB2_LIBRARIES`` +# The GLib2 libraries for linking +# ``GLIB2_INCLUDE_DIR`` +# Deprecated, use ``GLIB2_INCLUDE_DIRS`` +# ``GLIB2_LIBRARY`` +# Deprecated, use ``GLIB2_LIBRARIES`` +# +# If ``GLIB2_FOUND`` is TRUE, it will also define the following +# imported target: +# +# ``GLIB2::GLIB2`` +# The GLIB2 library +# +# Since 5.41.0. + +#============================================================================= +# Copyright (c) 2008 Laurent Montel, <[email protected]> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#============================================================================= + +find_package(PkgConfig) +pkg_check_modules(PC_GLIB2 QUIET glib-2.0) + +find_path(GLIB2_INCLUDE_DIRS + NAMES glib.h + HINTS ${PC_GLIB2_INCLUDEDIR} + PATH_SUFFIXES glib-2.0) + +find_library(GLIB2_LIBRARIES + NAMES glib-2.0 + HINTS ${PC_GLIB2_LIBDIR} +) + +# search the glibconfig.h include dir under the same root where the library is found +get_filename_component(glib2LibDir "${GLIB2_LIBRARIES}" PATH) + +find_path(GLIB2_INTERNAL_INCLUDE_DIR glibconfig.h + PATH_SUFFIXES glib-2.0/include + HINTS ${PC_GLIB2_INCLUDEDIR} "${glib2LibDir}" ${CMAKE_SYSTEM_LIBRARY_PATH}) + +# not sure if this include dir is optional or required +# for now it is optional +if(GLIB2_INTERNAL_INCLUDE_DIR) + list(APPEND GLIB2_INCLUDE_DIRS "${GLIB2_INTERNAL_INCLUDE_DIR}") +endif() + +# Deprecated synonyms +set(GLIB2_INCLUDE_DIR "${GLIB2_INCLUDE_DIRS}") +set(GLIB2_LIBRARY "${GLIB2_LIBRARIES}") + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(GLIB2 DEFAULT_MSG GLIB2_LIBRARIES GLIB2_INCLUDE_DIRS) + +if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2) + add_library(GLIB2::GLIB2 UNKNOWN IMPORTED) + set_target_properties(GLIB2::GLIB2 PROPERTIES + IMPORTED_LOCATION "${GLIB2_LIBRARIES}" + INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}") +endif() + +mark_as_advanced(GLIB2_INCLUDE_DIRS GLIB2_INCLUDE_DIR + GLIB2_LIBRARIES GLIB2_LIBRARY) + +include(FeatureSummary) +set_package_properties(GLIB2 PROPERTIES + URL "https://wiki.gnome.org/Projects/GLib" + DESCRIPTION "Event loop and utility library") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/cmake/Modules/FindGTHREAD2.cmake new/createrepo_c-0.15.7/cmake/Modules/FindGTHREAD2.cmake --- old/createrepo_c-0.15.6/cmake/Modules/FindGTHREAD2.cmake 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/cmake/Modules/FindGTHREAD2.cmake 2020-02-14 20:51:12.000000000 +0100 @@ -1,58 +1,78 @@ -# - Try to find GThread2 -# Find GThread headers, libraries and the answer to all questions. +#.rst: +# FindGTHREAD2 +# --------- # -# GTHREAD2_FOUND True if GTHREAD2 got found -# GTHREAD2_INCLUDE_DIRS Location of GTHREAD2 headers -# GTHREAD2_LIBRARIES List of libraries to use GTHREAD2 -# -# Copyright (c) 2008 Bjoern Ricks <[email protected]> -# -# Redistribution and use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - -INCLUDE( FindPkgConfig ) - -IF ( GTHREAD2_FIND_REQUIRED ) - SET( _pkgconfig_REQUIRED "REQUIRED" ) -ELSE( GTHREAD2_FIND_REQUIRED ) - SET( _pkgconfig_REQUIRED "" ) -ENDIF ( GTHREAD2_FIND_REQUIRED ) - -IF ( GTHREAD2_MIN_VERSION ) - PKG_SEARCH_MODULE( GTHREAD2 ${_pkgconfig_REQUIRED} gthread-2.0>=${GTHREAD2_MIN_VERSION} ) -ELSE ( GTHREAD2_MIN_VERSION ) - PKG_SEARCH_MODULE( GTHREAD2 ${_pkgconfig_REQUIRED} gthread-2.0 ) -ENDIF ( GTHREAD2_MIN_VERSION ) - - -IF( NOT GTHREAD2_FOUND AND NOT PKG_CONFIG_FOUND ) - FIND_PATH( GTHREAD2_INCLUDE_DIRS gthread.h PATH_SUFFIXES glib-2.0/glib GLib.framework/Headers/glib ) - IF ( APPLE ) - FIND_LIBRARY( GTHREAD2_LIBRARIES glib ) - ELSE ( APPLE ) - FIND_LIBRARY( GTHREAD2_LIBRARIES gthread-2.0 ) - ENDIF ( APPLE ) - - #MESSAGE( STATUS "Gthread headers: ${GTHREAD2_INCLUDE_DIRS}" ) - #MESSAGE( STATUS "Gthread libs: ${GTHREAD2_LIBRARIES}" ) - - # Report results - IF ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS ) - SET( GTHREAD2_FOUND 1 ) - IF ( NOT GTHREAD2_FIND_QUIETLY ) - MESSAGE( STATUS "Found GTHREAD2: ${GTHREAD2_LIBRARIES} ${GTHREAD2_INCLUDE_DIRS}" ) - ENDIF ( NOT GTHREAD2_FIND_QUIETLY ) - ELSE ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS ) - IF ( GTHREAD2_FIND_REQUIRED ) - MESSAGE( SEND_ERROR "Could NOT find GTHREAD2" ) - ELSE ( GTHREAD2_FIND_REQUIRED ) - IF ( NOT GTHREAD2_FIND_QUIETLY ) - MESSAGE( STATUS "Could NOT find GTHREAD2" ) - ENDIF ( NOT GTHREAD2_FIND_QUIETLY ) - ENDIF ( GTHREAD2_FIND_REQUIRED ) - ENDIF ( GTHREAD2_LIBRARIES AND GTHREAD2_INCLUDE_DIRS ) -ENDIF( NOT GTHREAD2_FOUND AND NOT PKG_CONFIG_FOUND ) +# Try to locate the GThread2 library. +# If found, this will define the following variables: +# +# ``GTHREAD2_FOUND`` +# True if the GThread2 library is available +# ``GTHREAD2_INCLUDE_DIRS`` +# The GThread2 include directories +# ``GTHREAD2_LIBRARIES`` +# The GThread2 libraries for linking +# ``GTHREAD2_INCLUDE_DIR`` +# Deprecated, use ``GTHREAD2_INCLUDE_DIRS`` +# ``GTHREAD2_LIBRARY`` +# Deprecated, use ``GTHREAD2_LIBRARIES`` +# +# If ``GTHREAD2_FOUND`` is TRUE, it will also define the following +# imported target: +# +# ``GTHREAD2::GTHREAD2`` +# The GTHREAD2 library + +#============================================================================= +# Copyright (c) 2008 Laurent Montel, <[email protected]> +# Copyright (c) 2020 Dmitry Mikhirev, <[email protected]> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#============================================================================= + +find_package(PkgConfig) +pkg_check_modules(PC_GTHREAD2 QUIET gthread-2.0) + +find_path(GTHREAD2_INCLUDE_DIRS + NAMES gthread.h + HINTS ${PC_GTHREAD2_INCLUDEDIR} + PATH_SUFFIXES glib-2.0 glib-2.0/glib) + +find_library(GTHREAD2_LIBRARIES + NAMES gthread-2.0 + HINTS ${PC_GTHREAD2_LIBDIR} +) + +get_filename_component(gthread2LibDir "${GTHREAD2_LIBRARIES}" PATH) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(GTHREAD2 DEFAULT_MSG GTHREAD2_LIBRARIES GTHREAD2_INCLUDE_DIRS) + +if(GTHREAD2_FOUND AND NOT TARGET GTHREAD2::GTHREAD2) + add_library(GTHREAD2::GTHREAD2 UNKNOWN IMPORTED) + set_target_properties(GTHREAD2::GTHREAD2 PROPERTIES + IMPORTED_LOCATION "${GTHREAD2_LIBRARIES}" + INTERFACE_INCLUDE_DIRECTORIES "${GTHREAD2_INCLUDE_DIRS}") +endif() -MARK_AS_ADVANCED( GTHREAD2_LIBRARIES GTHREAD2_INCLUDE_DIRS ) +mark_as_advanced(GTHREAD2_INCLUDE_DIRS GTHREAD2_LIBRARIES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/createrepo_c.spec new/createrepo_c-0.15.7/createrepo_c.spec --- old/createrepo_c-0.15.6/createrepo_c.spec 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/createrepo_c.spec 2020-02-14 20:51:12.000000000 +0100 @@ -35,7 +35,7 @@ Summary: Creates a common metadata repository Name: createrepo_c -Version: 0.15.6 +Version: 0.15.7 Release: 1%{?dist} License: GPLv2+ URL: https://github.com/rpm-software-management/createrepo_c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/src/createrepo_shared.c new/createrepo_c-0.15.7/src/createrepo_shared.c --- old/createrepo_c-0.15.6/src/createrepo_shared.c 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/src/createrepo_shared.c 2020-02-14 20:51:12.000000000 +0100 @@ -110,7 +110,9 @@ sigaction(SIGUSR2, &sigact, NULL); // Handle signals that terminate (from the POSIX.1-2001) +#ifdef SIGPOLL sigaction(SIGPOLL, &sigact, NULL); +#endif sigaction(SIGPROF, &sigact, NULL); sigaction(SIGVTALRM, &sigact, NULL); @@ -143,7 +145,9 @@ sigaddset(&intmask, SIGTERM); sigaddset(&intmask, SIGUSR1); sigaddset(&intmask, SIGUSR2); +#ifdef SIGPOLL sigaddset(&intmask, SIGPOLL); +#endif sigaddset(&intmask, SIGPROF); sigaddset(&intmask, SIGVTALRM); @@ -171,7 +175,9 @@ sigaddset(&intmask, SIGTERM); sigaddset(&intmask, SIGUSR1); sigaddset(&intmask, SIGUSR2); +#ifdef SIGPOLL sigaddset(&intmask, SIGPOLL); +#endif sigaddset(&intmask, SIGPROF); sigaddset(&intmask, SIGVTALRM); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/src/misc.c new/createrepo_c-0.15.7/src/misc.c --- old/createrepo_c-0.15.6/src/misc.c 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/src/misc.c 2020-02-14 20:51:12.000000000 +0100 @@ -31,6 +31,8 @@ #include <stdlib.h> #include <string.h> #include <sys/time.h> +#include <sys/types.h> +#include <sys/wait.h> #include <time.h> #include <unistd.h> #include "cleanup.h" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/src/python/updatecollectionpackage-py.c new/createrepo_c-0.15.7/src/python/updatecollectionpackage-py.c --- old/createrepo_c-0.15.6/src/python/updatecollectionpackage-py.c 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/src/python/updatecollectionpackage-py.c 2020-02-14 20:51:12.000000000 +0100 @@ -229,6 +229,8 @@ "Suggested reboot", OFFSET(reboot_suggested)}, {"restart_suggested", (getter)get_int, (setter)set_int, "Suggested restart",OFFSET(restart_suggested)}, + {"relogin_suggested", (getter)get_int, (setter)set_int, + "Suggested relogin",OFFSET(relogin_suggested)}, {NULL, NULL, NULL, NULL, NULL} /* sentinel */ }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/src/python/updaterecord-py.c new/createrepo_c-0.15.7/src/python/updaterecord-py.c --- old/createrepo_c-0.15.6/src/python/updaterecord-py.c 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/src/python/updaterecord-py.c 2020-02-14 20:51:12.000000000 +0100 @@ -287,8 +287,16 @@ if (res == NULL) { memset(dt, 0, sizeof(struct tm)); res = strptime(str, "%Y-%m-%d", dt); - if (res == NULL) - PyErr_SetString(CrErr_Exception, "Invalid date"); + if (res == NULL) { + // Try to convert the whole string to a number if it passes it's likely in epoch format + char *t; + long long int epoch = strtoll(str, &t, 10); + if(*t == '\0') { + return PyLong_FromLongLong(epoch); + } else { + PyErr_SetString(CrErr_Exception, "Invalid date"); + } + } } PyObject *py_dt = PyDateTime_FromDateAndTime(dt->tm_year + 1900, dt->tm_mon + 1, dt->tm_mday, @@ -367,11 +375,29 @@ if (check_UpdateRecordStatus(self)) return -1; + + cr_UpdateRecord *rec = self->record; + + if (PyLong_Check(value)) { + size_t epoch = PyLong_AsSize_t(value); + /* Length 13 is plenty of space for epoch. */ + char *date = malloc(13 * sizeof(char)); + + int ret = snprintf(date, 13, "%zu", epoch); + if (ret < 0 && ret > 12){ + PyErr_SetString(PyExc_TypeError, "Invalid epoch value!"); + return -1; + } + char *str = cr_safe_string_chunk_insert(rec->chunk, date); + free(date); + *((char **) ((size_t) rec + (size_t) member_offset)) = str; + return 0; + } + if (!PyDateTime_Check(value) && value != Py_None) { - PyErr_SetString(PyExc_TypeError, "DateTime or None expected!"); + PyErr_SetString(PyExc_TypeError, "DateTime, integer epoch or None expected!"); return -1; } - cr_UpdateRecord *rec = self->record; /* Length is 20: yyyy-mm-dd HH:MM:SS */ char *date = malloc(20 * sizeof(char)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/src/updateinfo.c new/createrepo_c-0.15.7/src/updateinfo.c --- old/createrepo_c-0.15.6/src/updateinfo.c 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/src/updateinfo.c 2020-02-14 20:51:12.000000000 +0100 @@ -60,6 +60,7 @@ pkg->sum_type = orig->sum_type; pkg->reboot_suggested = orig->reboot_suggested; pkg->restart_suggested = orig->restart_suggested; + pkg->relogin_suggested = orig->relogin_suggested; return pkg; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/src/updateinfo.h new/createrepo_c-0.15.7/src/updateinfo.h --- old/createrepo_c-0.15.6/src/updateinfo.h 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/src/updateinfo.h 2020-02-14 20:51:12.000000000 +0100 @@ -47,6 +47,7 @@ cr_ChecksumType sum_type; gboolean reboot_suggested; gboolean restart_suggested; + gboolean relogin_suggested; GStringChunk *chunk; } cr_UpdateCollectionPackage; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/src/xml_dump_updateinfo.c new/createrepo_c-0.15.7/src/xml_dump_updateinfo.c --- old/createrepo_c-0.15.6/src/xml_dump_updateinfo.c 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/src/xml_dump_updateinfo.c 2020-02-14 20:51:12.000000000 +0100 @@ -64,6 +64,8 @@ xmlNewChild(package, NULL, BAD_CAST "reboot_suggested", "True"); if (pkg->restart_suggested) xmlNewChild(package, NULL, BAD_CAST "restart_suggested", "True"); + if (pkg->relogin_suggested) + xmlNewChild(package, NULL, BAD_CAST "relogin_suggested", "True"); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/src/xml_parser_updateinfo.c new/createrepo_c-0.15.7/src/xml_parser_updateinfo.c --- old/createrepo_c-0.15.6/src/xml_parser_updateinfo.c 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/src/xml_parser_updateinfo.c 2020-02-14 20:51:12.000000000 +0100 @@ -61,7 +61,7 @@ STATE_UPDATERECORD_REBOOTSUGGESTED, STATE_REBOOTSUGGESTED, STATE_RESTARTSUGGESTED, - STATE_RELOGINSUGGESTED, // Not implemented + STATE_RELOGINSUGGESTED, NUMSTATES, } cr_UpdateinfoState; @@ -97,7 +97,7 @@ { STATE_PACKAGE, "sum", STATE_SUM, 1 }, { STATE_PACKAGE, "reboot_suggested", STATE_REBOOTSUGGESTED, 0 }, { STATE_PACKAGE, "restart_suggested", STATE_RESTARTSUGGESTED, 0 }, - { STATE_PACKAGE, "relogin_suggested", STATE_RELOGINSUGGESTED, 0 }, // NI + { STATE_PACKAGE, "relogin_suggested", STATE_RELOGINSUGGESTED, 0 }, { NUMSTATES, NULL, NUMSTATES, 0 } }; @@ -386,6 +386,14 @@ assert(pd->updatecollectionpackage); package->restart_suggested = TRUE; break; + + case STATE_RELOGINSUGGESTED: + assert(pd->updateinfo); + assert(pd->updaterecord); + assert(pd->updatecollection); + assert(pd->updatecollectionpackage); + package->relogin_suggested = TRUE; + break; } } @@ -426,6 +434,7 @@ case STATE_PKGLIST: case STATE_REBOOTSUGGESTED: case STATE_RESTARTSUGGESTED: + case STATE_RELOGINSUGGESTED: case STATE_UPDATERECORD_REBOOTSUGGESTED: // All elements with no text data and without need of any // post processing should go here diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/tests/python/tests/test_updatecollectionpackage.py new/createrepo_c-0.15.7/tests/python/tests/test_updatecollectionpackage.py --- old/createrepo_c-0.15.6/tests/python/tests/test_updatecollectionpackage.py 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/tests/python/tests/test_updatecollectionpackage.py 2020-02-14 20:51:12.000000000 +0100 @@ -23,6 +23,7 @@ self.assertEqual(pkg.sum_type, 0) self.assertEqual(pkg.reboot_suggested, 0) self.assertEqual(pkg.restart_suggested, 0) + self.assertEqual(pkg.relogin_suggested, 0) pkg.name = "foo" pkg.version = "1.2" @@ -35,6 +36,7 @@ pkg.sum_type = cr.SHA1 pkg.reboot_suggested = True pkg.restart_suggested = True + pkg.relogin_suggested = True self.assertEqual(pkg.name, "foo") self.assertEqual(pkg.version, "1.2") @@ -47,3 +49,4 @@ self.assertEqual(pkg.sum_type, cr.SHA1) self.assertEqual(pkg.reboot_suggested, True) self.assertEqual(pkg.restart_suggested, True) + self.assertEqual(pkg.relogin_suggested, True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/tests/python/tests/test_updateinfo.py new/createrepo_c-0.15.7/tests/python/tests/test_updateinfo.py --- old/createrepo_c-0.15.6/tests/python/tests/test_updateinfo.py 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/tests/python/tests/test_updateinfo.py 2020-02-14 20:51:12.000000000 +0100 @@ -62,6 +62,14 @@ self.assertEqual(len(rec.references), 0) self.assertEqual(len(rec.collections), 0) + rec = cr.UpdateRecord() + rec.issued_date = int(now.timestamp()) + ui.append(rec) + + self.assertEqual(len(ui.updates), 2) + rec = ui.updates[1] + self.assertEqual(rec.issued_date, int(now.timestamp())) + def test_updateinfo_xml_dump_01(self): ui = cr.UpdateInfo() xml = ui.xml_dump() @@ -146,6 +154,7 @@ pkg.sum_type = cr.SHA1 pkg.reboot_suggested = True pkg.restart_suggested = True + pkg.relogin_suggested = True col = cr.UpdateCollection() col.shortname = "short name" @@ -210,6 +219,7 @@ <sum type="sha1">abcdef</sum> <reboot_suggested>True</reboot_suggested> <restart_suggested>True</restart_suggested> + <relogin_suggested>True</relogin_suggested> </package> </collection> </pkglist> @@ -327,6 +337,7 @@ pkg.sum_type = cr.SHA1 pkg.reboot_suggested = True pkg.restart_suggested = True + pkg.relogin_suggested = True col = cr.UpdateCollection() col.shortname = "short name" @@ -347,7 +358,7 @@ rec.version = "version" rec.id = "id" rec.title = "title" - rec.issued_date = now + rec.issued_date = int(now.timestamp()) rec.updated_date = now rec.rights = "rights" rec.release = "release" @@ -371,7 +382,7 @@ <update from="from" status="status" type="type" version="version"> <id>id</id> <title>title</title> - <issued date="%(now)s"/> + <issued date="%(now_epoch)s"/> <updated date="%(now)s"/> <rights>rights</rights> <release>release</release> @@ -393,9 +404,10 @@ <sum type="sha1">abcdef</sum> <reboot_suggested>True</reboot_suggested> <restart_suggested>True</restart_suggested> + <relogin_suggested>True</relogin_suggested> </package> </collection> </pkglist> </update> </updates> -""" % {"now": now.strftime("%Y-%m-%d %H:%M:%S")}) +""" % {"now": now.strftime("%Y-%m-%d %H:%M:%S"), "now_epoch": now.strftime('%s')}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/tests/test_xml_parser_updateinfo.c new/createrepo_c-0.15.7/tests/test_xml_parser_updateinfo.c --- old/createrepo_c-0.15.6/tests/test_xml_parser_updateinfo.c 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/tests/test_xml_parser_updateinfo.c 2020-02-14 20:51:12.000000000 +0100 @@ -103,6 +103,7 @@ g_assert_cmpint(pkg->sum_type, ==, CR_CHECKSUM_SHA256); g_assert(pkg->reboot_suggested); g_assert(pkg->restart_suggested); + g_assert(pkg->relogin_suggested); cr_updateinfo_free(ui); } @@ -168,6 +169,7 @@ g_assert_cmpint(pkg->sum_type, ==, CR_CHECKSUM_UNKNOWN); g_assert(!pkg->reboot_suggested); g_assert(!pkg->restart_suggested); + g_assert(!pkg->relogin_suggested); cr_updateinfo_free(ui); } @@ -258,6 +260,12 @@ g_assert_cmpstr(pkg->version, ==, "0.7"); g_assert_cmpstr(pkg->filename, ==, "duck-0.7-1.noarch.rpm"); + update = g_slist_nth_data(ui->updates, 5); + + g_assert_cmpstr(update->id, ==, "RHEA-2012:0060"); + g_assert_cmpstr(update->issued_date, ==, "1555429284"); + g_assert_cmpstr(update->updated_date, ==, "2018-07-29 06:00:01 UTC"); + cr_updateinfo_free(ui); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/tests/testdata/updateinfo_files/updateinfo_01.xml new/createrepo_c-0.15.7/tests/testdata/updateinfo_files/updateinfo_01.xml --- old/createrepo_c-0.15.6/tests/testdata/updateinfo_files/updateinfo_01.xml 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/tests/testdata/updateinfo_files/updateinfo_01.xml 2020-02-14 20:51:12.000000000 +0100 @@ -24,6 +24,7 @@ <sum type="sha256">29be985e1f652cd0a29ceed6a1c49964d3618bddd22f0be3292421c8777d26c8</sum> <reboot_suggested/> <restart_suggested/> + <relogin_suggested/> </package> </collection> </pkglist> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/createrepo_c-0.15.6/tests/testdata/updateinfo_files/updateinfo_03.xml new/createrepo_c-0.15.7/tests/testdata/updateinfo_files/updateinfo_03.xml --- old/createrepo_c-0.15.6/tests/testdata/updateinfo_files/updateinfo_03.xml 2020-01-17 23:23:36.000000000 +0100 +++ new/createrepo_c-0.15.7/tests/testdata/updateinfo_files/updateinfo_03.xml 2020-02-14 20:51:12.000000000 +0100 @@ -113,7 +113,7 @@ <id>RHEA-2012:0060</id> <title>Duck_0.8_Erratum</title> <release>1</release> - <issued date="2018-01-29 16:08:09"/> + <issued date="1555429284"/> <updated date="2018-07-29 06:00:01 UTC"/> <description>Duck_0.8_Erratum description</description> <pkglist>
