Hi, Here is an update for lfm to version 3.1. It has been rewritten almost from scratch, here are the most important changes (see [0]):
* move from python 2 to python 3 * pyview has been removed in favour of less(1) * many backward incompatible changes, notably ~/.lfmrc has been deprecated in favour of ~/.config/lfmrc/... Port-wise, despite the size of the diff, there is not much to say. Nonetheless, data files were not installed where they should. As such, i've brought back the 2.3 behaviour and chose to install everything as data_files, instead of using a post-install hook. We would have needed to patch setup.py anyway. I met no issues while testing, but given the number of features, i indeed did not test all of them. I'm not used to deal with python stuff, so feedback is very welcome :) Charlène. [0] https://inigo.katxi.org/devel/lfm/NEWS Index: Makefile =================================================================== RCS file: /cvs/ports/misc/lfm/Makefile,v retrieving revision 1.8 diff -u -p -u -p -r1.8 Makefile --- Makefile 24 Mar 2020 15:12:39 -0000 1.8 +++ Makefile 29 Dec 2020 10:01:42 -0000 @@ -2,9 +2,8 @@ COMMENT = powerful curses interface python file manager -MODPY_EGG_VERSION = 2.3 +MODPY_EGG_VERSION = 3.1 DISTNAME = lfm-${MODPY_EGG_VERSION} -REVISION= 2 CATEGORIES = misc @@ -13,14 +12,14 @@ HOMEPAGE = https://inigo.katxi.org/deve # GPLv3+ PERMIT_PACKAGE = Yes -MODPY_PI = Yes - MODULES = lang/python +MODPY_PI = Yes +MODPY_VERSION= ${MODPY_DEFAULT_VERSION_3} + NO_TEST = Yes -post-install: - ${INSTALL_MAN} ${WRKSRC}/lfm.1 ${PREFIX}/man/man1 - ${INSTALL_MAN} ${WRKSRC}/pyview.1 ${PREFIX}/man/man1 +post-patch: + sed -i 's,/usr,${LOCALBASE},g' ${WRKSRC}/lfm.1 .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/misc/lfm/distinfo,v retrieving revision 1.2 diff -u -p -u -p -r1.2 distinfo --- distinfo 18 Jan 2015 03:14:31 -0000 1.2 +++ distinfo 29 Dec 2020 10:01:42 -0000 @@ -1,2 +1,2 @@ -SHA256 (lfm-2.3.tar.gz) = 6N8YjBfU1nbPQcyun2v4KqDF/zlC1arZhZkK0URslQQ= -SIZE (lfm-2.3.tar.gz) = 119120 +SHA256 (lfm-3.1.tar.gz) = L3MaJpQNsWj5yIMM4YbYdplcSFd1coiAUva84Dd6v8o= +SIZE (lfm-3.1.tar.gz) = 88876 Index: patches/patch-lfm___init___py =================================================================== RCS file: patches/patch-lfm___init___py diff -N patches/patch-lfm___init___py --- patches/patch-lfm___init___py 17 Jul 2011 20:23:46 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -$OpenBSD: patch-lfm___init___py,v 1.1.1.1 2011/07/17 20:23:46 sthen Exp $ - -Change default .rar handler - ---- lfm/__init__.py.orig Thu Jul 14 11:45:30 2011 -+++ lfm/__init__.py Thu Jul 14 11:46:01 2011 -@@ -46,7 +46,7 @@ sysprogs = { 'tar': 'tar', - 'gzip': 'gzip', - 'zip': 'zip', - 'unzip': 'unzip', -- 'rar': 'rar', -+ 'rar': 'unrar', - '7z': '7z', - 'xz': 'xz', - 'grep': 'grep', Index: patches/patch-lfm_common_py =================================================================== RCS file: patches/patch-lfm_common_py diff -N patches/patch-lfm_common_py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lfm_common_py 29 Dec 2020 10:01:43 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +Change default handler for rar files + +Index: lfm/common.py +--- lfm/common.py.orig ++++ lfm/common.py +@@ -37,7 +37,7 @@ SYSPROGS = {'tar': 'tar', + 'gzip': 'gzip', + 'zip': 'zip', + 'unzip': 'unzip', +- 'rar': 'rar', ++ 'rar': 'unrar', + '7z': '7z', + 'xz': 'xz', + 'lzip': 'lzip', Index: patches/patch-lfm_compress_py =================================================================== RCS file: /cvs/ports/misc/lfm/patches/patch-lfm_compress_py,v retrieving revision 1.1.1.1 diff -u -p -u -p -r1.1.1.1 patch-lfm_compress_py --- patches/patch-lfm_compress_py 17 Jul 2011 20:23:46 -0000 1.1.1.1 +++ patches/patch-lfm_compress_py 29 Dec 2020 10:01:43 -0000 @@ -2,14 +2,42 @@ $OpenBSD: patch-lfm_compress_py,v 1.1.1. Incompatible GNU tar option ---- lfm/compress.py.orig Thu Jul 14 12:19:36 2011 -+++ lfm/compress.py Thu Jul 14 12:19:48 2011 -@@ -111,7 +111,7 @@ class PackagerTGZ(PackagerBase): - exts = ('.tar.gz', '.tgz', '.tar.Z') +Index: lfm/compress.py +--- lfm/compress.py.orig ++++ lfm/compress.py +@@ -108,7 +108,7 @@ class PackagerTGZ(PackagerBase): need_tar = True - uncompress_prog = compress_prog = sysprogs['gzip'] -- uncompress_cmd = uncompress_prog + ' -d \"%s\" -c | ' + sysprogs['tar'] + ' xfi -' -+ uncompress_cmd = uncompress_prog + ' -d \"%s\" -c | ' + sysprogs['tar'] + ' xf -' - compress_cmd = sysprogs['tar'] + ' cf - \"%s\" | ' + compress_prog + ' > \"%s\"' - compressXXX_cmd = sysprogs['tar'] + ' cf - %s | ' + compress_prog + ' > \"%s\"' + can_vfs = True + uncompress_prog = compress_prog = SYSPROGS['gzip'] +- uncompress_cmd = uncompress_prog + ' -d \"%s\" -c | ' + SYSPROGS['tar'] + ' xfi -' ++ uncompress_cmd = uncompress_prog + ' -d \"%s\" -c | ' + SYSPROGS['tar'] + ' xf -' + compress_cmd = SYSPROGS['tar'] + ' cf - \"%s\" | ' + compress_prog + ' > \"%s\"' + compress2_cmd = SYSPROGS['tar'] + ' cf - %s | ' + compress_prog + ' > \"%s\"' + +@@ -130,7 +130,7 @@ class PackagerTXZ(PackagerBase): + need_tar = True + can_vfs = True + uncompress_prog = compress_prog = SYSPROGS['xz'] +- uncompress_cmd = uncompress_prog + ' -d \"%s\" -c | ' + SYSPROGS['tar'] + ' xfi -' ++ uncompress_cmd = uncompress_prog + ' -d \"%s\" -c | ' + SYSPROGS['tar'] + ' xf -' + compress_cmd = SYSPROGS['tar'] + ' cf - \"%s\" | ' + compress_prog + ' > \"%s\"' + compress2_cmd = SYSPROGS['tar'] + ' cf - %s | ' + compress_prog + ' > \"%s\"' + +@@ -152,7 +152,7 @@ class PackagerTLZ(PackagerBase): + need_tar = True + can_vfs = True + uncompress_prog = compress_prog = SYSPROGS['lzip'] +- uncompress_cmd = uncompress_prog + ' -d \"%s\" -c | ' + SYSPROGS['tar'] + ' xfi -' ++ uncompress_cmd = uncompress_prog + ' -d \"%s\" -c | ' + SYSPROGS['tar'] + ' xf -' + compress_cmd = SYSPROGS['tar'] + ' cf - \"%s\" | ' + compress_prog + ' > \"%s\"' + compress2_cmd = SYSPROGS['tar'] + ' cf - %s | ' + compress_prog + ' > \"%s\"' + +@@ -174,7 +174,7 @@ class PackagerTLZ4(PackagerBase): + need_tar = True + can_vfs = True + uncompress_prog = compress_prog = SYSPROGS['lz4'] +- uncompress_cmd = uncompress_prog + ' -q -d \"%s\" -c | ' + SYSPROGS['tar'] + ' xfi -' ++ uncompress_cmd = uncompress_prog + ' -q -d \"%s\" -c | ' + SYSPROGS['tar'] + ' xf -' + compress_cmd = SYSPROGS['tar'] + ' cf - \"%s\" | ' + compress_prog + ' -9 -q > \"%s\"' + compress2_cmd = SYSPROGS['tar'] + ' cf - %s | ' + compress_prog + ' -9 -q > \"%s\"' Index: patches/patch-setup_py =================================================================== RCS file: /cvs/ports/misc/lfm/patches/patch-setup_py,v retrieving revision 1.1.1.1 diff -u -p -u -p -r1.1.1.1 patch-setup_py --- patches/patch-setup_py 17 Jul 2011 20:23:46 -0000 1.1.1.1 +++ patches/patch-setup_py 29 Dec 2020 10:01:43 -0000 @@ -1,15 +1,61 @@ $OpenBSD: patch-setup_py,v 1.1.1.1 2011/07/17 20:23:46 sthen Exp $ -Fix manpage path +Install the manpage and docs according to our file hierarchy, otherwise: +* the manpage was installed in /usr/share/man/man1 +* default configuration and doc files where put in sites-packages ---- setup.py.orig Thu Jul 14 11:45:34 2011 -+++ setup.py Thu Jul 14 11:45:45 2011 -@@ -57,7 +57,7 @@ setup(name = 'lfm', - 'lfm/config', 'lfm/pyview'], - scripts = ['lfm/lfm', 'lfm/pyview'], - data_files = [('share/doc/lfm', DOC_FILES), -- ('share/man/man1', MAN_FILES)] -+ ('man/man1', MAN_FILES)] - # **addargs - ) +Index: setup.py +--- setup.py.orig ++++ setup.py +@@ -50,33 +50,21 @@ if 'bdist_wheel' in argv: + raise RuntimeError("This setup.py does not support wheels") + import shutil +-try: +- try: +- os.mkdir('lfm/doc') +- for f in DOC_FILES: +- shutil.copy2(f, 'lfm/doc') +- os.symlink('../etc', 'lfm/etc') +- except: +- pass +- setup(name='lfm', +- version='3.1', +- description=__doc__.split("\n")[2], +- long_description='\n'.join(__doc__.split("\n")[2:]).strip(), +- author='Iñigo Serna', +- author_email='inigose...@gmail.com', +- url='https://inigo.katxi.org/devel/lfm', +- platforms='POSIX', +- keywords=['file manager shell cli'], +- classifiers=filter(None, classifiers.split("\n")), +- license='GPL3+', +- packages=['lfm'], +- scripts=['lfm/lfm'], +- data_files=[(join(prefix, 'share/man/man1'), MAN_FILES)], +- package_data={'': CONFIG_FILES + [join('doc', f) for f in DOC_FILES]}, +- ) +-finally: +- shutil.rmtree('lfm/doc') +- try: +- os.unlink('lfm/etc') +- except IsADirectoryError: +- pass ++setup(name='lfm', ++ version='3.1', ++ description=__doc__.split("\n")[2], ++ long_description='\n'.join(__doc__.split("\n")[2:]).strip(), ++ author='Iñigo Serna', ++ author_email='inigose...@gmail.com', ++ url='https://inigo.katxi.org/devel/lfm', ++ platforms='POSIX', ++ keywords=['file manager shell cli'], ++ classifiers=filter(None, classifiers.split("\n")), ++ license='GPL3+', ++ packages=['lfm'], ++ scripts=['lfm/lfm'], ++ data_files=[(join(prefix, 'man/man1'), MAN_FILES), ++ (join(prefix, 'share/examples/lfm'), CONFIG_FILES), ++ (join(prefix, 'share/doc/lfm'), DOC_FILES), ++ ], ++) Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/misc/lfm/pkg/PLIST,v retrieving revision 1.2 diff -u -p -u -p -r1.2 PLIST --- pkg/PLIST 16 Sep 2011 22:08:32 -0000 1.2 +++ pkg/PLIST 29 Dec 2020 10:01:43 -0000 @@ -1,34 +1,36 @@ @comment $OpenBSD: PLIST,v 1.2 2011/09/16 22:08:32 sthen Exp $ bin/lfm -bin/pyview lib/python${MODPY_VERSION}/site-packages/lfm/ lib/python${MODPY_VERSION}/site-packages/lfm-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info lib/python${MODPY_VERSION}/site-packages/lfm/__init__.py -lib/python${MODPY_VERSION}/site-packages/lfm/__init__.pyc +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}actions.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}common.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}compress.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}folders.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}key_defs.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}lfm.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}preferences.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}ui.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}ui_widgets.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/lfm/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/lfm/actions.py -lib/python${MODPY_VERSION}/site-packages/lfm/actions.pyc +lib/python${MODPY_VERSION}/site-packages/lfm/common.py lib/python${MODPY_VERSION}/site-packages/lfm/compress.py -lib/python${MODPY_VERSION}/site-packages/lfm/compress.pyc -lib/python${MODPY_VERSION}/site-packages/lfm/config.py -lib/python${MODPY_VERSION}/site-packages/lfm/config.pyc -lib/python${MODPY_VERSION}/site-packages/lfm/files.py -lib/python${MODPY_VERSION}/site-packages/lfm/files.pyc +lib/python${MODPY_VERSION}/site-packages/lfm/folders.py +lib/python${MODPY_VERSION}/site-packages/lfm/key_defs.py lib/python${MODPY_VERSION}/site-packages/lfm/lfm.py -lib/python${MODPY_VERSION}/site-packages/lfm/lfm.pyc -lib/python${MODPY_VERSION}/site-packages/lfm/messages.py -lib/python${MODPY_VERSION}/site-packages/lfm/messages.pyc -lib/python${MODPY_VERSION}/site-packages/lfm/pyview.py -lib/python${MODPY_VERSION}/site-packages/lfm/pyview.pyc +lib/python${MODPY_VERSION}/site-packages/lfm/preferences.py +lib/python${MODPY_VERSION}/site-packages/lfm/ui.py +lib/python${MODPY_VERSION}/site-packages/lfm/ui_widgets.py lib/python${MODPY_VERSION}/site-packages/lfm/utils.py -lib/python${MODPY_VERSION}/site-packages/lfm/utils.pyc -lib/python${MODPY_VERSION}/site-packages/lfm/vfs.py -lib/python${MODPY_VERSION}/site-packages/lfm/vfs.pyc @man man/man1/lfm.1 -@man man/man1/pyview.1 share/doc/lfm/ share/doc/lfm/COPYING -share/doc/lfm/ChangeLog share/doc/lfm/NEWS share/doc/lfm/README -share/doc/lfm/README.pyview share/doc/lfm/TODO +share/examples/lfm/ +share/examples/lfm/lfm-default.keys +share/examples/lfm/lfm-default.theme