On 2022/03/26 12:00, Matthieu Herrb wrote:
> Hi,
> 
> I've a need for the new video playing feature of impress!ve 0.12, and
> even found a new 0.13.1 version that supports python3.
> 
> Unfortunatly there's a small bug in the mplayer control code with
> python3, so I've added a patch to fix it (and I also reported it
> upstreams).
> 
> But I'm not sure if my patch below is the proper way to handle a port
> that is now python3 only (the FLAVOR handling looks suspicious to me)
> but I'm not experienced enough with python ports to figure it out.
> 
> Comments, suggestions, oks ?

inline:

> Index: Makefile
> ===================================================================
> RCS file: /cvs/OpenBSD/ports/productivity/impressive/Makefile,v
> retrieving revision 1.22
> diff -u -p -u -r1.22 Makefile
> --- Makefile  11 Mar 2022 19:51:42 -0000      1.22
> +++ Makefile  26 Mar 2022 10:47:32 -0000
> @@ -1,9 +1,8 @@
>  COMMENT =            stylish PDF presentation generator
>  
> -MODPY_EGG_VERSION =  0.11.1
> +MODPY_EGG_VERSION =  0.13.1
>  DISTNAME =           Impressive-${MODPY_EGG_VERSION}
>  PKGNAME =            impressive-${MODPY_EGG_VERSION}
> -REVISION =           1
>  
>  CATEGORIES =         productivity
>  HOMEPAGE =           http://impressive.sourceforge.net/
> @@ -13,16 +12,19 @@ MASTER_SITES =            ${MASTER_SITE_SOURCEFORG
>  PERMIT_PACKAGE =     Yes
>  
>  MODULES =            lang/python
> -MODPY_VERSION =      ${MODPY_DEFAULT_VERSION_2}

good

>  NO_BUILD =           Yes
>  NO_TEST =            Yes
>  
> -RUN_DEPENDS =                devel/pygame \
> +FLAVORS=                python3
> +FLAVOR=                 python3

remove FLAVOR/FLAVORS, they are for python libraries rather than
standalone software.

> +
> +RUN_DEPENDS =                devel/pygame,python3 \
>                       devel/xdg-utils \
> -                     graphics/py2-Pillow \
> -                     graphics/py-opengl \
> +                     graphics/py-Pillow \
> +                     graphics/py-opengl,python3 \

These python library dependencies should use ${MODPY_FLAVOR}
rather than (nothing) or ,python3

>                       print/poppler,-utils \
> -                     textproc/pdftk
> +                     textproc/pdftk \
> +                     x11/mplayer
>  
>  MODPY_ADJ_FILES =    impressive.py
>  
> Index: distinfo
> ===================================================================
> RCS file: /cvs/OpenBSD/ports/productivity/impressive/distinfo,v
> retrieving revision 1.3
> diff -u -p -u -r1.3 distinfo
> --- distinfo  8 Apr 2016 09:23:13 -0000       1.3
> +++ distinfo  26 Mar 2022 10:47:32 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (Impressive-0.11.1.tar.gz) = 
> WT9hbrcqGKgmvHaHyZUqKuXd7VSD0miLq1tcpoyveSw=
> -SIZE (Impressive-0.11.1.tar.gz) = 195743
> +SHA256 (Impressive-0.13.1.tar.gz) = 
> JIkXO7+KsStEmQfYEQMPqXPSOjDmN8Y18XUn6roULTQ=
> +SIZE (Impressive-0.13.1.tar.gz) = 215989
> Index: patches/patch-impressive_py
> ===================================================================
> RCS file: patches/patch-impressive_py
> diff -N patches/patch-impressive_py
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-impressive_py       26 Mar 2022 10:47:32 -0000
> @@ -0,0 +1,23 @@
> +--- impressive.py.orig       Sat Mar 26 11:10:53 2022
> ++++ impressive.py    Sat Mar 26 11:34:40 2022
> +@@ -1059,9 +1059,9 @@
> +     # first, ask politely
> +     try:
> +         if Platform.use_omxplayer and VideoPlaying:
> +-            MPlayerProcess.stdin.write('q')
> ++            MPlayerProcess.stdin.write('q'.encode())
> +         else:
> +-            MPlayerProcess.stdin.write('quit\n')
> ++            MPlayerProcess.stdin.write('quit\n'.encode())
> +         MPlayerProcess.stdin.flush()
> +         for i in range(10):
> +             if MPlayerProcess.poll() is None:
> +@@ -5571,7 +5571,7 @@
> +         cmd = omxplayer_cmd if Platform.use_omxplayer else (mplayer_cmd + 
> '\n')
> +         if not cmd: return
> +         try:
> +-            MPlayerProcess.stdin.write(cmd)
> ++            MPlayerProcess.stdin.write(cmd.encode())
> +             MPlayerProcess.stdin.flush()
> +         except:
> +             StopMPlayer()
> 
> 
> -- 
> Matthieu Herrb
> 

Reply via email to