pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

xjadeo: Backport getmntent() patches from sysutils/fam



Module Name:	pkgsrc-wip
Committed By:	Kamil Rytarowski <n54%gmx.com@localhost>
Pushed By:	kamil
Date:		Sun Jun 19 02:01:47 2016 +0200
Changeset:	c8046f8966a08b58ad6d31fa2859fb06f24b8f03

Modified Files:
	xjadeo/PLIST
	xjadeo/distinfo
Added Files:
	xjadeo/patches/patch-src_xjadeo_libsofd.c

Log Message:
xjadeo: Backport getmntent() patches from sysutils/fam

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=c8046f8966a08b58ad6d31fa2859fb06f24b8f03

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 xjadeo/PLIST                              |   5 +
 xjadeo/distinfo                           |   1 +
 xjadeo/patches/patch-src_xjadeo_libsofd.c | 172 ++++++++++++++++++++++++++++++
 3 files changed, 178 insertions(+)

diffs:
diff --git a/xjadeo/PLIST b/xjadeo/PLIST
index 48d96a5..7209748 100644
--- a/xjadeo/PLIST
+++ b/xjadeo/PLIST
@@ -1 +1,6 @@
 @comment $NetBSD$
+bin/xjadeo
+bin/xjremote
+man/man1/xjadeo.1
+man/man1/xjremote.1
+share/xjadeo/ArdourMono.ttf
diff --git a/xjadeo/distinfo b/xjadeo/distinfo
index 83be308..e5cbb14 100644
--- a/xjadeo/distinfo
+++ b/xjadeo/distinfo
@@ -6,3 +6,4 @@ SHA512 (xjadeo-0.8.5.tar.gz) = 124644df6b18518fd7cfabea47cf4b466d41f771891df6805
 Size (xjadeo-0.8.5.tar.gz) = 996023 bytes
 SHA1 (patch-configure.ac) = 59dec1d2b0d1922ef8cde791d7c8ac1f349eaa82
 SHA1 (patch-src_xjadeo_Makefile.am) = 7b1d2374ec71a6f64698bc5ffb35db1e6cdee829
+SHA1 (patch-src_xjadeo_libsofd.c) = 5f2cd871879217ad4dfa10ee855a2fad3ae34397
diff --git a/xjadeo/patches/patch-src_xjadeo_libsofd.c b/xjadeo/patches/patch-src_xjadeo_libsofd.c
new file mode 100644
index 0000000..519cd1b
--- /dev/null
+++ b/xjadeo/patches/patch-src_xjadeo_libsofd.c
@@ -0,0 +1,172 @@
+$NetBSD$
+
+--- src/xjadeo/libsofd.c.orig	2015-11-25 14:17:19.000000000 +0000
++++ src/xjadeo/libsofd.c
+@@ -334,8 +334,167 @@ const char *x_fib_recent_file(const char
+ 
+ #ifdef XFIB
+ #if (defined HAVE_LIBXV || defined HAVE_IMLIB2 || (defined HAVE_GL && !defined PLATFORM_WINDOWS && !defined PLATFORM_OSX))
++#if defined PLATFORM_LINUX
+ #include <mntent.h>
++#endif
+ #include <dirent.h>
++#if defined PLATFORM_NETBSD
++#include <sys/types.h>
++#include <sys/statvfs.h>
++
++#include <stdio.h>
++
++#define MOUNTED "dummy"
++
++#define MNTTYPE_NFS "nfs"
++
++struct mntent {
++        char *mnt_fsname;
++        char *mnt_dir;
++        char *mnt_type;
++        char *mnt_opts;
++        int mnt_freq;
++        int mnt_passno;
++};
++
++#define setmntent(x,y) ((FILE *)0x1)
++struct mntent *getmntent __P ((FILE *fp));
++char *hasmntopt __P ((const struct mntent *mnt, const char *option));
++#define endmntent(x) ((int)1)
++
++static int pos = -1;
++static int mntsize = -1;
++static struct mntent _mntent;
++
++char *
++hasmntopt (const struct mntent *mnt, const char *option)
++{
++        int found;
++        char *opt, *optbuf;
++
++        optbuf = strdup(mnt->mnt_opts);
++        found = 0;
++        for (opt = optbuf; (opt = strtok(opt, " ")) != NULL; opt = NULL) {
++                if (!strcasecmp(opt, option)) {
++			opt = opt - optbuf + mnt->mnt_opts;
++			free (optbuf);
++			return (opt);
++		}
++        }
++	free (optbuf);
++        return (NULL);
++}
++
++static char *
++catopt (char *s0, const char *s1)
++{
++        size_t i;
++        char *cp;
++
++        if (s1 == NULL || *s1 == '\0')
++                return s0;
++        if (s0 && *s0) {
++                i = strlen(s0) + strlen(s1) + 1 + 1;
++                if ((cp = (char *)malloc(i)) == NULL)
++			return (NULL);
++                (void)snprintf(cp, i, "%s %s", s0, s1);
++        } else
++                cp = strdup(s1);
++
++        if (s0)
++                free(s0);
++        return (cp);
++}
++
++static char *
++flags2opts (int flags)
++{
++        char *res;
++        res = NULL;
++        res = catopt(res, (flags & MNT_RDONLY) ? "ro" : "rw");
++        if (flags & MNT_SYNCHRONOUS)    res = catopt(res, "sync");
++        if (flags & MNT_NOEXEC)         res = catopt(res, "noexec");
++        if (flags & MNT_NOSUID)         res = catopt(res, "nosuid");
++#ifdef MNT_NODEV
++        if (flags & MNT_NODEV)          res = catopt(res, "nodev");
++#endif
++#ifdef MNT_UNION
++        if (flags & MNT_UNION)          res = catopt(res, "union");
++#endif
++        if (flags & MNT_ASYNC)          res = catopt(res, "async");
++#ifdef MNT_NOATIME
++        if (flags & MNT_NOATIME)        res = catopt(res, "noatime");
++#endif
++#ifdef MNT_NOCLUSTERR
++        if (flags & MNT_NOCLUSTERR)     res = catopt(res, "noclusterr");
++#endif
++#ifdef MNT_NOCLUSTERW
++        if (flags & MNT_NOCLUSTERW)     res = catopt(res, "noclusterw");
++#endif
++#ifdef MNT_NOSYMFOLLOW
++        if (flags & MNT_NOSYMFOLLOW)    res = catopt(res, "nosymfollow");
++#endif
++#ifdef MNT_SUIDDIR
++        if (flags & MNT_SUIDDIR)        res = catopt(res, "suiddir");
++#endif
++#ifdef MNT_NOCOREDUMP
++        if (flags & MNT_NOCOREDUMP)	res = catopt(res, "nocoredump");
++#endif
++#ifdef MNT_IGNORE
++        if (flags & MNT_IGNORE)		res = catopt(res, "hidden");
++#endif
++#ifdef MNT_SYMPERM
++        if (flags & MNT_SYMPERM)	res = catopt(res, "symperm");
++#endif
++#ifdef MNT_NODEVMTIME
++        if (flags & MNT_NODEVMTIME)	res = catopt(res, "nodevmtime");
++#endif
++#ifdef MNT_SOFTDEP
++        if (flags & MNT_SOFTDEP)	res = catopt(res, "softdep");
++#endif
++
++        return res;
++}
++
++static struct mntent *
++statfs_to_mntent (struct statvfs *mntbuf)
++{
++	static char opts_buf[40], *tmp;
++	
++	_mntent.mnt_fsname = mntbuf->f_mntfromname;
++	_mntent.mnt_dir = mntbuf->f_mntonname;
++	_mntent.mnt_type = mntbuf->f_fstypename;
++	tmp = flags2opts (mntbuf->f_flag);
++
++	if (tmp) {
++		opts_buf[sizeof(opts_buf)-1] = '\0';
++		strncpy (opts_buf, tmp, sizeof(opts_buf)-1);
++		free (tmp);
++	} else {
++		*opts_buf = '\0';
++	}
++	_mntent.mnt_opts = opts_buf;	
++	_mntent.mnt_freq = _mntent.mnt_passno = 0;
++	return (&_mntent);
++}
++
++struct mntent *
++getmntent (FILE *fp)
++{
++	static struct statvfs *mntbuf;
++
++	if (pos == -1 || mntsize == -1)
++		mntsize = getmntinfo (&mntbuf, MNT_NOWAIT);
++
++	++pos;
++	if (pos == mntsize) {
++		pos = mntsize = -1;
++		return (NULL);
++	}
++
++	return (statfs_to_mntent (&mntbuf[pos]));
++}
++#endif
+ 
+ #include <X11/Xlib.h>
+ #include <X11/Xatom.h>


Home | Main Index | Thread Index | Old Index