summaryrefslogtreecommitdiff
path: root/deskutils
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2023-02-20 23:12:11 -0800
committerYuri Victorovich <yuri@FreeBSD.org>2023-02-21 01:05:29 -0800
commit2ed96e28b3629d97e11811ce68b609ec3f2fe629 (patch)
tree6aa453fd07d8a3596f7a2a0738ca55a7c9a67172 /deskutils
parentdb56dc97016bd16f2f58a19afaa0ed2e5113b5f1 (diff)
downloadfreebsd-ports-2ed96e28b3629d97e11811ce68b609ec3f2fe629.zip
deskutils/spacefm: New port: SpaceFM file manager
Diffstat (limited to 'deskutils')
-rw-r--r--deskutils/Makefile1
-rw-r--r--deskutils/spacefm/Makefile68
-rw-r--r--deskutils/spacefm/distinfo3
-rw-r--r--deskutils/spacefm/files/patch-src_settings.c10
-rw-r--r--deskutils/spacefm/files/patch-src_vfs_vfs-file-info.h11
-rw-r--r--deskutils/spacefm/files/patch-src_vfs_vfs-volume-nohal.c105
-rw-r--r--deskutils/spacefm/pkg-descr4
-rw-r--r--deskutils/spacefm/pkg-plist84
8 files changed, 286 insertions, 0 deletions
diff --git a/deskutils/Makefile b/deskutils/Makefile
index 2dc79156f89e..8848397fb8f3 100644
--- a/deskutils/Makefile
+++ b/deskutils/Makefile
@@ -246,6 +246,7 @@
SUBDIR += sliderule
SUBDIR += solanum
SUBDIR += sowon
+ SUBDIR += spacefm
SUBDIR += spice-gtk
SUBDIR += subsurface
SUBDIR += synapse
diff --git a/deskutils/spacefm/Makefile b/deskutils/spacefm/Makefile
new file mode 100644
index 000000000000..234c72db8622
--- /dev/null
+++ b/deskutils/spacefm/Makefile
@@ -0,0 +1,68 @@
+PORTNAME= spacefm
+DISTVERSION= 1.0.6
+CATEGORIES= deskutils
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= SpaceFM file manager
+WWW= https://ignorantguru.github.io/spacefm
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+BUILD_DEPENDS= bash:shells/bash # for configure
+LIB_DEPENDS= libffmpegthumbnailer.so:multimedia/ffmpegthumbnailer \
+ libinotify.so:devel/libinotify \
+ libstartup-notification-1.so:x11/startup-notification \
+ libudev.so:devel/libudev-devd
+RUN_DEPENDS= bash:shells/bash
+
+USES= desktop-file-utils gettext gmake gnome localbase:ldflags \
+ pkgconfig shared-mime-info shebangfix xorg
+USE_GNOME= cairo gdkpixbuf2 glib20 gtk20 intltool pango
+USE_XORG= x11
+
+USE_GITHUB= yes
+GH_ACCOUNT= IgnorantGuru
+
+SHEBANG_FILES= src/spacefm-auth.bash spacefm-installer
+
+GNU_CONFIGURE= yes
+CONFIGURE_SHELL= ${PREFIX}/bin/bash
+CONFIGURE_ARGS= --sysconfdir=${LOCALBASE}/etc \
+ --with-bash-path=${LOCALBASE}/bin/bash
+
+CFLAGS+= -Dstat64=stat -Dfstat64=fstat -Dlstat64=lstat \
+ -fcommon
+LDFLAGS+= -lX11 -linotify
+
+OPTIONS_DEFINE= DOCS
+OPTIONS_GROUP= OPT_DEPS
+OPTIONS_GROUP_OPT_DEPS= CURLFTPFS IFUSE JMTPFS LSOF PHOTOFS
+
+PORTDOCS= *
+
+CURLFTPFS_DESC= Mount FTP shares
+CURLFTPFS_RUN_DEPENDS= fusefs-curlftpfs>0:sysutils/fusefs-curlftpfs
+
+IFUSE_DESC= Mount your iPhone/iPod Touch
+IFUSE_RUN_DEPENDS= fusefs-ifuse>0:sysutils/fusefs-ifuse
+
+JMTPFS_DESC= Mount MTP devices
+JMTPFS_RUN_DEPENDS= fusefs-jmtpfs>0:sysutils/fusefs-jmtpfs
+
+LSOF_DESC= Device processes
+LSOF_RUN_DEPENDS= lsof:sysutils/lsof
+
+PHOTOFS_DESC= Mount cameras
+PHOTOFS_RUN_DEPENDS= fusefs-gphotofs>0:graphics/fusefs-gphotofs
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|#!/bin/bash|#!${LOCALBASE}/bin/bash|' \
+ ${WRKSRC}/src/ptk/ptk-handler.c
+ @${REINPLACE_CMD} -e '\
+ s|^/bin/bash|${LOCALBASE}/bin/bash|; \
+ s|/usr/bin/sha256sum|/sbin/sha256| \
+ ' \
+ ${WRKSRC}/src/spacefm-auth.bash
+
+.include <bsd.port.mk>
diff --git a/deskutils/spacefm/distinfo b/deskutils/spacefm/distinfo
new file mode 100644
index 000000000000..d512763c508d
--- /dev/null
+++ b/deskutils/spacefm/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1676930139
+SHA256 (IgnorantGuru-spacefm-1.0.6_GH0.tar.gz) = fedea9fcad776e0af4b8d90c5a1c86684a9c96ef1cdd4e959530ce93bdebe7c9
+SIZE (IgnorantGuru-spacefm-1.0.6_GH0.tar.gz) = 3498587
diff --git a/deskutils/spacefm/files/patch-src_settings.c b/deskutils/spacefm/files/patch-src_settings.c
new file mode 100644
index 000000000000..8d9b84e42548
--- /dev/null
+++ b/deskutils/spacefm/files/patch-src_settings.c
@@ -0,0 +1,10 @@
+--- src/settings.c.orig 2023-02-20 22:03:12 UTC
++++ src/settings.c
+@@ -21,6 +21,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <sys/wait.h>
+
+ #include "glib-utils.h" /* for g_mkdir_with_parents() */
+ #include <glib/gi18n.h>
diff --git a/deskutils/spacefm/files/patch-src_vfs_vfs-file-info.h b/deskutils/spacefm/files/patch-src_vfs_vfs-file-info.h
new file mode 100644
index 000000000000..d3bcc842f098
--- /dev/null
+++ b/deskutils/spacefm/files/patch-src_vfs_vfs-file-info.h
@@ -0,0 +1,11 @@
+--- src/vfs/vfs-file-info.h.orig 2023-02-20 22:01:54 UTC
++++ src/vfs/vfs-file-info.h
+@@ -56,7 +56,7 @@ struct _VFSFileInfo
+ time_t mtime;
+ time_t atime;
+ long blksize; //sfm was long then blksize_t but blksize_t not defined for squeeze gcc
+- blkcnt64_t blocks; //sfm was blkcnt_t
++ blkcnt_t blocks; //sfm was blkcnt_t
+
+ char* name; /* real name on file system */
+ char* disp_name; /* displayed name (in UTF-8) */
diff --git a/deskutils/spacefm/files/patch-src_vfs_vfs-volume-nohal.c b/deskutils/spacefm/files/patch-src_vfs_vfs-volume-nohal.c
new file mode 100644
index 000000000000..1a9e9198f04b
--- /dev/null
+++ b/deskutils/spacefm/files/patch-src_vfs_vfs-volume-nohal.c
@@ -0,0 +1,105 @@
+--- src/vfs/vfs-volume-nohal.c.orig 2023-02-20 22:04:57 UTC
++++ src/vfs/vfs-volume-nohal.c
+@@ -35,8 +35,8 @@
+ #include <sys/wait.h>
+
+ #include <signal.h> // kill
+-#include <linux/kdev_t.h> // MAJOR MINOR
+-#include <sys/sysmacros.h> // needed for dev_t
++//#include <linux/kdev_t.h> // MAJOR MINOR
++//#include <sys/sysmacros.h> // needed for dev_t
+
+ #ifdef HAVE_STATVFS
+ #include <sys/statvfs.h>
+@@ -1000,6 +1000,7 @@ void info_device_properties( device_t *device )
+
+ gchar* info_mount_points( device_t *device )
+ {
++#if 0
+ gchar *contents;
+ gchar **lines;
+ GError *error;
+@@ -1137,6 +1138,10 @@ gchar* info_mount_points( device_t *device )
+ }
+ else
+ return NULL;
++
++#else
++ return NULL;
++#endif
+ }
+
+ void info_partition_table( device_t *device )
+@@ -1489,9 +1494,11 @@ char* device_show_info( device_t *device )
+
+ line[i++] = g_strdup_printf("Showing information for %s\n", device->devnode );
+ line[i++] = g_strdup_printf(" native-path: %s\n", device->native_path );
++#if 0
+ line[i++] = g_strdup_printf(" device: %u:%u\n",
+ (unsigned int)MAJOR( device->devnum ),
+ (unsigned int)MINOR( device->devnum ) );
++#endif
+ line[i++] = g_strdup_printf(" device-file: %s\n", device->devnode );
+ line[i++] = g_strdup_printf(" presentation: %s\n", device->devnode );
+ if ( device->device_by_id )
+@@ -1945,11 +1952,13 @@ void parse_mounts( gboolean report )
+ if ( volume = vfs_volume_read_by_mount( devnum,
+ devmount->mount_points ) )
+ {
++#if 0
+ printf( "special mount changed: %s (%u:%u) on %s\n",
+ volume->device_file,
+ (unsigned int)MAJOR( volume->devnum ),
+ (unsigned int)MINOR( volume->devnum ),
+ devmount->mount_points );
++#endif
+ vfs_volume_device_added( volume, FALSE ); //frees volume if needed
+ }
+ else
+@@ -2465,8 +2474,12 @@ void vfs_volume_set_info( VFSVolume* volume )
+ disp_fstype = g_strdup( volume->fs_type );// g_strdup_printf( "-%s", volume->fs_type );
+ else
+ disp_fstype = g_strdup( "" );
++#if 0
+ disp_devnum = g_strdup_printf( "%u:%u", (unsigned int)MAJOR( volume->devnum ),
+ (unsigned int)MINOR( volume->devnum ) );
++#else
++ disp_devnum = g_strdup_printf( "" );
++#endif
+
+ char* fmt = xset_get_s( "dev_dispname" );
+ if ( !fmt )
+@@ -3652,6 +3665,7 @@ gboolean vfs_volume_is_automount( VFSVolume* vol )
+
+ char* vfs_volume_device_info( VFSVolume* vol )
+ {
++#if 0
+ struct udev_device* udevice = udev_device_new_from_devnum( udev, 'b',
+ vol->devnum );
+ if ( udevice == NULL )
+@@ -3671,6 +3685,9 @@ char* vfs_volume_device_info( VFSVolume* vol )
+ device_free( device );
+ udev_device_unref( udevice );
+ return info;
++#else
++ return g_strdup_printf( _("( no udev device )") );
++#endif
+ }
+
+ char* vfs_volume_device_mount_cmd( VFSVolume* vol, const char* options,
+@@ -4203,6 +4220,7 @@ static void vfs_volume_device_added( VFSVolume* volume
+
+ static gboolean vfs_volume_nonblock_removed( dev_t devnum )
+ {
++#if 0
+ GList* l;
+ VFSVolume* volume;
+
+@@ -4226,6 +4244,7 @@ static gboolean vfs_volume_nonblock_removed( dev_t dev
+ return TRUE;
+ }
+ }
++#endif
+ return FALSE;
+ }
+
diff --git a/deskutils/spacefm/pkg-descr b/deskutils/spacefm/pkg-descr
new file mode 100644
index 000000000000..16f3c2e86ddb
--- /dev/null
+++ b/deskutils/spacefm/pkg-descr
@@ -0,0 +1,4 @@
+SpaceFM is a multi-panel tabbed file and desktop manager for Linux with built-in
+VFS, udev- or HAL-based device manager, customisable menu system, and bash-GTK
+integration. SpaceFM aims to provide a stable, capable file manager with
+significant customisation capabilities.
diff --git a/deskutils/spacefm/pkg-plist b/deskutils/spacefm/pkg-plist
new file mode 100644
index 000000000000..75506f1c21a6
--- /dev/null
+++ b/deskutils/spacefm/pkg-plist
@@ -0,0 +1,84 @@
+bin/spacefm
+bin/spacefm-auth
+bin/spacefm-installer
+%%ETCDIR%%/spacefm.conf
+share/applications/spacefm-find.desktop
+share/applications/spacefm-folder-handler.desktop
+share/applications/spacefm.desktop
+share/icons/Faenza/apps/48/spacefm-find.png
+share/icons/Faenza/apps/48/spacefm-root.png
+share/icons/Faenza/apps/48/spacefm.png
+share/icons/hicolor/128x128/apps/spacefm-128-cube-blue.png
+share/icons/hicolor/128x128/apps/spacefm-128-cube-green.png
+share/icons/hicolor/128x128/apps/spacefm-128-cube-red.png
+share/icons/hicolor/128x128/apps/spacefm-128-pyramid-blue.png
+share/icons/hicolor/128x128/apps/spacefm-128-pyramid-green.png
+share/icons/hicolor/128x128/apps/spacefm-128-pyramid-red.png
+share/icons/hicolor/48x48/apps/spacefm-48-cube-blue.png
+share/icons/hicolor/48x48/apps/spacefm-48-cube-green.png
+share/icons/hicolor/48x48/apps/spacefm-48-cube-red.png
+share/icons/hicolor/48x48/apps/spacefm-48-folder-blue.png
+share/icons/hicolor/48x48/apps/spacefm-48-folder-red.png
+share/icons/hicolor/48x48/apps/spacefm-48-pyramid-blue.png
+share/icons/hicolor/48x48/apps/spacefm-48-pyramid-green.png
+share/icons/hicolor/48x48/apps/spacefm-48-pyramid-red.png
+share/icons/hicolor/48x48/apps/spacefm-find.png
+share/icons/hicolor/48x48/apps/spacefm-root.png
+share/icons/hicolor/48x48/apps/spacefm.png
+share/locale/af/LC_MESSAGES/spacefm.mo
+share/locale/ar/LC_MESSAGES/spacefm.mo
+share/locale/bg/LC_MESSAGES/spacefm.mo
+share/locale/bn_IN/LC_MESSAGES/spacefm.mo
+share/locale/ca/LC_MESSAGES/spacefm.mo
+share/locale/cs/LC_MESSAGES/spacefm.mo
+share/locale/da/LC_MESSAGES/spacefm.mo
+share/locale/de/LC_MESSAGES/spacefm.mo
+share/locale/el/LC_MESSAGES/spacefm.mo
+share/locale/es/LC_MESSAGES/spacefm.mo
+share/locale/et/LC_MESSAGES/spacefm.mo
+share/locale/eu/LC_MESSAGES/spacefm.mo
+share/locale/fa/LC_MESSAGES/spacefm.mo
+share/locale/fi/LC_MESSAGES/spacefm.mo
+share/locale/fr/LC_MESSAGES/spacefm.mo
+share/locale/gl/LC_MESSAGES/spacefm.mo
+share/locale/he/LC_MESSAGES/spacefm.mo
+share/locale/hr/LC_MESSAGES/spacefm.mo
+share/locale/hu/LC_MESSAGES/spacefm.mo
+share/locale/id/LC_MESSAGES/spacefm.mo
+share/locale/it/LC_MESSAGES/spacefm.mo
+share/locale/ja/LC_MESSAGES/spacefm.mo
+share/locale/km/LC_MESSAGES/spacefm.mo
+share/locale/ko/LC_MESSAGES/spacefm.mo
+share/locale/lt/LC_MESSAGES/spacefm.mo
+share/locale/ltg/LC_MESSAGES/spacefm.mo
+share/locale/ml/LC_MESSAGES/spacefm.mo
+share/locale/ms/LC_MESSAGES/spacefm.mo
+share/locale/nb/LC_MESSAGES/spacefm.mo
+share/locale/nl/LC_MESSAGES/spacefm.mo
+share/locale/nn/LC_MESSAGES/spacefm.mo
+share/locale/pl/LC_MESSAGES/spacefm.mo
+share/locale/ps/LC_MESSAGES/spacefm.mo
+share/locale/pt/LC_MESSAGES/spacefm.mo
+share/locale/pt_BR/LC_MESSAGES/spacefm.mo
+share/locale/ru/LC_MESSAGES/spacefm.mo
+share/locale/sk/LC_MESSAGES/spacefm.mo
+share/locale/sl/LC_MESSAGES/spacefm.mo
+share/locale/sr/LC_MESSAGES/spacefm.mo
+share/locale/sr@latin/LC_MESSAGES/spacefm.mo
+share/locale/sv/LC_MESSAGES/spacefm.mo
+share/locale/tr/LC_MESSAGES/spacefm.mo
+share/locale/uk/LC_MESSAGES/spacefm.mo
+share/locale/ur/LC_MESSAGES/spacefm.mo
+share/locale/ur_PK/LC_MESSAGES/spacefm.mo
+share/locale/vi/LC_MESSAGES/spacefm.mo
+share/locale/zh_CN/LC_MESSAGES/spacefm.mo
+share/locale/zh_TW/LC_MESSAGES/spacefm.mo
+share/mime/packages/spacefm-mime.xml
+%%DATADIR%%/ui/about-dlg.ui
+%%DATADIR%%/ui/appchooserdlg.ui
+%%DATADIR%%/ui/file_properties.ui
+%%DATADIR%%/ui/find-files.ui
+%%DATADIR%%/ui/find-files2.ui
+%%DATADIR%%/ui/godlg.ui
+%%DATADIR%%/ui/prefdlg.ui
+%%DATADIR%%/ui/prefdlg2.ui