diff options
author | biao716.wang <biao716.wang@samsung.com> | 2022-11-04 10:22:37 +0900 |
---|---|---|
committer | biao716.wang <biao716.wang@samsung.com> | 2023-03-03 16:36:46 +0900 |
commit | 5a8c0b62b2711e067cc3263c9d828f1157a4d14d (patch) | |
tree | 84575a6945b414287b654aede757583d59d9856e | |
parent | a0dea826f88a4c5c9ceb722592cceedeb75a32fe (diff) | |
download | librpm-tizen-sandbox/wangbiao/py3_version.tar.gz librpm-tizen-sandbox/wangbiao/py3_version.tar.bz2 librpm-tizen-sandbox/wangbiao/py3_version.zip |
fix build error with Ubuntu22.04sandbox/wangbiao/py3_version
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: I1421de99d3931f11861d476aa30710c828144193
Signed-off-by: biao716.wang <biao716.wang@samsung.com>
-rw-r--r-- | build/files.c | 2 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | debian/control | 8 | ||||
-rw-r--r-- | debian/librpm-tizen.install | 4 | ||||
-rwxr-xr-x | debian/rules | 6 | ||||
-rw-r--r-- | misc/Makefile.am | 2 | ||||
-rw-r--r-- | misc/fts.c | 25 | ||||
-rw-r--r-- | misc/rpmfts.h (renamed from misc/fts.h) | 34 | ||||
-rw-r--r-- | python/Makefile.am | 20 | ||||
-rw-r--r-- | python/rpmbmodule.c | 4 | ||||
-rw-r--r-- | python/rpmfd-py.c | 2 | ||||
-rw-r--r-- | python/rpmii-py.c | 1 | ||||
-rw-r--r-- | python/rpmmi-py.c | 1 | ||||
-rw-r--r-- | python/rpmsmodule.c | 6 | ||||
-rw-r--r-- | python/rpmsystem-py.h | 1 |
15 files changed, 59 insertions, 59 deletions
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 <markus.lehtonen@linux.intel.com> 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 <sys/param.h> #include <include/sys/stat.h> #include <fcntl.h> #include <dirent.h> #include <errno.h> -#include "misc/fts.h" +#include "misc/rpmfts.h" #include <stdlib.h> #include <string.h> #include <unistd.h> #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 <stdlib.h> #include <string.h> #include <errno.h> -#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/rpmfts.h index 47c650e7c..0c059cf0c 100644 --- a/misc/fts.h +++ b/misc/rpmfts.h @@ -39,26 +39,19 @@ #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 +#if !defined(_LARGEFILE64_SOURCE) # define _LARGEFILE64_SOURCE #endif -#if defined(sun) -# define _D_EXACT_NAMLEN(d) ((d)->d_reclen) +#if !defined(_D_EXACT_NAMLEN) +# define _D_EXACT_NAMLEN(d) (strlen((d)->d_name)) #endif -#if defined(__APPLE__) -# define _D_EXACT_NAMLEN(d) (strlen((d)->d_name)) +#if defined(hpux) +# if !defined(_INCLUDE_POSIX_SOURCE) +# define _INCLUDE_POSIX_SOURCE +# endif #endif #endif @@ -151,7 +144,9 @@ typedef struct _ftsent { char fts_name[1]; /*!< file name */ } FTSENT; -__BEGIN_DECLS +#ifdef __cplusplus +extern "C" { +#endif /** * Return list of children of the current node. @@ -166,7 +161,7 @@ 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 + * @return 0 on success, -1 on error */ RPM_GNUC_INTERNAL int Fts_close (FTS * sp) __THROW @@ -198,12 +193,15 @@ FTSENT *Fts_read (FTS * sp) __THROW * @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 + * @return 0 on success, -1 on error */ RPM_GNUC_INTERNAL int Fts_set (FTS * sp, FTSENT * p, int instr) __THROW ; -__END_DECLS +#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 */ |