From e806b67f7bf4458450f5d951262ec0aedf7a4a19 Mon Sep 17 00:00:00 2001 From: "biao716.wang" Date: Fri, 3 Mar 2023 16:51:24 +0900 Subject: Fix build error with Ubuntu22.04 Python bindings: The initialization function must be named PyInit_name(), where name is the name of the module, and should be the only non-static item defined in the module file https://github.com/rpm-software-management/rpm/commit/0073376965ee8d8df63c21b0da634fc315c97d0b related bug: https://bugzilla.redhat.com/show_bug.cgi?id=1064758 Add more patch: https://github.com/rpm-software-management/rpm/commit/f3801bccb9eb068a747ca63a4b01518a260d9919 https://github.com/rpm-software-management/rpm/commit/ddc7ff28e14064f57c6917e133a95e73f749cf41 https://github.com/rpm-software-management/rpm/commit/2c6e0366ffc6bdbafbdf82df7fcedd975a361465 https://github.com/rpm-software-management/rpm/commit/71527b6fbd2b3898beabd602c462a01b691d67d8 Change-Id: I67a51ee893d06173b3d33d444dfa56a5796523fb Signed-off-by: biao716.wang --- build/files.c | 2 +- configure.ac | 2 +- debian/control | 8 +- debian/librpm-tizen.install | 4 +- debian/rules | 6 +- misc/Makefile.am | 2 +- misc/fts.c | 25 +++--- misc/fts.h | 209 -------------------------------------------- misc/rpmfts.h | 207 +++++++++++++++++++++++++++++++++++++++++++ python/Makefile.am | 20 ++--- python/rpmbmodule.c | 4 +- python/rpmfd-py.c | 2 +- python/rpmii-py.c | 1 - python/rpmmi-py.c | 1 - python/rpmsmodule.c | 6 +- python/rpmsystem-py.h | 1 + 16 files changed, 250 insertions(+), 250 deletions(-) delete mode 100644 misc/fts.h create mode 100644 misc/rpmfts.h diff --git a/build/files.c b/build/files.c index 63cac8bc3..71d12729d 100644 --- a/build/files.c +++ b/build/files.c @@ -26,7 +26,7 @@ #endif #include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */ -#include "misc/fts.h" +#include "misc/rpmfts.h" #include "lib/cpio.h" #include "lib/rpmfi_internal.h" /* XXX fi->apath */ #include "lib/rpmug.h" diff --git a/configure.ac b/configure.ac index 89c54e405..a47b319f5 100644 --- a/configure.ac +++ b/configure.ac @@ -540,7 +540,7 @@ esac], [enable_python=no]) AS_IF([test "$enable_python" = yes],[ - AM_PATH_PYTHON([2.6],[ + AM_PATH_PYTHON([3.2],[ WITH_PYTHON_INCLUDE=`${PYTHON} -c 'from distutils.sysconfig import *; import sys; sys.stdout.write(get_python_inc())'` WITH_PYTHON_SUBPACKAGE=1 save_CPPFLAGS="$CPPFLAGS" diff --git a/debian/control b/debian/control index a3a31bc4c..5aac23660 100644 --- a/debian/control +++ b/debian/control @@ -2,6 +2,7 @@ Source: librpm-tizen Section: vcs Priority: optional Build-Depends: debhelper, + dh-python, dpkg-dev, dh-autoreconf, libtool, @@ -14,7 +15,8 @@ Build-Depends: debhelper, libxml2-dev, libreadline-dev, libsqlite3-dev, - python-all-dev, + python3-all-dev, + python3, pkg-config, libnspr4-dev, libnss3-dev, @@ -27,11 +29,11 @@ Build-Depends: debhelper, Maintainer: Markus Lehtonen Standards-Version: 3.9.3 Homepage: http://rpm.org/ -X-Python-Version: >= 2.6 +X-Python-Version: >= 3 Package: librpm-tizen Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends} Description: The RPM libraries for git-buildpackage RPM Package Manager is the main tool for managing the software packages of Tizen. diff --git a/debian/librpm-tizen.install b/debian/librpm-tizen.install index 78f09f7b8..84594ba09 100644 --- a/debian/librpm-tizen.install +++ b/debian/librpm-tizen.install @@ -1,4 +1,4 @@ usr/lib*/*/*.so.* usr/lib*/*/rpm/* -usr/lib/python*/dist-packages/*/*.so -usr/lib/python*/dist-packages/*/*.py* +usr/lib/python*/*packages/*/*.so +usr/lib/python*/*packages/*/*.py* diff --git a/debian/rules b/debian/rules index 594963018..c396cb479 100755 --- a/debian/rules +++ b/debian/rules @@ -5,8 +5,7 @@ python_mod_name := rpm_tizen CPPFLAGS += $(shell pkg-config --cflags nss) %: - dh $@ --with python2,autoreconf,autotools_dev - + dh $@ --with python3,autoreconf,autotools_dev override_dh_auto_configure: dh_auto_configure -- --disable-dependency-tracking \ --libdir=/usr/lib/librpm-tizen \ @@ -28,6 +27,3 @@ override_dh_auto_install: install -d debian/tmp/usr/lib/librpm-tizen/rpm/tizen ln -s ../tizen_macros debian/tmp/usr/lib/librpm-tizen/rpm/tizen/macros -override_dh_python2: - dh_python2 --no-guessing-versions - diff --git a/misc/Makefile.am b/misc/Makefile.am index 4fdde9525..e413a211c 100644 --- a/misc/Makefile.am +++ b/misc/Makefile.am @@ -9,5 +9,5 @@ EXTRA_DIST = \ noinst_LTLIBRARIES = libmisc.la -libmisc_la_SOURCES = fts.c fts.h +libmisc_la_SOURCES = fts.c rpmfts.h libmisc_la_LIBADD = @LTLIBOBJS@ diff --git a/misc/fts.c b/misc/fts.c index 9fbefe3d2..39f059d80 100644 --- a/misc/fts.c +++ b/misc/fts.c @@ -31,41 +31,45 @@ static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94"; #endif /* LIBC_SCCS and not lint */ +/* Conditional to set up proper fstat64 implementation */ +#if defined(hpux) || defined(sun) +# define FTS_FSTAT64(_fd, _sbp) fstat((_fd), (_sbp)) +#else +# define FTS_FSTAT64(_fd, _sbp) fstat64((_fd), (_sbp)) +#endif + #if defined(_LIBC) #include #include #include #include #include -#include "misc/fts.h" +#include "misc/rpmfts.h" #include #include #include #else + +/* Conditionals for working around non-GNU environments */ #if defined(hpux) -# define _INCLUDE_POSIX_SOURCE +# define _INCLUDE_POSIX_SOURCE # define __errno_location() (&errno) # define dirfd(dirp) -1 # define stat64 stat -# define _STAT_VER 0 -# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) #endif #if defined(sun) # define __errno_location() (&errno) # define dirfd(dirp) -1 -# define _STAT_VER 0 -# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) #endif #if defined(__APPLE__) # define __errno_location() (__error()) -# define _STAT_VER 0 -# define __fxstat64(_stat_ver, _fd, _sbp) fstat64((_fd), (_sbp)) #endif + #include "system.h" #include #include #include -#include "misc/fts.h" +#include "misc/rpmfts.h" # define __set_errno(val) (*__errno_location ()) = (val) # define __open open # define __close close @@ -1118,7 +1122,7 @@ fts_safe_changedir(FTS * sp, FTSENT * p, int fd, const char * path) return (0); if (fd < 0 && (newfd = __open(path, O_RDONLY, 0)) < 0) return (-1); - if (__fxstat64(_STAT_VER, newfd, &sb)) { + if (FTS_FSTAT64(newfd, &sb)) { ret = -1; goto bail; } @@ -1135,3 +1139,4 @@ bail: __set_errno (oerrno); return (ret); } + diff --git a/misc/fts.h b/misc/fts.h deleted file mode 100644 index 47c650e7c..000000000 --- a/misc/fts.h +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * 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 above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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. - * - * @(#)fts.h 8.3 (Berkeley) 8/14/94 - */ - -#ifndef _FTS_H -#define _FTS_H 1 - -#include - -#if defined(__GLIBC__) -#include -#else - -# define __THROW -#ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# define __END_DECLS } -#else -# define __BEGIN_DECLS -# define __END_DECLS -#endif - -#if defined(hpux) -# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) -# define _INCLUDE_POSIX_SOURCE -# define _LARGEFILE64_SOURCE -#endif - -#if defined(sun) -# define _D_EXACT_NAMLEN(d) ((d)->d_reclen) -#endif - -#if defined(__APPLE__) -# define _D_EXACT_NAMLEN(d) (strlen((d)->d_name)) -#endif - -#endif - -#include -#include -#include -#include - -typedef struct { - struct _ftsent *fts_cur; /*!< current node */ - struct _ftsent *fts_child; /*!< linked list of children */ - struct _ftsent **fts_array; /*!< sort array */ - dev_t fts_dev; /*!< starting device # */ - char *fts_path; /*!< path for this descent */ - int fts_rfd; /*!< fd for root */ - int fts_pathlen; /*!< sizeof(path) */ - int fts_nitems; /*!< elements in the sort array */ - int (*fts_compar) (const void *, const void *); /*!< compare fn */ - - DIR * (*fts_opendir) (const char * path); - struct dirent * (*fts_readdir) (DIR * dir); - int (*fts_closedir) (DIR * dir); - int (*fts_stat) (const char * path, struct stat * st); - int (*fts_lstat) (const char * path, struct stat * st); - -#define FTS_COMFOLLOW 0x0001 /* follow command line symlinks */ -#define FTS_LOGICAL 0x0002 /* logical walk */ -#define FTS_NOCHDIR 0x0004 /* don't change directories */ -#define FTS_NOSTAT 0x0008 /* don't get stat info */ -#define FTS_PHYSICAL 0x0010 /* physical walk */ -#define FTS_SEEDOT 0x0020 /* return dot and dot-dot */ -#define FTS_XDEV 0x0040 /* don't cross devices */ -#define FTS_WHITEOUT 0x0080 /* return whiteout information */ -#define FTS_OPTIONMASK 0x00ff /* valid user option mask */ - -#define FTS_NAMEONLY 0x0100 /* (private) child names only */ -#define FTS_STOP 0x0200 /* (private) unrecoverable error */ - int fts_options; /*!< fts_open options, global flags */ -} FTS; - -typedef struct _ftsent { - struct _ftsent *fts_cycle; /*!< cycle node */ - struct _ftsent *fts_parent; /*!< parent directory */ - struct _ftsent *fts_link; /*!< next file in directory */ - long fts_number; /*!< local numeric value */ - void *fts_pointer; /*!< local address value */ - char *fts_accpath; /*!< access path */ - char *fts_path; /*!< root path */ - int fts_errno; /*!< errno for this node */ - int fts_symfd; /*!< fd for symlink */ - uint16_t fts_pathlen; /*!< strlen(fts_path) */ - uint16_t fts_namelen; /*!< strlen(fts_name) */ - - ino_t fts_ino; /*!< inode */ - dev_t fts_dev; /*!< device */ - nlink_t fts_nlink; /*!< link count */ - -#define FTS_ROOTPARENTLEVEL -1 -#define FTS_ROOTLEVEL 0 - short fts_level; /*!< depth (-1 to N) */ - -#define FTS_D 1 /* preorder directory */ -#define FTS_DC 2 /* directory that causes cycles */ -#define FTS_DEFAULT 3 /* none of the above */ -#define FTS_DNR 4 /* unreadable directory */ -#define FTS_DOT 5 /* dot or dot-dot */ -#define FTS_DP 6 /* postorder directory */ -#define FTS_ERR 7 /* error; errno is set */ -#define FTS_F 8 /* regular file */ -#define FTS_INIT 9 /* initialized only */ -#define FTS_NS 10 /* stat(2) failed */ -#define FTS_NSOK 11 /* no stat(2) requested */ -#define FTS_SL 12 /* symbolic link */ -#define FTS_SLNONE 13 /* symbolic link without target */ -#define FTS_W 14 /* whiteout object */ - uint16_t fts_info; /*!< user flags for FTSENT structure */ - -#define FTS_DONTCHDIR 0x01 /* don't chdir .. to the parent */ -#define FTS_SYMFOLLOW 0x02 /* followed a symlink to get here */ - uint16_t fts_flags; /*!< private flags for FTSENT structure */ - -#define FTS_AGAIN 1 /* read node again */ -#define FTS_FOLLOW 2 /* follow symbolic link */ -#define FTS_NOINSTR 3 /* no instructions */ -#define FTS_SKIP 4 /* discard node */ - uint16_t fts_instr; /*!< fts_set() instructions */ - - struct stat *fts_statp; /*!< stat(2) information */ - char fts_name[1]; /*!< file name */ -} FTSENT; - -__BEGIN_DECLS - -/** - * Return list of children of the current node. - * @param sp file hierarchy state - * @param instr - * @return file set member - */ -RPM_GNUC_INTERNAL -FTSENT *Fts_children (FTS * sp, int instr) __THROW -; - -/** - * Destroy a file hierarchy traversal handle. - * @param sp file hierarchy state - * @return 0 on sucess, -1 on error - */ -RPM_GNUC_INTERNAL -int Fts_close (FTS * sp) __THROW -; - -/** - * Create a handle for file hierarchy traversal. - * @param argv paths that compose a logical file hierarchy - * @param options traversal options - * @param compar traversal ordering (or NULL) - * @return file hierarchy state (or NULL on error) - */ -RPM_GNUC_INTERNAL -FTS *Fts_open (char * const * argv, int options, - int (*compar) (const FTSENT **, const FTSENT **)) __THROW - ; - -/** - * Return next node in the file hierarchy traversal. - * @param sp file hierarchy state - * @return file set member - */ -RPM_GNUC_INTERNAL -FTSENT *Fts_read (FTS * sp) __THROW -; - -/** - * Modify the traversal for a file set member. - * @param sp file hierarchy state - * @param p file set member - * @param instr new disposition for file set member - * @return 0 on sucess, -1 on error - */ -RPM_GNUC_INTERNAL -int Fts_set (FTS * sp, FTSENT * p, int instr) __THROW -; - -__END_DECLS - -#endif /* fts.h */ diff --git a/misc/rpmfts.h b/misc/rpmfts.h new file mode 100644 index 000000000..0c059cf0c --- /dev/null +++ b/misc/rpmfts.h @@ -0,0 +1,207 @@ +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * 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 above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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. + * + * @(#)fts.h 8.3 (Berkeley) 8/14/94 + */ + +#ifndef _FTS_H +#define _FTS_H 1 + +#include + +#if defined(__GLIBC__) +#include +#else + +# define __THROW + +#if !defined(_LARGEFILE64_SOURCE) +# define _LARGEFILE64_SOURCE +#endif + +#if !defined(_D_EXACT_NAMLEN) +# define _D_EXACT_NAMLEN(d) (strlen((d)->d_name)) +#endif + +#if defined(hpux) +# if !defined(_INCLUDE_POSIX_SOURCE) +# define _INCLUDE_POSIX_SOURCE +# endif +#endif + +#endif + +#include +#include +#include +#include + +typedef struct { + struct _ftsent *fts_cur; /*!< current node */ + struct _ftsent *fts_child; /*!< linked list of children */ + struct _ftsent **fts_array; /*!< sort array */ + dev_t fts_dev; /*!< starting device # */ + char *fts_path; /*!< path for this descent */ + int fts_rfd; /*!< fd for root */ + int fts_pathlen; /*!< sizeof(path) */ + int fts_nitems; /*!< elements in the sort array */ + int (*fts_compar) (const void *, const void *); /*!< compare fn */ + + DIR * (*fts_opendir) (const char * path); + struct dirent * (*fts_readdir) (DIR * dir); + int (*fts_closedir) (DIR * dir); + int (*fts_stat) (const char * path, struct stat * st); + int (*fts_lstat) (const char * path, struct stat * st); + +#define FTS_COMFOLLOW 0x0001 /* follow command line symlinks */ +#define FTS_LOGICAL 0x0002 /* logical walk */ +#define FTS_NOCHDIR 0x0004 /* don't change directories */ +#define FTS_NOSTAT 0x0008 /* don't get stat info */ +#define FTS_PHYSICAL 0x0010 /* physical walk */ +#define FTS_SEEDOT 0x0020 /* return dot and dot-dot */ +#define FTS_XDEV 0x0040 /* don't cross devices */ +#define FTS_WHITEOUT 0x0080 /* return whiteout information */ +#define FTS_OPTIONMASK 0x00ff /* valid user option mask */ + +#define FTS_NAMEONLY 0x0100 /* (private) child names only */ +#define FTS_STOP 0x0200 /* (private) unrecoverable error */ + int fts_options; /*!< fts_open options, global flags */ +} FTS; + +typedef struct _ftsent { + struct _ftsent *fts_cycle; /*!< cycle node */ + struct _ftsent *fts_parent; /*!< parent directory */ + struct _ftsent *fts_link; /*!< next file in directory */ + long fts_number; /*!< local numeric value */ + void *fts_pointer; /*!< local address value */ + char *fts_accpath; /*!< access path */ + char *fts_path; /*!< root path */ + int fts_errno; /*!< errno for this node */ + int fts_symfd; /*!< fd for symlink */ + uint16_t fts_pathlen; /*!< strlen(fts_path) */ + uint16_t fts_namelen; /*!< strlen(fts_name) */ + + ino_t fts_ino; /*!< inode */ + dev_t fts_dev; /*!< device */ + nlink_t fts_nlink; /*!< link count */ + +#define FTS_ROOTPARENTLEVEL -1 +#define FTS_ROOTLEVEL 0 + short fts_level; /*!< depth (-1 to N) */ + +#define FTS_D 1 /* preorder directory */ +#define FTS_DC 2 /* directory that causes cycles */ +#define FTS_DEFAULT 3 /* none of the above */ +#define FTS_DNR 4 /* unreadable directory */ +#define FTS_DOT 5 /* dot or dot-dot */ +#define FTS_DP 6 /* postorder directory */ +#define FTS_ERR 7 /* error; errno is set */ +#define FTS_F 8 /* regular file */ +#define FTS_INIT 9 /* initialized only */ +#define FTS_NS 10 /* stat(2) failed */ +#define FTS_NSOK 11 /* no stat(2) requested */ +#define FTS_SL 12 /* symbolic link */ +#define FTS_SLNONE 13 /* symbolic link without target */ +#define FTS_W 14 /* whiteout object */ + uint16_t fts_info; /*!< user flags for FTSENT structure */ + +#define FTS_DONTCHDIR 0x01 /* don't chdir .. to the parent */ +#define FTS_SYMFOLLOW 0x02 /* followed a symlink to get here */ + uint16_t fts_flags; /*!< private flags for FTSENT structure */ + +#define FTS_AGAIN 1 /* read node again */ +#define FTS_FOLLOW 2 /* follow symbolic link */ +#define FTS_NOINSTR 3 /* no instructions */ +#define FTS_SKIP 4 /* discard node */ + uint16_t fts_instr; /*!< fts_set() instructions */ + + struct stat *fts_statp; /*!< stat(2) information */ + char fts_name[1]; /*!< file name */ +} FTSENT; + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Return list of children of the current node. + * @param sp file hierarchy state + * @param instr + * @return file set member + */ +RPM_GNUC_INTERNAL +FTSENT *Fts_children (FTS * sp, int instr) __THROW +; + +/** + * Destroy a file hierarchy traversal handle. + * @param sp file hierarchy state + * @return 0 on success, -1 on error + */ +RPM_GNUC_INTERNAL +int Fts_close (FTS * sp) __THROW +; + +/** + * Create a handle for file hierarchy traversal. + * @param argv paths that compose a logical file hierarchy + * @param options traversal options + * @param compar traversal ordering (or NULL) + * @return file hierarchy state (or NULL on error) + */ +RPM_GNUC_INTERNAL +FTS *Fts_open (char * const * argv, int options, + int (*compar) (const FTSENT **, const FTSENT **)) __THROW + ; + +/** + * Return next node in the file hierarchy traversal. + * @param sp file hierarchy state + * @return file set member + */ +RPM_GNUC_INTERNAL +FTSENT *Fts_read (FTS * sp) __THROW +; + +/** + * Modify the traversal for a file set member. + * @param sp file hierarchy state + * @param p file set member + * @param instr new disposition for file set member + * @return 0 on success, -1 on error + */ +RPM_GNUC_INTERNAL +int Fts_set (FTS * sp, FTSENT * p, int instr) __THROW +; + +#ifdef __cplusplus +} +#endif + +#endif /* fts.h */ + diff --git a/python/Makefile.am b/python/Makefile.am index 914bf3dca..1f2e596ac 100644 --- a/python/Makefile.am +++ b/python/Makefile.am @@ -7,17 +7,17 @@ AM_CPPFLAGS += -I$(top_srcdir)/python AM_CPPFLAGS += -I@WITH_PYTHON_INCLUDE@ AM_CPPFLAGS += -I$(top_srcdir) -rpmpyexec_LTLIBRARIES = _rpmmodule.la _rpmbmodule.la _rpmsmodule.la +rpmpyexec_LTLIBRARIES = _rpm.la _rpmb.la _rpms.la rpmpyexec_DATA = rpm/__init__.py rpm/transaction.py rpmpyexecdir = @pyexecdir@/@PYTHON_MODULENAME@ -_rpmmodule_la_LDFLAGS = -module -avoid-version -shared -_rpmmodule_la_LIBADD = \ +_rpm_la_LDFLAGS = -module -avoid-version -shared +_rpm_la_LIBADD = \ $(top_builddir)/lib/librpm.la \ $(top_builddir)/rpmio/librpmio.la \ @WITH_PYTHON_LIB@ -_rpmmodule_la_SOURCES = rpmmodule.c rpmsystem-py.h \ +_rpm_la_SOURCES = rpmmodule.c rpmsystem-py.h \ header-py.c header-py.h \ rpmds-py.c rpmds-py.h \ rpmfd-py.c rpmfd-py.h \ @@ -31,22 +31,22 @@ _rpmmodule_la_SOURCES = rpmmodule.c rpmsystem-py.h \ rpmte-py.c rpmte-py.h \ rpmts-py.c rpmts-py.h -_rpmbmodule_la_LDFLAGS = -module -avoid-version -shared -_rpmbmodule_la_LIBADD = \ +_rpmb_la_LDFLAGS = -module -avoid-version -shared +_rpmb_la_LIBADD = \ $(top_builddir)/build/librpmbuild.la \ $(top_builddir)/lib/librpm.la \ $(top_builddir)/rpmio/librpmio.la \ @WITH_PYTHON_LIB@ -_rpmbmodule_la_SOURCES = rpmbmodule.c rpmsystem-py.h \ +_rpmb_la_SOURCES = rpmbmodule.c rpmsystem-py.h \ spec-py.c spec-py.h -_rpmsmodule_la_LDFLAGS = -module -avoid-version -shared -_rpmsmodule_la_LIBADD = \ +_rpms_la_LDFLAGS = -module -avoid-version -shared +_rpms_la_LIBADD = \ $(top_builddir)/sign/librpmsign.la \ $(top_builddir)/lib/librpm.la \ $(top_builddir)/rpmio/librpmio.la \ @WITH_PYTHON_LIB@ -_rpmsmodule_la_SOURCES = rpmsmodule.c rpmsystem-py.h +_rpms_la_SOURCES = rpmsmodule.c rpmsystem-py.h diff --git a/python/rpmbmodule.c b/python/rpmbmodule.c index f6e149118..ad30570e4 100644 --- a/python/rpmbmodule.c +++ b/python/rpmbmodule.c @@ -66,8 +66,8 @@ static struct PyModuleDef moduledef = { NULL /* m_free */ }; -PyObject * PyInit__rpm(void); /* XXX eliminate gcc warning */ -PyObject * PyInit__rpm(void) +PyObject * PyInit__rpmb(void); /* XXX eliminate gcc warning */ +PyObject * PyInit__rpmb(void) { PyObject *m; diff --git a/python/rpmfd-py.c b/python/rpmfd-py.c index 79eb5b6ee..41f494108 100644 --- a/python/rpmfd-py.c +++ b/python/rpmfd-py.c @@ -230,7 +230,7 @@ static PyObject *rpmfd_read(rpmfdObject *s, PyObject *args, PyObject *kwds) if (nb > 0) { PyObject *tmp = PyBytes_FromStringAndSize(buf, nb); - PyString_ConcatAndDel(&res, tmp); + PyBytes_ConcatAndDel(&res, tmp); left -= nb; } } while (nb > 0); diff --git a/python/rpmii-py.c b/python/rpmii-py.c index 17fe79e98..9209b54e5 100644 --- a/python/rpmii-py.c +++ b/python/rpmii-py.c @@ -88,7 +88,6 @@ static PyNumberMethods rpmii_as_number = { 0, /* nb_add */ 0, /* nb_subtract */ 0, /* nb_multiply */ - 0, /* nb_divide */ 0, /* nb_remainder */ 0, /* nb_divmod */ 0, /* nb_power */ diff --git a/python/rpmmi-py.c b/python/rpmmi-py.c index 6c34c9876..70bb1665b 100644 --- a/python/rpmmi-py.c +++ b/python/rpmmi-py.c @@ -149,7 +149,6 @@ static PyNumberMethods rpmmi_as_number = { 0, /* nb_add */ 0, /* nb_subtract */ 0, /* nb_multiply */ - 0, /* nb_divide */ 0, /* nb_remainder */ 0, /* nb_divmod */ 0, /* nb_power */ diff --git a/python/rpmsmodule.c b/python/rpmsmodule.c index 3eb240314..a8289b5f6 100644 --- a/python/rpmsmodule.c +++ b/python/rpmsmodule.c @@ -59,15 +59,15 @@ static struct PyModuleDef moduledef = { "_rpms", /* m_name */ rpms__doc__, /* m_doc */ 0, /* m_size */ - NULL, /* m_methods */ + modMethods, /* m_methods */ NULL, /* m_reload */ NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; -PyObject * PyInit__rpm(void); /* XXX eliminate gcc warning */ -PyObject * PyInit__rpm(void) +PyObject * PyInit__rpms(void); /* XXX eliminate gcc warning */ +PyObject * PyInit__rpms(void) { PyObject *m; diff --git a/python/rpmsystem-py.h b/python/rpmsystem-py.h index c7286a24e..30f74561e 100644 --- a/python/rpmsystem-py.h +++ b/python/rpmsystem-py.h @@ -50,6 +50,7 @@ typedef Py_ssize_t (*lenfunc)(PyObject *); #define PyInt_FromLong PyLong_FromLong #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask +#define PyInt_AsSsize_t PyLong_AsSsize_t #endif #endif /* H_SYSTEM_PYTHON */ -- cgit v1.2.3