I am uploading a NMU to DELAYED/10 with the suggested changes in order to fix
this.
Please find the debdiff attached.
diff -Nru umview-0.8.2/debian/changelog umview-0.8.2/debian/changelog
--- umview-0.8.2/debian/changelog 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/debian/changelog 2023-10-02 17:10:30.000000000 +0200
@@ -1,3 +1,16 @@
+umview (0.8.2-3.1) unstable; urgency=medium
+
+ * Non-maintainer upload
+ * Drop obsolete field DM-Upload-Allowed
+ * Convert to source format 3.0 (Closes: #1007280)
+
+ [ Fernando Seiti Furusato ]
+ * d/patches: Add ppc64el-syscall.patch in order to take powerpc
+ 64-bit into account when modifying/defining some macros
+ * d/control: Add ppc64el architecture (Closes: #780302)
+
+ -- Bastian Germann <b...@debian.org> Mon, 02 Oct 2023 17:10:30 +0200
+
umview (0.8.2-3) unstable; urgency=medium
* Revert to debhelper's compat level 10
diff -Nru umview-0.8.2/debian/control umview-0.8.2/debian/control
--- umview-0.8.2/debian/control 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/debian/control 2023-10-02 17:10:30.000000000 +0200
@@ -3,13 +3,12 @@
Priority: optional
Maintainer: Debian VSquare Team <virtualsqu...@cs.unibo.it>
Uploaders: Ludovico Gardenghi <gar...@debian.org>, Guido Trotter
<ultrot...@debian.org>, Filippo Giunchedi <fili...@debian.org>, Andrea
Capriotti <capri...@debian.org>
-DM-Upload-Allowed: yes
Build-Depends: debhelper (>= 10), libcap-dev, libvdeplug-dev, libfuse-dev,
liblwipv6-dev, libglib2.0-dev, cdbs, dpkg-dev (>= 1.16.1~)
Homepage: http://view-os.sourceforge.net
Standards-Version: 4.5.0
Package: umview
-Architecture: i386 amd64 powerpc powerpcspe ppc64
+Architecture: i386 amd64 powerpc powerpcspe ppc64 ppc64el
Depends: libumlib0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Recommends: kernel-patch-viewos, libpurelibc1
Suggests: umview-mod-umdevtap, umview-mod-umlwip
@@ -35,7 +34,7 @@
packages because they depend on additional libraries.
Package: libumlib0
-Architecture: i386 amd64 powerpc powerpcspe ppc64
+Architecture: i386 amd64 powerpc powerpcspe ppc64 ppc64el
Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: View-OS in user space - Support library for modules
@@ -59,7 +58,7 @@
module.
Package: libumlib-dev
-Architecture: i386 amd64 powerpc powerpcspe ppc64
+Architecture: i386 amd64 powerpc powerpcspe ppc64 ppc64el
Conflicts: libumlib0-dev
Replaces: libumlib0-dev
Section: libdevel
@@ -87,7 +86,7 @@
tree).
Package: umview-mod-umlwip
-Architecture: i386 amd64 powerpc powerpcspe ppc64
+Architecture: i386 amd64 powerpc powerpcspe ppc64 ppc64el
Depends: libumlib0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: View-OS in user space - LWIPv6 gateway module
View-OS is a novel approach to the process/kernel interface. The semantics of
@@ -112,7 +111,7 @@
to the external world through a TUN/TAP device or a VDE switch.
Package: umview-mod-umdevtap
-Architecture: i386 amd64 powerpc powerpcspe ppc64
+Architecture: i386 amd64 powerpc powerpcspe ppc64 ppc64el
Depends: libumlib0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: View-OS in user space - Virtual TUN/TAP module
View-OS is a novel approach to the process/kernel interface. The semantics of
@@ -137,7 +136,7 @@
outer side, UMView opens a connection to a VDE switch.
Package: umview-mod-viewfs
-Architecture: i386 amd64 powerpc powerpcspe ppc64
+Architecture: i386 amd64 powerpc powerpcspe ppc64 ppc64el
Depends: libumlib0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
Description: View-OS in user space - Filesystem mangling modules
View-OS is a novel approach to the process/kernel interface. The semantics of
diff -Nru umview-0.8.2/debian/patches/debian.patch
umview-0.8.2/debian/patches/debian.patch
--- umview-0.8.2/debian/patches/debian.patch 1970-01-01 01:00:00.000000000
+0100
+++ umview-0.8.2/debian/patches/debian.patch 2023-10-02 17:10:30.000000000
+0200
@@ -0,0 +1,100 @@
+--- umview-0.8.2.orig/include/libummod.h
++++ umview-0.8.2/include/libummod.h
+@@ -41,7 +41,7 @@ int fcntl32(int fd, int cmd, long arg);
+ #define fcntl32 fcntl
+ #endif
+
+-int fcntl64(int fd, int cmd, long arg);
++extern int fcntl64 (int __fd, int __cmd, ...);
+
+ int _llseek(unsigned int fd, unsigned long offset_high,
+ unsigned long offset_low, loff_t *result, unsigned int whence);
+--- umview-0.8.2.orig/include/umdev.h
++++ umview-0.8.2/include/umdev.h
+@@ -11,6 +11,7 @@
+ #include <stdint.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+
+ #define IOCTLLENMASK 0x07ffffff
+ #define IOCTL_R 0x10000000
+--- umview-0.8.2.orig/um_viewfs/viewfs.c
++++ umview-0.8.2/um_viewfs/viewfs.c
+@@ -24,6 +24,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/statfs.h>
++#include <sys/sysmacros.h>
+ #include <string.h>
+ #include <pthread.h>
+ #include <utime.h>
+--- umview-0.8.2.orig/umfuse/umfuse.c
++++ umview-0.8.2/umfuse/umfuse.c
+@@ -55,6 +55,7 @@
+ #include <pwd.h>
+ #include <sys/statfs.h>
+ #include <sys/statvfs.h>
++#include <sys/sysmacros.h>
+ #include <config.h>
+ #include <umfuse_node.h>
+
+@@ -377,7 +378,7 @@ struct startmainopt {
+
+ static char *mountflag2options(unsigned long mountflags, void *data)
+ {
+- char opts[PATH_MAX];
++ char opts[PATH_MAX+1];
+ char *mountopts=data;
+ opts[0]=0;
+
+--- umview-0.8.2.orig/xmview/hashtab.c
++++ umview-0.8.2/xmview/hashtab.c
+@@ -454,7 +454,7 @@ struct ht_elem *ht_tab_pathadd(unsigned
+ const char *addpath;
+ struct ht_elem *rv;
+ if (source) {
+- char opts[PATH_MAX];
++ char opts[PATH_MAX + 1];
+ opts[0]=0;
+ if (mountflags & MS_REMOUNT)
+ strncat(opts,"remount,",PATH_MAX);
+--- umview-0.8.2.orig/xmview/um_plusio.c
++++ umview-0.8.2/xmview/um_plusio.c
+@@ -33,6 +33,7 @@
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/statfs.h>
++#include <sys/sysmacros.h>
+ #include <asm/ptrace.h>
+ #include <asm/unistd.h>
+ #include <linux/net.h>
+--- umview-0.8.2.orig/xmview/um_select.c
++++ umview-0.8.2/xmview/um_select.c
+@@ -168,13 +168,13 @@ static void getfdset(long addr,struct pc
+ {
+ FD_ZERO(lfds);
+ if (addr != umNULL)
+- umoven(pc,addr,(__FDELT(max)+1)*sizeof(__fd_mask),lfds);
++ umoven(pc,addr,(__FD_ELT(max)+1)*sizeof(__fd_mask),lfds);
+ }
+
+ static void putfdset(long addr, struct pcb* pc, int max, fd_set *lfds)
+ {
+ if (addr != umNULL)
+- ustoren(pc,addr,(__FDELT(max)+1)*sizeof(__fd_mask),lfds);
++ ustoren(pc,addr,(__FD_ELT(max)+1)*sizeof(__fd_mask),lfds);
+ }
+
+ static void selectpoll_signal(struct pcb *pc)
+@@ -464,8 +464,8 @@ int wrap_in_epoll_create(int sc_number,s
+ if (sc_number== __NR_epoll_create1)
+ flags = pc->sysargs[0];
+ #endif
+- /* Linux: EPOLL_CLOEXEC==O_CLOEXEC && EPOLL_NONBLOCK==O_NONBLOCK */
+- flags &= (EPOLL_CLOEXEC | EPOLL_NONBLOCK);
++ /* Linux: EPOLL_CLOEXEC==O_CLOEXEC */
++ flags &= (EPOLL_CLOEXEC);
+ //printk("wrap_in_epoll_create %x\n",flags);
+ pc->retval=lfd_open(NULL,-1,epoll_tag,flags,0);
+ return SC_CALLONXIT;
diff -Nru umview-0.8.2/debian/patches/ppc64el-syscall.patch
umview-0.8.2/debian/patches/ppc64el-syscall.patch
--- umview-0.8.2/debian/patches/ppc64el-syscall.patch 1970-01-01
01:00:00.000000000 +0100
+++ umview-0.8.2/debian/patches/ppc64el-syscall.patch 2023-10-02
17:10:30.000000000 +0200
@@ -0,0 +1,157 @@
+--- a/include/module.h
++++ b/include/module.h
+@@ -251,7 +251,7 @@
+
+ #define __NR_doesnotexist -1
+
+-#if defined(__x86_64__)
++#if defined(__x86_64__) || defined(__powerpc64__)
+ #define __NR_socketcall __NR_doesnotexist
+ #define __NR__newselect __NR_doesnotexist
+ #define __NR_umount __NR_doesnotexist
+--- a/um_lib/libummod.c
++++ b/um_lib/libummod.c
+@@ -49,7 +49,7 @@
+
+ int fcntl64(int fd, int cmd, long arg)
+ {
+-#if defined(__x86_64__)
++#if defined(__x86_64__) || defined(__powerpc64__)
+ return syscall(__NR_fcntl, fd, cmd, arg);
+ #else
+ return syscall(__NR_fcntl64, fd, cmd, arg);
+--- a/xmview/defs_ppc_km.h
++++ b/xmview/defs_ppc_km.h
+@@ -31,7 +31,47 @@
+
+ #define __NR_setpgrp __NR_doesnotexist
+
+-#define BIGENDIAN
++#ifdef __powerpc64__
++
++#ifdef __BIG_ENDIAN__
++# define BIGENDIAN
++#else
++# define LITTLEENDIAN
++#endif // __BIG_ENDIAN__
++
++#define __NR_socketcall __NR_doesnotexist
++
++#define __NR__newselect __NR_doesnotexist
++#define __NR_umount __NR_doesnotexist
++#define __NR_stat64 __NR_doesnotexist
++#define __NR_lstat64 __NR_doesnotexist
++#define __NR_fstat64 __NR_doesnotexist
++#undef __NR_chown32
++#define __NR_chown32 __NR_doesnotexist
++#undef __NR_lchown32
++#define __NR_lchown32 __NR_doesnotexist
++#undef __NR_fchown32
++#define __NR_fchown32 __NR_doesnotexist
++#define __NR_fcntl64 __NR_doesnotexist
++#define __NR__llseek __NR_doesnotexist
++#define __NR_truncate64 __NR_doesnotexist
++#define __NR_ftruncate64 __NR_doesnotexist
++#define __NR_send __NR_doesnotexist
++#define __NR_recv __NR_doesnotexist
++#define __NR_statfs64 __NR_doesnotexist
++#define __NR_fstatfs64 __NR_doesnotexist
++#define __NR_nice __NR_doesnotexist
++#define __NR_mmap2 __NR_doesnotexist
++
++/* XXX: should we find a more elegant solution? */
++#define wrap_in_statfs64 NULL
++#define wrap_in_fstatfs64 NULL
++
++#define wrap_in_stat wrap_in_stat64
++#define wrap_in_fstat wrap_in_fstat64
++
++#endif // __powerpc64__
++
+ #define LONG_LONG(_l,_h) \
+ ((long long)((unsigned long long)(unsigned)(_h) | ((unsigned long
long)(_l)<<32)))
+
+--- a/xmview/defs_ppc_um.h
++++ b/xmview/defs_ppc_um.h
+@@ -97,10 +97,50 @@
+ #define putsp(SP,PC) ( (PC)->saved_regs[PT_R1]=(SP) ;
+ #define putpc(PCX,PC) ( (PC)->saved_regs[10]=(PCX) )
+
+-#define BIGENDIAN
++#ifdef __powerpc64__
++
++#ifdef __BIG_ENDIAN__
++# define BIGENDIAN
++#else
++# define LITTLEENDIAN
++#endif // __BIG_ENDIAN__
++
++#define __NR_socketcall __NR_doesnotexist
++
++#define __NR__newselect __NR_doesnotexist
++#define __NR_umount __NR_doesnotexist
++#define __NR_stat64 __NR_doesnotexist
++#define __NR_lstat64 __NR_doesnotexist
++#define __NR_fstat64 __NR_doesnotexist
++#undef __NR_chown32
++#define __NR_chown32 __NR_doesnotexist
++#undef __NR_lchown32
++#define __NR_lchown32 __NR_doesnotexist
++#undef __NR_fchown32
++#define __NR_fchown32 __NR_doesnotexist
++#define __NR_fcntl64 __NR_doesnotexist
++#define __NR__llseek __NR_doesnotexist
++#define __NR_truncate64 __NR_doesnotexist
++#define __NR_ftruncate64 __NR_doesnotexist
++#define __NR_send __NR_doesnotexist
++#define __NR_recv __NR_doesnotexist
++#define __NR_statfs64 __NR_doesnotexist
++#define __NR_fstatfs64 __NR_doesnotexist
++#define __NR_nice __NR_doesnotexist
++#define __NR_mmap2 __NR_doesnotexist
++
++/* XXX: should we find a more elegant solution? */
++#define wrap_in_statfs64 NULL
++#define wrap_in_fstatfs64 NULL
++
++#define wrap_in_stat wrap_in_stat64
++#define wrap_in_fstat wrap_in_fstat64
++
++#endif // __powerpc64__
++
+ #define LONG_LONG(_l,_h) \
+ ((long long)((unsigned long long)(unsigned)(_h) | ((unsigned long
long)(_l)<<32)))
+
+-
+ #define __NR_setpgrp __NR_doesnotexist
++
+ #endif // _DEFS_PPC
+--- a/xmview/um_basicio.c
++++ b/xmview/um_basicio.c
+@@ -427,7 +427,7 @@
+ };
+ #endif
+
+-#if ! defined(__x86_64__)
++#if !defined(__x86_64__) && !defined(__powerpc64__)
+ #if 0
+ struct kstat {
+ unsigned long kst_dev;
+@@ -473,7 +473,7 @@
+ kbuf->kst_mtime = (unsigned long) buf->st_mtime;
+ kbuf->kst_ctime = (unsigned long) buf->st_ctime;
+ }
+-#endif // if not defined _x86_64
++#endif // if 0
+
+ int wrap_in_stat(int sc_number,struct pcb *pc,
+ struct ht_elem *hte, sysfun um_syscall)
+@@ -512,7 +512,7 @@
+ }
+ return SC_FAKE;
+ }
+-#endif // if not defined _x86_64
++#endif // if not defined _x86_64 && __powerpc64__
+
+ int wrap_in_stat64(int sc_number,struct pcb *pc,
+ struct ht_elem *hte, sysfun um_syscall)
diff -Nru umview-0.8.2/debian/patches/series umview-0.8.2/debian/patches/series
--- umview-0.8.2/debian/patches/series 1970-01-01 01:00:00.000000000 +0100
+++ umview-0.8.2/debian/patches/series 2023-10-02 17:10:30.000000000 +0200
@@ -0,0 +1,2 @@
+debian.patch
+ppc64el-syscall.patch
diff -Nru umview-0.8.2/debian/source/format umview-0.8.2/debian/source/format
--- umview-0.8.2/debian/source/format 1970-01-01 01:00:00.000000000 +0100
+++ umview-0.8.2/debian/source/format 2023-10-02 17:10:30.000000000 +0200
@@ -0,0 +1 @@
+3.0 (quilt)
diff -Nru umview-0.8.2/include/libummod.h umview-0.8.2/include/libummod.h
--- umview-0.8.2/include/libummod.h 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/include/libummod.h 2012-05-12 19:31:53.000000000 +0200
@@ -41,7 +41,7 @@
#define fcntl32 fcntl
#endif
-extern int fcntl64 (int __fd, int __cmd, ...);
+int fcntl64(int fd, int cmd, long arg);
int _llseek(unsigned int fd, unsigned long offset_high,
unsigned long offset_low, loff_t *result, unsigned int whence);
diff -Nru umview-0.8.2/include/umdev.h umview-0.8.2/include/umdev.h
--- umview-0.8.2/include/umdev.h 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/include/umdev.h 2012-05-12 19:31:53.000000000 +0200
@@ -11,7 +11,6 @@
#include <stdint.h>
#include <sys/types.h>
#include <sys/stat.h>
-#include <sys/sysmacros.h>
#define IOCTLLENMASK 0x07ffffff
#define IOCTL_R 0x10000000
diff -Nru umview-0.8.2/umfuse/umfuse.c umview-0.8.2/umfuse/umfuse.c
--- umview-0.8.2/umfuse/umfuse.c 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/umfuse/umfuse.c 2012-05-12 19:31:55.000000000 +0200
@@ -55,7 +55,6 @@
#include <pwd.h>
#include <sys/statfs.h>
#include <sys/statvfs.h>
-#include <sys/sysmacros.h>
#include <config.h>
#include <umfuse_node.h>
@@ -378,7 +377,7 @@
static char *mountflag2options(unsigned long mountflags, void *data)
{
- char opts[PATH_MAX+1];
+ char opts[PATH_MAX];
char *mountopts=data;
opts[0]=0;
diff -Nru umview-0.8.2/um_viewfs/viewfs.c umview-0.8.2/um_viewfs/viewfs.c
--- umview-0.8.2/um_viewfs/viewfs.c 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/um_viewfs/viewfs.c 2012-05-12 19:31:55.000000000 +0200
@@ -24,7 +24,6 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/statfs.h>
-#include <sys/sysmacros.h>
#include <string.h>
#include <pthread.h>
#include <utime.h>
diff -Nru umview-0.8.2/xmview/hashtab.c umview-0.8.2/xmview/hashtab.c
--- umview-0.8.2/xmview/hashtab.c 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/xmview/hashtab.c 2012-05-12 19:31:53.000000000 +0200
@@ -454,7 +454,7 @@
const char *addpath;
struct ht_elem *rv;
if (source) {
- char opts[PATH_MAX + 1];
+ char opts[PATH_MAX];
opts[0]=0;
if (mountflags & MS_REMOUNT)
strncat(opts,"remount,",PATH_MAX);
diff -Nru umview-0.8.2/xmview/um_plusio.c umview-0.8.2/xmview/um_plusio.c
--- umview-0.8.2/xmview/um_plusio.c 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/xmview/um_plusio.c 2012-05-12 19:31:53.000000000 +0200
@@ -33,7 +33,6 @@
#include <sys/types.h>
#include <sys/time.h>
#include <sys/statfs.h>
-#include <sys/sysmacros.h>
#include <asm/ptrace.h>
#include <asm/unistd.h>
#include <linux/net.h>
diff -Nru umview-0.8.2/xmview/um_select.c umview-0.8.2/xmview/um_select.c
--- umview-0.8.2/xmview/um_select.c 2023-10-02 17:39:23.000000000 +0200
+++ umview-0.8.2/xmview/um_select.c 2012-05-12 19:31:53.000000000 +0200
@@ -168,13 +168,13 @@
{
FD_ZERO(lfds);
if (addr != umNULL)
- umoven(pc,addr,(__FD_ELT(max)+1)*sizeof(__fd_mask),lfds);
+ umoven(pc,addr,(__FDELT(max)+1)*sizeof(__fd_mask),lfds);
}
static void putfdset(long addr, struct pcb* pc, int max, fd_set *lfds)
{
if (addr != umNULL)
- ustoren(pc,addr,(__FD_ELT(max)+1)*sizeof(__fd_mask),lfds);
+ ustoren(pc,addr,(__FDELT(max)+1)*sizeof(__fd_mask),lfds);
}
static void selectpoll_signal(struct pcb *pc)
@@ -464,8 +464,8 @@
if (sc_number== __NR_epoll_create1)
flags = pc->sysargs[0];
#endif
- /* Linux: EPOLL_CLOEXEC==O_CLOEXEC */
- flags &= (EPOLL_CLOEXEC);
+ /* Linux: EPOLL_CLOEXEC==O_CLOEXEC && EPOLL_NONBLOCK==O_NONBLOCK */
+ flags &= (EPOLL_CLOEXEC | EPOLL_NONBLOCK);
//printk("wrap_in_epoll_create %x\n",flags);
pc->retval=lfd_open(NULL,-1,epoll_tag,flags,0);
return SC_CALLONXIT;