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

Reply via email to