From owner-dev-commits-ports-main@freebsd.org Fri Jun 18 13:03:54 2021 Return-Path: Delivered-To: dev-commits-ports-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4D95C6456B9; Fri, 18 Jun 2021 13:03:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4G5zdQ1Hjjz4RW1; Fri, 18 Jun 2021 13:03:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 14F0A233AE; Fri, 18 Jun 2021 13:03:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 15ID3rVr078178; Fri, 18 Jun 2021 13:03:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 15ID3rTo078177; Fri, 18 Jun 2021 13:03:53 GMT (envelope-from git) Date: Fri, 18 Jun 2021 13:03:53 GMT Message-Id: <202106181303.15ID3rTo078177@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Alexey Dokuchaev Subject: git: 458c0053ef12 - main - misc/clifm: new port had been added (+) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: danfe X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 458c0053ef12c03bc5663e907e618b9fa096ebc1 Auto-Submitted: auto-generated X-BeenThere: dev-commits-ports-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commits to the main branch of the FreeBSD ports repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jun 2021 13:03:54 -0000 The branch main has been updated by danfe: URL: https://cgit.FreeBSD.org/ports/commit/?id=458c0053ef12c03bc5663e907e618b9fa096ebc1 commit 458c0053ef12c03bc5663e907e618b9fa096ebc1 Author: Alexey Dokuchaev AuthorDate: 2021-06-18 12:59:54 +0000 Commit: Alexey Dokuchaev CommitDate: 2021-06-18 13:02:32 +0000 misc/clifm: new port had been added (+) Unlike most of the terminal file managers, CliFM replaces the traditional curses interface by a simple command-line interface. It is a file manager, but also a shell extension. WWW: https://github.com/leo-arch/clifm --- misc/Makefile | 1 + misc/clifm/Makefile | 24 +++++++++ misc/clifm/distinfo | 3 ++ misc/clifm/files/patch-src_misc.c | 102 ++++++++++++++++++++++++++++++++++++++ misc/clifm/pkg-descr | 13 +++++ misc/clifm/pkg-plist | 33 ++++++++++++ 6 files changed, 176 insertions(+) diff --git a/misc/Makefile b/misc/Makefile index 1d170dba3a9f..eca4d228f1df 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -38,6 +38,7 @@ SUBDIR += cinnamon-translations SUBDIR += cldr-emoji-annotation SUBDIR += clex + SUBDIR += clifm SUBDIR += cloc SUBDIR += clpbar SUBDIR += cmatrix diff --git a/misc/clifm/Makefile b/misc/clifm/Makefile new file mode 100644 index 000000000000..90769df4590b --- /dev/null +++ b/misc/clifm/Makefile @@ -0,0 +1,24 @@ +# Created by: Alexey Dokuchaev + +PORTNAME= clifm +PORTVERSION= 1.1 +DISTVERSIONPREFIX= v +CATEGORIES= misc + +MAINTAINER= danfe@FreeBSD.org +COMMENT= Non-curses, KISS file manager for the terminal + +LICENSE= GPLv2 + +USES= desktop-file-utils gettext-runtime gmake localbase readline +USE_GITHUB= yes +GH_ACCOUNT= leo-arch +ALL_TARGET= build +MAKE_ENV= INSTALLPREFIX=${STAGEDIR}${PREFIX}/bin \ + DESKTOPPREFIX=${STAGEDIR}${PREFIX}/share + +post-patch: + @${REINPLACE_CMD} -e '/^CFLAGS/s,=.*-march=native,+=,' \ + ${WRKSRC}/src/Makefile + +.include diff --git a/misc/clifm/distinfo b/misc/clifm/distinfo new file mode 100644 index 000000000000..8acd70659951 --- /dev/null +++ b/misc/clifm/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1622268275 +SHA256 (leo-arch-clifm-v1.1_GH0.tar.gz) = e2be66e8000fc43f177e472045d9d30f44625e854d85b4cdf5aad8179d32d5af +SIZE (leo-arch-clifm-v1.1_GH0.tar.gz) = 7195392 diff --git a/misc/clifm/files/patch-src_misc.c b/misc/clifm/files/patch-src_misc.c new file mode 100644 index 000000000000..0e2d7c9ffc7d --- /dev/null +++ b/misc/clifm/files/patch-src_misc.c @@ -0,0 +1,102 @@ +--- src/misc.c.orig 2021-05-29 06:04:35 UTC ++++ src/misc.c +@@ -31,6 +31,10 @@ + #include + #include + #include ++#if defined(__FreeBSD__) ++#include ++#include ++#endif + #include + #include + #include +@@ -255,9 +259,16 @@ new_instance(char *dir, int sudo) + } + + /* Get absolute path of executable name of itself */ ++#if defined(__linux__) + char *self = realpath("/proc/self/exe", NULL); + + if (!self) { ++#elif defined(__FreeBSD__) ++ const int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; ++ char *self = malloc(PATH_MAX); ++ size_t len = PATH_MAX; ++ if (!self || sysctl(mib, 4, self, &len, NULL, 0) == -1) { ++#endif + fprintf(stderr, "%s: %s\n", PROGRAM_NAME, strerror(errno)); + return EXIT_FAILURE; + } +@@ -812,6 +823,7 @@ set_shell(char *str) + int + list_mountpoints(void) + { ++#if defined(__linux__) + FILE *mp_fp = fopen("/proc/mounts", "r"); + + if (!mp_fp) { +@@ -819,13 +831,15 @@ list_mountpoints(void) + PROGRAM_NAME, strerror(errno)); + return EXIT_FAILURE; + } ++#endif + + printf(_("%sMountpoints%s\n\n"), bold, df_c); + + char **mountpoints = (char **)NULL; + size_t mp_n = 0; +- int exit_status = EXIT_SUCCESS; ++ int i, j, exit_status = EXIT_SUCCESS; + ++#if defined(__linux__) + size_t line_size = 0; + char *line = (char *)NULL; + ssize_t line_len = 0; +@@ -870,6 +884,10 @@ list_mountpoints(void) + free(line); + line = (char *)NULL; + fclose(mp_fp); ++#elif defined(__FreeBSD__) ++ struct statfs *fslist; ++ mp_n = getmntinfo(&fslist, MNT_NOWAIT); ++#endif + + /* This should never happen: There should always be a mountpoint, + * at least "/" */ +@@ -877,6 +895,26 @@ list_mountpoints(void) + fputs(_("mp: There are no available mountpoints\n"), stdout); + return EXIT_SUCCESS; + } ++#if defined(__FreeBSD__) ++ for (i = j = 0; i < mp_n; i++) { ++ /* Do not list all mountpoints, but only those corresponding ++ * to a block device (/dev) */ ++ if (strncmp(fslist[i].f_mntfromname, "/dev/", 5) == 0) { ++ printf("%s%u%s %s%s%s (%s)\n", el_c, j + 1, df_c, ++ (access(fslist[i].f_mntonname, R_OK | X_OK) ++ == 0) ? di_c : nd_c, fslist[i].f_mntonname, ++ df_c, fslist[i].f_mntfromname); ++ /* Store the mountpoint into an array */ ++ mountpoints = (char **)xrealloc(mountpoints, ++ (j + 1) * sizeof(char *)); ++ mountpoints[j++] = savestring(fslist[i].f_mntonname, ++ strlen(fslist[i].f_mntonname)); ++ } ++ } ++ /* Update filesystem counter as it would be used to free() the ++ * mountpoints entries later (below) */ ++ mp_n = j; ++#endif + + putchar('\n'); + /* Ask the user and chdir into the selected mountpoint */ +@@ -922,7 +960,7 @@ list_mountpoints(void) + /* Free stuff and exit */ + free(input); + +- int i = (int)mp_n; ++ i = (int)mp_n; + while (--i >= 0) + free(mountpoints[i]); + diff --git a/misc/clifm/pkg-descr b/misc/clifm/pkg-descr new file mode 100644 index 000000000000..1588853c1ff8 --- /dev/null +++ b/misc/clifm/pkg-descr @@ -0,0 +1,13 @@ +Unlike most of the terminal file managers, CliFM replaces the traditional +curses interface by a simple command-line interface. It is a file manager, +but also a shell extension. + +Search for files, copy, rename, and trash some of them, but, at the same +time, update/upgrade your system, add some cronjob, stop a service, and +run nano (or vi, or emacs, if you like). + +Those familiar with the command-line will find in a file manager based on +it a desirable addition to its functionality. The command-line is still +there, never hidden. + +WWW: https://github.com/leo-arch/clifm diff --git a/misc/clifm/pkg-plist b/misc/clifm/pkg-plist new file mode 100644 index 000000000000..ef396d41ed04 --- /dev/null +++ b/misc/clifm/pkg-plist @@ -0,0 +1,33 @@ +bin/clifm +share/applications/clifm.desktop +share/bash-completion/completions/clifm +%%DATADIR%%/functions/cd_on_quit.sh +%%DATADIR%%/functions/file_picker.sh +%%DATADIR%%/functions/subshell_notice.sh +%%DATADIR%%/mimelist.cfm +%%DATADIR%%/plugins/BFG.sh +%%DATADIR%%/plugins/batch_create.sh +%%DATADIR%%/plugins/clip.sh +%%DATADIR%%/plugins/colors.sh +%%DATADIR%%/plugins/dragondrop.sh +%%DATADIR%%/plugins/finder.sh +%%DATADIR%%/plugins/fzfdesel.sh +%%DATADIR%%/plugins/fzfhist.sh +%%DATADIR%%/plugins/fzfnav.sh +%%DATADIR%%/plugins/fzfsel.sh +%%DATADIR%%/plugins/git_status.sh +%%DATADIR%%/plugins/ihelp.sh +%%DATADIR%%/plugins/img_viewer.sh +%%DATADIR%%/plugins/jumper.sh +%%DATADIR%%/plugins/kbgen.c +%%DATADIR%%/plugins/mime_list.sh +%%DATADIR%%/plugins/music_player.sh +%%DATADIR%%/plugins/pdf_viewer.sh +%%DATADIR%%/plugins/rgfind.sh +%%DATADIR%%/plugins/update.sh +%%DATADIR%%/plugins/vid_viewer.sh +%%DATADIR%%/plugins/wallpaper_setter.sh +share/icons/hicolor/scalable/apps/clifm.svg +share/locale/es/LC_MESSAGES/clifm.mo +share/man/man1/clifm.1.gz +share/zsh/site-functions/_clifm