summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbiao716.wang <biao716.wang@samsung.com>2022-11-04 10:22:37 +0900
committerbiao716.wang <biao716.wang@samsung.com>2023-03-03 16:36:46 +0900
commit5a8c0b62b2711e067cc3263c9d828f1157a4d14d (patch)
tree84575a6945b414287b654aede757583d59d9856e
parenta0dea826f88a4c5c9ceb722592cceedeb75a32fe (diff)
downloadlibrpm-tizen-5a8c0b62b2711e067cc3263c9d828f1157a4d14d.tar.gz
librpm-tizen-5a8c0b62b2711e067cc3263c9d828f1157a4d14d.tar.bz2
librpm-tizen-5a8c0b62b2711e067cc3263c9d828f1157a4d14d.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.c2
-rw-r--r--configure.ac2
-rw-r--r--debian/control8
-rw-r--r--debian/librpm-tizen.install4
-rwxr-xr-xdebian/rules6
-rw-r--r--misc/Makefile.am2
-rw-r--r--misc/fts.c25
-rw-r--r--misc/rpmfts.h (renamed from misc/fts.h)34
-rw-r--r--python/Makefile.am20
-rw-r--r--python/rpmbmodule.c4
-rw-r--r--python/rpmfd-py.c2
-rw-r--r--python/rpmii-py.c1
-rw-r--r--python/rpmmi-py.c1
-rw-r--r--python/rpmsmodule.c6
-rw-r--r--python/rpmsystem-py.h1
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 */