From 18bde0057a50ee1dd3862e76329bbe624db55e4e Mon Sep 17 00:00:00 2001 From: jperkin Date: Fri, 21 Mar 2014 14:19:31 +0000 Subject: Various portability fixes. Now builds on SunOS. --- sysutils/deforaos-browser/distinfo | 7 +++- .../patches/patch-data_pkgconfig.sh | 16 ++++++++ .../deforaos-browser/patches/patch-src_callbacks.c | 15 ++++++++ .../patches/patch-src_plugins_dirtree.c | 39 ++++++++++++++++++++ sysutils/deforaos-browser/patches/patch-src_vfs.c | 16 ++++++++ .../deforaos-browser/patches/patch-tools_dirtree.c | 43 ++++++++++++++++++++++ 6 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 sysutils/deforaos-browser/patches/patch-data_pkgconfig.sh create mode 100644 sysutils/deforaos-browser/patches/patch-src_callbacks.c create mode 100644 sysutils/deforaos-browser/patches/patch-src_plugins_dirtree.c create mode 100644 sysutils/deforaos-browser/patches/patch-src_vfs.c create mode 100644 sysutils/deforaos-browser/patches/patch-tools_dirtree.c (limited to 'sysutils') diff --git a/sysutils/deforaos-browser/distinfo b/sysutils/deforaos-browser/distinfo index f0e7c95d353..6c65eb28d3e 100644 --- a/sysutils/deforaos-browser/distinfo +++ b/sysutils/deforaos-browser/distinfo @@ -1,5 +1,10 @@ -$NetBSD: distinfo,v 1.5 2014/01/11 21:11:53 khorben Exp $ +$NetBSD: distinfo,v 1.6 2014/03/21 14:19:31 jperkin Exp $ SHA1 (Browser-0.4.13.tar.gz) = 2a7eec2032bc224864000a149ba0afc2b8562cbd RMD160 (Browser-0.4.13.tar.gz) = 0cee3c24a8bc40a513aab6bd794bbd9865ac73f7 Size (Browser-0.4.13.tar.gz) = 129587 bytes +SHA1 (patch-data_pkgconfig.sh) = 4d331028b647bcd671fadeda613ecc29d56d3017 +SHA1 (patch-src_callbacks.c) = 81cc77f99c58a1c0de61f4096808d77d99cce4fd +SHA1 (patch-src_plugins_dirtree.c) = 9abeac0ad6947d19435276708aefe0c9235e9b92 +SHA1 (patch-src_vfs.c) = e604b316be270e210c95b889d2c853aefd8bbc46 +SHA1 (patch-tools_dirtree.c) = 1c404e749464d30773360a43485117010d1cbd15 diff --git a/sysutils/deforaos-browser/patches/patch-data_pkgconfig.sh b/sysutils/deforaos-browser/patches/patch-data_pkgconfig.sh new file mode 100644 index 00000000000..67794135aed --- /dev/null +++ b/sysutils/deforaos-browser/patches/patch-data_pkgconfig.sh @@ -0,0 +1,16 @@ +$NetBSD: patch-data_pkgconfig.sh,v 1.1 2014/03/21 14:19:31 jperkin Exp $ + +Use correct rpath flag on SunOS. + +--- data/pkgconfig.sh.orig 2013-01-12 02:44:39.000000000 +0000 ++++ data/pkgconfig.sh +@@ -114,6 +114,9 @@ while [ $# -gt 0 ]; do + Darwin) + RPATH="-Wl,-rpath,\${libdir}" + ;; ++ SunOS) ++ RPATH="-Wl,-R\${libdir}" ++ ;; + esac + fi + diff --git a/sysutils/deforaos-browser/patches/patch-src_callbacks.c b/sysutils/deforaos-browser/patches/patch-src_callbacks.c new file mode 100644 index 00000000000..a14cadbbc8c --- /dev/null +++ b/sysutils/deforaos-browser/patches/patch-src_callbacks.c @@ -0,0 +1,15 @@ +$NetBSD: patch-src_callbacks.c,v 1.1 2014/03/21 14:19:31 jperkin Exp $ + +Support unmount() on SunOS. + +--- src/callbacks.c.orig 2013-03-11 01:38:09.000000000 +0000 ++++ src/callbacks.c +@@ -18,7 +18,7 @@ + #include + #ifndef __GNU__ /* XXX hurd portability */ + # include +-# if defined(__linux__) || defined(__CYGWIN__) ++# if defined(__linux__) || defined(__CYGWIN__) || defined(__sun) + # define unmount(a, b) umount(a) + # endif + # ifndef unmount diff --git a/sysutils/deforaos-browser/patches/patch-src_plugins_dirtree.c b/sysutils/deforaos-browser/patches/patch-src_plugins_dirtree.c new file mode 100644 index 00000000000..87b094affad --- /dev/null +++ b/sysutils/deforaos-browser/patches/patch-src_plugins_dirtree.c @@ -0,0 +1,39 @@ +$NetBSD: patch-src_plugins_dirtree.c,v 1.1 2014/03/21 14:19:31 jperkin Exp $ + +Portable directory tests. + +--- src/plugins/dirtree.c.orig 2013-02-28 01:03:34.000000000 +0000 ++++ src/plugins/dirtree.c +@@ -232,6 +232,9 @@ static gboolean _dirtree_refresh_folder( + gboolean ret = FALSE; + DIR * dir; + struct dirent * de; ++#ifdef __sun ++ struct stat st; ++#endif + GtkTreeModel * model = GTK_TREE_MODEL(dirtree->store); + GtkTreeIter iter; + GtkTreePath * s; +@@ -256,14 +259,22 @@ static gboolean _dirtree_refresh_folder( + path = ""; + while((de = readdir(dir)) != NULL) + { ++#ifdef __sun ++ stat(de->d_name, &st); ++#endif + /* skip hidden folders except if we traverse it */ + if(basename != NULL && strcmp(de->d_name, basename) == 0) + ret = TRUE; + else if(de->d_name[0] == '.') + continue; ++#ifdef __sun ++ else if (!(st.st_mode & S_IFDIR)) ++ continue; ++#else + /* XXX d_type is not portable */ + else if(de->d_type != DT_DIR) + continue; ++#endif + q = string_new_append(path, "/", de->d_name, NULL); + /* FIXME check if the node already exists */ + r = (q != NULL) ? g_filename_display_basename(q) : NULL; diff --git a/sysutils/deforaos-browser/patches/patch-src_vfs.c b/sysutils/deforaos-browser/patches/patch-src_vfs.c new file mode 100644 index 00000000000..a41f404cc43 --- /dev/null +++ b/sysutils/deforaos-browser/patches/patch-src_vfs.c @@ -0,0 +1,16 @@ +$NetBSD: patch-src_vfs.c,v 1.1 2014/03/21 14:19:31 jperkin Exp $ + +Need sys/fcntl.h for O_RDONLY on SunOS. + +--- src/vfs.c.orig 2013-10-04 23:47:17.000000000 +0000 ++++ src/vfs.c +@@ -18,6 +18,9 @@ + #include + #include + #include ++#ifdef __sun ++#include ++#endif + #include "vfs.h" + + diff --git a/sysutils/deforaos-browser/patches/patch-tools_dirtree.c b/sysutils/deforaos-browser/patches/patch-tools_dirtree.c new file mode 100644 index 00000000000..7240ba3b80f --- /dev/null +++ b/sysutils/deforaos-browser/patches/patch-tools_dirtree.c @@ -0,0 +1,43 @@ +$NetBSD: patch-tools_dirtree.c,v 1.1 2014/03/21 14:19:31 jperkin Exp $ + +Portable directory tests. + +--- tools/dirtree.c.orig 2013-01-02 03:37:28.000000000 +0000 ++++ tools/dirtree.c +@@ -22,6 +22,9 @@ + #include + #include + #include ++#ifdef __sun ++#include ++#endif + + + /* dirtree */ +@@ -111,6 +114,9 @@ static int _dirtree_add(GtkTreeStore * s + char * str; + DIR * dir; + struct dirent * de; ++#ifdef __sun ++ struct stat st; ++#endif + char * q; + GtkTreeIter iter2; + +@@ -128,9 +134,16 @@ static int _dirtree_add(GtkTreeStore * s + snprintf(str, len + 1, "%s/", p); + while((de = readdir(dir)) != NULL) + { ++#ifdef __sun ++ stat(de->d_name, &st); ++ if(!(st.st_mode & S_IFDIR) ++ || strcmp(".", de->d_name) == 0 ++ || strcmp("..", de->d_name) == 0) ++#else + if(!(de->d_type & DT_DIR) + || strcmp(".", de->d_name) == 0 + || strcmp("..", de->d_name) == 0) ++#endif + continue; + if((q = realloc(str, len + strlen(de->d_name) + 1)) == NULL) + continue; -- cgit v1.2.3