--- createrepo_c-0.10.0/src/misc.c.orig 2018-05-11 19:45:05.629153195 +0200 +++ createrepo_c-0.10.0/src/misc.c 2018-05-11 20:03:44.592473749 +0200 @@ -26,7 +26,8 @@ #include #include #include -#include +#include +#include #include #include #include --- createrepo_c/CMakeLists.txt.orig 2013-12-01 15:00:42.000000000 +0100 +++ createrepo_c/CMakeLists.txt 2013-12-01 16:21:27.510591230 +0100 @@ -39,7 +39,7 @@ include_directories(${GLIB2_INCLUDE_DIRS}) include_directories(${LIBXML2_INCLUDE_DIR}) - +include_directories("/usr/include/rpm") # rpm: --- createrepo_c-0.10.0/src/parsehdr.h.orig 2018-05-11 19:45:05.632486529 +0200 +++ createrepo_c-0.10.0/src/parsehdr.h 2018-05-11 20:04:26.635806605 +0200 @@ -25,7 +25,7 @@ extern "C" { #endif #include -#include +#include #include "package.h" /** \defgroup parsehdr Header parser API. --- createrepo_c/src/parsehdr.c.orig 2013-12-01 15:00:42.000000000 +0100 +++ createrepo_c/src/parsehdr.c 2013-12-01 16:33:26.753894379 +0100 @@ -19,6 +19,7 @@ #include #include +#include #include #include #include "parsehdr.h" @@ -26,6 +27,76 @@ #include "misc.h" +static inline void* rpmtdNew(void) +{ + return malloc(sizeof(struct rpmtd_s)); +} + +static inline void rpmtdFree(rpmtd td) +{ + return free(td); +} + +static inline void rpmtdInit(rpmtd td) +{ + rpmtdReset(td); +} + +static inline const char * headerGetString(Header h, int32_t tag) +{ + const char *res = NULL; + struct rpmtd_s td; + + if (headerGet(h, tag, &td, HEADERGET_MINMEM)) { + if (rpmtdCount(&td) == 1) { + res = rpmtdGetString(&td); + } + rpmtdFreeData(&td); + } + return res; +} + +static inline uint64_t rpmtdGetNumber(rpmtd td) +{ + uint64_t val = 0; + int ix; + assert(td != NULL); + ix = (td->ix >= 0 ? td->ix : 0); + + switch (td->type) { + case RPM_INT64_TYPE: + val = *((uint64_t *) td->data + ix); + break; + case RPM_INT32_TYPE: + val = *((uint32_t *) td->data + ix); + break; + case RPM_INT16_TYPE: + val = *((uint16_t *) td->data + ix); + break; + case RPM_INT8_TYPE: + case RPM_CHAR_TYPE: + val = *((uint8_t *) td->data + ix); + break; + default: + break; + } + return val; +} + +static inline uint64_t headerGetNumber(Header h, int32_t tag) +{ + uint64_t res = 0; + struct rpmtd_s td; + + if (headerGet(h, tag, &td, HEADERGET_EXT)) { + if (rpmtdCount(&td) == 1) { + res = rpmtdGetNumber(&td); + } + rpmtdFreeData(&td); + } + return res; +} + static inline int cr_compare_dependency(const char *dep1, const char *dep2) { --- createrepo_c-0.10.0/src/parsepkg.c.orig 2018-05-11 19:45:05.632486529 +0200 +++ createrepo_c-0.10.0/src/parsepkg.c 2018-05-11 20:05:28.922472561 +0200 @@ -26,9 +26,9 @@ #include #include #include -#include #include -#include +#include +#include #include "error.h" #include "parsehdr.h" #include "parsepkg.h" @@ -38,6 +38,9 @@ #define ERR_DOMAIN CREATEREPO_C_ERROR +#define _RPMVSF_NOSIGNATURES (RPMVSF_NODSAHEADER | RPMVSF_NORSAHEADER | RPMVSF_NODSA | RPMVSF_NORSA) +#define _RPMVSF_NODIGESTS (RPMVSF_NOSHA1HEADER | RPMVSF_NOMD5HEADER | RPMVSF_NOSHA1 | RPMVSF_NOMD5) + rpmts cr_ts = NULL; --- createrepo_c/src/CMakeLists.txt.orig 2013-12-01 15:00:42.000000000 +0100 +++ createrepo_c/src/CMakeLists.txt 2013-12-01 16:53:42.373843363 +0100 @@ -55,6 +55,7 @@ TARGET_LINK_LIBRARIES(libcreaterepo_c ${LZMA_LIBRARIES}) TARGET_LINK_LIBRARIES(libcreaterepo_c ${OPENSSL_LIBRARIES}) TARGET_LINK_LIBRARIES(libcreaterepo_c ${RPMDB_LIBRARY}) +TARGET_LINK_LIBRARIES(libcreaterepo_c rpm) TARGET_LINK_LIBRARIES(libcreaterepo_c ${SQLITE3_LIBRARIES}) TARGET_LINK_LIBRARIES(libcreaterepo_c ${ZLIB_LIBRARY}) --- createrepo_c-0.10.0/src/deltarpms.h.in.orig 2016-01-05 13:46:28.000000000 +0100 +++ createrepo_c-0.10.0/src/deltarpms.h.in 2018-05-11 20:54:15.319105812 +0200 @@ -25,7 +25,6 @@ extern "C" { #endif #include -#include #include "package.h" #include "parsehdr.h" #include "xml_file.h" --- createrepo_c-0.10.0/src/dumper_thread.h.orig 2016-01-05 13:46:28.000000000 +0100 +++ createrepo_c-0.10.0/src/dumper_thread.h 2018-05-11 20:56:44.322437446 +0200 @@ -25,7 +25,6 @@ extern "C" { #endif #include -#include #include "load_metadata.h" #include "locate_metadata.h" #include "misc.h"