From ac5c4e7857c49aeb11f57e7790002d272ef6830c Mon Sep 17 00:00:00 2001 From: Alexey Dokuchaev Date: Fri, 5 Dec 2014 16:55:18 +0000 Subject: - Resurrect, unbreak, stagify, modernize Makefile - Switch to the tar.bz2 distfile (it is 37% smaller) - Fix a segmentation fault (patch obtained from Gentoo) - Define LICENSE (GPLv2) and make GUI compulsory for now (when configured for non-GUI, it doesn't install universally required `gftprc' file, and generally requires more work to correctly decouple frontend programs) - Rename one ::-containing patch file, remove unneeded ones - Cleanup MASTER_SITES, update pkg-plist and pkg-descr --- ftp/gftp/Makefile | 36 ++++++++++++++ ftp/gftp/distinfo | 2 + ftp/gftp/files/patch-lib-misc.c | 21 ++++++++ ftp/gftp/files/patch-lib-pty.c | 103 ++++++++++++++++++++++++++++++++++++++++ ftp/gftp/pkg-descr | 23 +++++++++ ftp/gftp/pkg-plist | 93 ++++++++++++++++++++++++++++++++++++ 6 files changed, 278 insertions(+) create mode 100644 ftp/gftp/Makefile create mode 100644 ftp/gftp/distinfo create mode 100644 ftp/gftp/files/patch-lib-misc.c create mode 100644 ftp/gftp/files/patch-lib-pty.c create mode 100644 ftp/gftp/pkg-descr create mode 100644 ftp/gftp/pkg-plist (limited to 'ftp/gftp') diff --git a/ftp/gftp/Makefile b/ftp/gftp/Makefile new file mode 100644 index 000000000000..59ff47aaa8ab --- /dev/null +++ b/ftp/gftp/Makefile @@ -0,0 +1,36 @@ +# Created by: Damjan Marion +# $FreeBSD$ + +PORTNAME= gftp +PORTVERSION= 2.0.19 +PORTREVISION= 5 +CATEGORIES= ftp +MASTER_SITES= http://gftp.seul.org/ + +MAINTAINER= oliver@FreeBSD.org +COMMENT= Free multithreaded GTK-based FTP and SFTP client + +LICENSE= GPLv2 + +USES= pathfix pkgconfig tar:bzip2 +GNU_CONFIGURE= yes +USE_GNOME= glib20 gtk20 +USE_OPENSSL= yes + +OPTIONS_DEFINE= NLS +OPTIONS_SUB= yes + +NLS_USES= gettext +NLS_CONFIGURE_OFF= --disable-nls + +.include + +post-patch: + @${REINPLACE_CMD} -e 's|-lpthread|${PTHREAD_LIBS}|g ; \ + s|DATADIRNAME=lib|DATADIRNAME=share|g ; \ + s|"-lssl |& -lcrypto|' ${WRKSRC}/configure + @${REINPLACE_CMD} -e 's|size_t dest_len|size_t *dest_len|g ; \ + s|\(gftp_filename_from_utf8 (gftp_request \* request,\) int force_local,|\1|' \ + ${WRKSRC}/lib/charset-conv.c + +.include diff --git a/ftp/gftp/distinfo b/ftp/gftp/distinfo new file mode 100644 index 000000000000..db02b17c1634 --- /dev/null +++ b/ftp/gftp/distinfo @@ -0,0 +1,2 @@ +SHA256 (gftp-2.0.19.tar.bz2) = 5306a46be96d6f4d23906cb1836fb3d732039621a6c7fcfa921acc21ac110bfd +SIZE (gftp-2.0.19.tar.bz2) = 1687167 diff --git a/ftp/gftp/files/patch-lib-misc.c b/ftp/gftp/files/patch-lib-misc.c new file mode 100644 index 000000000000..9daf864e58ab --- /dev/null +++ b/ftp/gftp/files/patch-lib-misc.c @@ -0,0 +1,21 @@ +Fix segmentation fault, when gftpui_run_chdir is called with directory=0x0, +and then calls gftp_expand_path (src=0x0), +the NULL string was cloned using g_strdup, which returns NULL if +its only argument is NULL, then this returned string was unreferenced. + + lib/misc.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/lib/misc.c b/lib/misc.c +index 16c019b..2791466 100644 +--- lib/misc.c.orig ++++ lib/misc.c +@@ -143,6 +143,8 @@ gftp_expand_path (gftp_request * request, const char *src) + tempchar; + struct passwd *pw; + ++ g_return_val_if_fail(src != NULL, NULL); ++ + pw = NULL; + str = g_strdup (src); + diff --git a/ftp/gftp/files/patch-lib-pty.c b/ftp/gftp/files/patch-lib-pty.c new file mode 100644 index 000000000000..25f7c385ed39 --- /dev/null +++ b/ftp/gftp/files/patch-lib-pty.c @@ -0,0 +1,103 @@ +--- lib/pty.c.orig 2007-03-13 02:56:43.000000000 +0100 ++++ lib/pty.c 2010-01-17 17:34:25.000000000 +0100 +@@ -59,6 +59,50 @@ + return (new_fds); + } + ++#elif HAVE_OPENPTY ++ ++#ifdef HAVE_PTY_H ++#include ++#include /* for login_tty */ ++#elif HAVE_LIBUTIL_H ++#include ++#else ++extern int openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize * winp); ++extern int login_tty(int fd); ++#endif ++ ++char * ++gftp_get_pty_impl (void) ++{ ++ return ("openpty"); ++} ++ ++ ++static int ++_gftp_ptym_open (char *pts_name, size_t len, int *fds) ++{ ++ int fdm; ++ ++ if (openpty (&fdm, fds, pts_name, NULL, NULL) < 0) ++ return (GFTP_ERETRYABLE); ++ ++ ioctl (*fds, TIOCSCTTY, NULL); ++ ++ return (fdm); ++} ++ ++ ++static int ++_gftp_ptys_open (int fdm, int fds, char *pts_name) ++{ ++ if (login_tty (fds) < 0) { ++ close(fds); ++ return (GFTP_EFATAL); ++ } ++ ++ return (fds); ++} ++ + #elif HAVE_GRANTPT + + #if !(defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)) +@@ -131,49 +192,6 @@ + return (new_fds); + } + +-#elif HAVE_OPENPTY +- +-#ifdef HAVE_PTY_H +-#include +-#include /* for login_tty */ +-#elif HAVE_LIBUTIL_H +-#include +-#include /* for login_tty */ +-#else +-extern int openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize * winp); +-extern int login_tty(int fd); +-#endif +- +-char * +-gftp_get_pty_impl (void) +-{ +- return ("openpty"); +-} +- +- +-static int +-_gftp_ptym_open (char *pts_name, size_t len, int *fds) +-{ +- int fdm; +- +- if (openpty (&fdm, fds, pts_name, NULL, NULL) < 0) +- return (GFTP_ERETRYABLE); +- +- ioctl (*fds, TIOCSCTTY, NULL); +- +- return (fdm); +-} +- +- +-static int +-_gftp_ptys_open (int fdm, int fds, char *pts_name) +-{ +- if (login_tty (fds) < 0) +- return (GFTP_EFATAL); +- +- return (fds); +-} +- + #else + + /* Fall back to *BSD... */ diff --git a/ftp/gftp/pkg-descr b/ftp/gftp/pkg-descr new file mode 100644 index 000000000000..681385a4dacc --- /dev/null +++ b/ftp/gftp/pkg-descr @@ -0,0 +1,23 @@ +gFTP is a free multithreaded FTP and SFTP client for Unix-like systems. +It has the following features: + + Distributed under the terms of the GNU Public License + Written in C, has a text interface and a GTK+ 2.x interface + Supports the FTP, FTPS (control connection only), HTTP, HTTPS, SSH, and FSP + Multithreaded to allow for simultaneous downloads + File transfer queues to allow for downloading multiple files + Bookmarks menu to allow you to quickly connect to remote sites + Supports downloading entire directories and subdirectories + Extensive connection manager with FTP and HTTP proxy server support + Supports resuming interrupted file transfers + Supports caching of remote directory listings + Supports connecting to a FTP server via command line parameters + Supports associating icons with particular file extensions in the list boxes + Sorting capabilities in the file list boxes + Can restrict files in the list boxes to a particular file specification + Supports viewing and editing of local and remote files + Allows for passive and non-passive file transfers + Supports FXP file transfers (file transfer between 2 remote servers via FTP) + Eliminates buffer overruns from malicious FTP sites + +WWW: http://gftp.seul.org/ diff --git a/ftp/gftp/pkg-plist b/ftp/gftp/pkg-plist new file mode 100644 index 000000000000..aeff3a984ce1 --- /dev/null +++ b/ftp/gftp/pkg-plist @@ -0,0 +1,93 @@ +bin/gftp +bin/gftp-gtk +bin/gftp-text +man/man1/gftp.1.gz +share/applications/gftp.desktop +share/pixmaps/gftp.png +%%DATADIR%%/COPYING +%%DATADIR%%/bookmarks +%%DATADIR%%/connect.xpm +%%DATADIR%%/deb.xpm +%%DATADIR%%/diff.xpm +%%DATADIR%%/dir.xpm +%%DATADIR%%/doc.xpm +%%DATADIR%%/dotdot.xpm +%%DATADIR%%/down.xpm +%%DATADIR%%/exe.xpm +%%DATADIR%%/gftp-16x16.png +%%DATADIR%%/gftp-22x22.png +%%DATADIR%%/gftp-24x24.png +%%DATADIR%%/gftp-32x32.png +%%DATADIR%%/gftp-48x48.png +%%DATADIR%%/gftp-logo.xpm +%%DATADIR%%/gftp-scalable.svg +%%DATADIR%%/gftp.xpm +%%DATADIR%%/gftprc +%%DATADIR%%/img.xpm +%%DATADIR%%/left.xpm +%%DATADIR%%/linkdir.xpm +%%DATADIR%%/linkfile.xpm +%%DATADIR%%/man.xpm +%%DATADIR%%/open_dir.xpm +%%DATADIR%%/right.xpm +%%DATADIR%%/rpm.xpm +%%DATADIR%%/sound.xpm +%%DATADIR%%/stop.xpm +%%DATADIR%%/tar.xpm +%%DATADIR%%/txt.xpm +%%DATADIR%%/up.xpm +%%DATADIR%%/world.xpm +%%NLS%%share/locale/am/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ar/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/az/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/be/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/bg/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/bn/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ca/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/cs/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/da/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/de/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/dz/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/el/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/en_CA/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/en_GB/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/es/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/fi/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/fr/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ga/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/gl/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/gu/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/he/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/hr/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/hu/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/it/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ja/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ko/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/lt/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/lv/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/mk/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ml/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ms/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/nb/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ne/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/nl/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/oc/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/pa/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/pl/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/pt/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/pt_BR/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ro/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ru/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/rw/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/sk/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/sq/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/sr/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/sr@Latn/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/sv/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/ta/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/th/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/tr/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/uk/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/zh_CN/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/zh_HK/LC_MESSAGES/gftp.mo +%%NLS%%share/locale/zh_TW/LC_MESSAGES/gftp.mo -- cgit v1.2.3