Bug 245594 - devel/efl: Update to 1.23.3
Summary: devel/efl: Update to 1.23.3
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Loïc Bartoletti
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-13 12:12 UTC by Tomasz "CeDeROM" CEDRO
Modified: 2020-07-11 19:30 UTC (History)
6 users (show)

See Also:
bugzilla: maintainer-feedback? (enlightenment)


Attachments
patch to be applied from /usr/ports/devel (194.82 KB, patch)
2020-04-13 12:12 UTC, Tomasz "CeDeROM" CEDRO
no flags Details | Diff
patch to be applied from /usr/ports (194.92 KB, patch)
2020-04-13 12:47 UTC, Tomasz "CeDeROM" CEDRO
no flags Details | Diff
poudriere log with the diff (12.34 KB, text/plain)
2020-04-18 05:37 UTC, Loïc Bartoletti
no flags Details
poudriere log when I remove files (63.66 KB, text/plain)
2020-04-18 05:37 UTC, Loïc Bartoletti
no flags Details
diff -urN devel/efl-1.20.7 devel/efl (203.01 KB, patch)
2020-04-18 14:54 UTC, Tomasz "CeDeROM" CEDRO
no flags Details | Diff
shar (148.06 KB, text/plain)
2020-04-18 14:58 UTC, Tomasz "CeDeROM" CEDRO
no flags Details
fixed meson options (21.20 KB, patch)
2020-04-20 00:14 UTC, Tomasz "CeDeROM" CEDRO
no flags Details | Diff
as before but uncompressed to view diff (205.01 KB, patch)
2020-04-20 00:15 UTC, Tomasz "CeDeROM" CEDRO
no flags Details | Diff
many efl port updates and improvements. (175.36 KB, text/plain)
2020-05-14 01:35 UTC, Tomasz "CeDeROM" CEDRO
no flags Details
devel-efl-1.23.3-20200515-1.shar (175.37 KB, text/plain)
2020-05-15 09:44 UTC, Tomasz "CeDeROM" CEDRO
no flags Details
devel-efl-1.20.7-to-1.23.3-20200515-1.patch (232.31 KB, patch)
2020-05-15 09:45 UTC, Tomasz "CeDeROM" CEDRO
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tomasz "CeDeROM" CEDRO 2020-04-13 12:12:04 UTC
Created attachment 213363 [details]
patch to be applied from /usr/ports/devel

This updates the EFL to a recent release. EFL is a base for Enlightenment WM.
Created by FreeBSD@shaneware.biz. Following dependent updates are: Enligthenment and Terminology.
Comment 1 Tomasz "CeDeROM" CEDRO 2020-04-13 12:47:48 UTC
Created attachment 213369 [details]
patch to be applied from /usr/ports
Comment 2 Loïc Bartoletti freebsd_committer 2020-04-18 05:36:32 UTC
It doesn't compile. Maybe you forgot to remove patch files from your diff. Since now efl/enlightnement use messon. patch-configure.ac is still present.

I delete it, but I have a problem with openssl. Can you take a look? Can you also try with poudriere? Thanks.
Comment 3 Loïc Bartoletti freebsd_committer 2020-04-18 05:37:10 UTC
Created attachment 213522 [details]
poudriere log with the diff
Comment 4 Loïc Bartoletti freebsd_committer 2020-04-18 05:37:39 UTC
Created attachment 213523 [details]
poudriere log when I remove files
Comment 5 Tomasz "CeDeROM" CEDRO 2020-04-18 13:06:05 UTC
Hmm, I have build this and work on this right now, maybe I messed up the patch, sorry, will look into this and report back.

What I have noticed is the EFL build system will use system ELF when building on a system that already has EFL installed and this will fail the build. When building on a clean system it worked. Thanks for checking, will report back :-)
Comment 6 Tomasz "CeDeROM" CEDRO 2020-04-18 14:54:33 UTC
Created attachment 213534 [details]
diff -urN devel/efl-1.20.7 devel/efl

now the patch is recursive and marks new files so you can patch with -E to remove old files :-)
Comment 7 Tomasz "CeDeROM" CEDRO 2020-04-18 14:58:18 UTC
Created attachment 213536 [details]
shar

just in case patch does not work there goes the shar of the new port version :-)
Comment 8 Gleb Popov freebsd_committer 2020-04-19 12:56:24 UTC
Great work, Tomasz!

Some nitpicks:

- Remove PORTREVISION since it is 0 now.
- OPTIONS should be overhauled: commented CONFIGURE helpers should be removed and corresponding MESON ones added.
Comment 9 Loïc Bartoletti freebsd_committer 2020-04-19 17:01:06 UTC
Thanks Tomasz, it builds well now (efl, enlightnement and terminology). Can you apply comments from Gleb? I'll open a review after.
Comment 10 Tomasz "CeDeROM" CEDRO 2020-04-19 19:39:53 UTC
Yes, I am working on it right now and see how it works, the CONFIGURE_ON applies both for Configure and Meson build systems but content of the options is a bit different. First time using Meson. Compilation takes some time.. but I can provide a work-in-progress if you like to take a look? :-)

Also I have question on how to easily _exclude_ things based on options? This new EFL has options to exclude things - i.e. we have VLC, XINE, GST backends and I should pass to meson which were not selected, comma separated. Can I iterate anyhow on selected and empty options? :-)
Comment 11 Gleb Popov freebsd_committer 2020-04-19 19:53:52 UTC
(In reply to Tomasz "CeDeROM" CEDRO from comment #10)

Here is my try: https://arrowd.name/efl.rar

You can take a look at how I handled OPTIONS there.
Comment 12 Tomasz "CeDeROM" CEDRO 2020-04-19 20:13:50 UTC
Thank you Gleb! You rox! :-)
Comment 13 Tomasz "CeDeROM" CEDRO 2020-04-19 21:10:33 UTC
I would like to add DEBUG option.

That can be implemented with
`
DEBUG_MESON_ON = -Ddebug=true -Dbuildtype=debug
`
however meson always sets build type to a release.

How can I set build type to debug from make config list? :-)
Comment 14 Tomasz "CeDeROM" CEDRO 2020-04-19 21:13:15 UTC
Looks like debug should be stated with `make -DWITH_DEBUG` not from the `make config` options?
Comment 15 Tomasz "CeDeROM" CEDRO 2020-04-19 21:29:59 UTC
I wanted to also add DRM option but it depends on EEZE and this depends on UDEV and there is no DEVD support so that will not work :-)
Comment 16 Tomasz "CeDeROM" CEDRO 2020-04-19 21:32:52 UTC
My question on multiple options was more subtle:
1. We have possible options in menu: VLC, XINE, GST.
2. When we select VLC, then build options must have diabled=XINE,GST.
Comment 17 Tomasz "CeDeROM" CEDRO 2020-04-19 22:37:22 UTC
Wow, I think I have managed to build with all possible options and most important:
1. Wayland support. Have to use wl-deprecated as wl has some linux includes hardcoded. Will have to take a look into upstream.
2. VNC Server - as Wayland does not provide network transparency that would allow remote work. This option was not present in previous port versions.
3. It is possible to select OpenSSL and/or GnuTLS crypto. In previous ports only OpenSSL was possible. (OpenSSL or LibreSSL is a OS choice decided in /etc/make.conf).

Just need to rebuild with final fixes and see if that works with all options selected. I am working right now on Xorg with default options :-)
Comment 18 Tomasz "CeDeROM" CEDRO 2020-04-20 00:14:03 UTC
Created attachment 213585 [details]
fixed meson options

Fixed MESON build options as requested.

Wayland builds only in deprecated mode that gives no ecore-wl2 as there are some linux DMA hardcoded includes and this blocks Enlightenment WM to build with WL support.

I have testes this patch with all available options enabled (except exclusive) and now runs on Xorg.
Comment 19 Tomasz "CeDeROM" CEDRO 2020-04-20 00:15:53 UTC
Created attachment 213586 [details]
as before but uncompressed to view diff
Comment 20 Gleb Popov freebsd_committer 2020-04-20 11:04:32 UTC
You don't need to define OPENSSL_DESC, AVAHI_DESC and GNUTLS_DESC. These are defined in ${PORTSDIR}/Mk/bsd.options.desc.mk. Consult this file for others options descriptions.

You also have strange WEYLAND_DESC=WAYLAND. Is it a typo?

Looks like typo too:
PMLIST_SUB+=			AUDIO=""

In

MESON_ARGS+=			-Decore-imf-loaders-disabler=ibus

is the option really called "disabler"?
Comment 21 Loïc Bartoletti freebsd_committer 2020-04-20 12:31:25 UTC
Hi Tomasz,
Additional comment, avahi file requires a %%AVAHI%% in the plist. Also on 13, it doenst build without build (only a non blocking error on 11 and 12)
Comment 22 Jan Beich freebsd_committer 2020-04-20 16:12:35 UTC
Comment on attachment 213586 [details]
as before but uncompressed to view diff

Per bug 227509 Wayland support should be enabled by default if it builds fine and doesn't conflict with X11 support.

> +OPTIONS_DEFAULT=	FRIBIDI HARFBUZZ PHYSICS PULSEAUDIO OPENSSL GSTREAMER PDF SVG OPENGL

Maybe OPENGL -> OPENGLES per https://github.com/Enlightenment/efl/commit/e65ebc61fa06

> +OPTIONS_RADIO_WEYLAND=	WAYLAND WAYLAND_EGL
[...]
>  WAYLAND_EGL_IMPLIES=		WAYLAND OPENGLES

Breaks WAYLAND_EGL option e.g.,

  $ make WITH=WAYLAND_EGL
  ====> You cannot select multiple options from the ENGINE radio
  =====> Only one of these must be defined: OPENGL OPENGLES
  ====> You cannot select multiple options from the WEYLAND radio
  =====> Only one of these must be defined: WAYLAND WAYLAND_EGL
  *** Error code 1

> +# WL BROKEN: ../src/lib/ecore_wl2/ecore_wl2_buffer.c:20:10:
> +# fatal error: 'linux/dma-buf.h' file not found
> +# UNTIL FIXED WL-DEPRECATED IS ONLY POSSIBLE
> +WAYLAND_MESON_TRUE=		wl-deprecated

For "wl" fix see https://lists.freebsd.org/pipermail/freebsd-x11/2020-April/025698.html

> +WAYLAND_EGL_MESON_ARGS=		-Degl=true

meson_options.txt doesn't declare "egl" option. Maybe merge WAYLAND_EGL into WAYLAND option e.g.,

WAYLAND_BUILD_DEPENDS=		wayland-protocols>0:graphics/wayland-protocols
WAYLAND_LIB_DEPENDS=		libepoll-shim.so:devel/libepoll-shim \
				libwayland-client.so:graphics/wayland \
				libxkbcommon.so:x11/libxkbcommon
WAYLAND_CFLAGS=			-I${LOCALBASE}/include/libepoll-shim
WAYLAND_LDFLAGS=		-lepoll-shim
WAYLAND_MESON_TRUE=		wl

(In reply to Tomasz "CeDeROM" CEDRO from comment #17)
> 2. VNC Server - as Wayland does not provide network transparency
> that would allow remote work. This option was not present in
> previous port versions.

For "network transparency" see net/waypipe. No clue if it works on Enlightment. Unlike X11 where de facto only 1 fat server exists Wayland landscape is more diverse, so compositors need to agree which protocols to support (e.g., GNOME can't force D-Bus onto others ;).
Comment 23 Tomasz "CeDeROM" CEDRO 2020-04-21 16:54:24 UTC
Thank you for all feedback and hints! I am working on a big project right now and need to TDMA my brain between project therefore in advance I am sorry for lags in responses.

I have moved to a stronger machine to test my builds. I will send updated patch/shar when ready :-)

I have very quick and positive feedback from the Enligthenment + EFL development team that are willing to support porting to FreeBSD :-)

https://phab.enlightenment.org/T8659
Comment 24 Tomasz "CeDeROM" CEDRO 2020-05-06 22:55:33 UTC
I am a bit overwhelmed by mountains of work. I still remember about tasks here. I will get back in a free moment. Sorry.
Comment 25 Tomasz "CeDeROM" CEDRO 2020-05-14 01:35:35 UTC
Created attachment 214473 [details]
many efl port updates and improvements.

Fixes:
* unnecessary _DESC removed.
* WAYLAND/WEYLAND menu fixed.
* WAYLAND is not only one option to select, OpenGL or EGL impacts the rest exclusively.
* Introduced WAYLAND patch. Now _new_ Wayland builds fine. Should be already in the upstream.
* Introduced VNC Server patch. Will also send to upstream.
* Mode common multimedia features are enabled by default.
* Fixed typos.
* _disabler yes this is not a typo.
* %%AVAHI%% and others in pkg-plist depending on the chosen options.
* tested all build variants with all build options, plus exclusive OpenGL/EGL/SDL.


TODO:
* @Loic I did not understand what was the problem to build on 13? I don't have CURRENT machine, could you please advise a solution?

New EFL-1.24.1 is already out. Please test this build and we can move directly to 1.24.1.

I am now working to build Enlightenment based on this EFL. Also would love to run Wayland ;-)
Comment 26 Tomasz "CeDeROM" CEDRO 2020-05-14 01:56:52 UTC
EFL 1.24.1 is another story. Not a trivial number change. More patches are needed. I would love them in the upstream. Will do. We need to finish this one first. :-)
Comment 27 Gleb Popov freebsd_committer 2020-05-14 08:11:33 UTC
(In reply to Tomasz "CeDeROM" CEDRO from comment #25)
Enabled VNC option produces:


src/modules/ecore_evas/vnc_server/meson.build:10:0: ERROR: Dependency "libvncserver" not found, tried pkgconfig
Comment 28 Tomasz "CeDeROM" CEDRO 2020-05-15 09:44:20 UTC
Created attachment 214515 [details]
devel-efl-1.23.3-20200515-1.shar

Here goes the version with libvncserver included  thank you I missed that.

Anyways, I am not really happy with current EFL performance, there are still some issues, please treat it as testing grounds, its not really yet ready for production. Xfce4 works like 5x faster.

Not sure, but probably this is due build configuration of EFL. I will put more features as default and remove them from port options - no need to choose if we want to support JPEG format if this results in missing buttons or wallpaper selection problems. Port selection should only include big dependencies such as wayland and eGL or network server capabilities (vnc).

I will now dive more into build options and how they impact performance and issues of the desktop environment.
Comment 29 Tomasz "CeDeROM" CEDRO 2020-05-15 09:45:59 UTC
Created attachment 214516 [details]
devel-efl-1.20.7-to-1.23.3-20200515-1.patch

and the patch :-)
Comment 30 Gleb Popov freebsd_committer 2020-05-15 09:50:33 UTC
(In reply to Tomasz "CeDeROM" CEDRO from comment #28)
Thank you for working on this and with an upstream.

In your patch, devel/efl/files/patch-src_lib_ecore_wl2_ecore_wl2_buffer.c looks suspiciously large. You probably generated it manually with -U 9999?

Another idea - how about putting your work into a public repository? Upgrading whole EFL stack is a big task, and I can lend a hand with that.
Comment 31 Tomasz "CeDeROM" CEDRO 2020-05-15 10:56:05 UTC
Hello Gleb, thank you for your support, its highly appreciated :-)

Here is the repo with port sources, please send me your gitlab username and I will add you to the project :-)

https://gitlab.com/cederom/cederom-freebsd

The WL patch was sent by the upstream, that buffer value seems default, but we can adapt it for better, I can see they sometimes take a shortcut, there are some developers that use EFL+E on FreeBSD which is a bit sad they seem to forget about FreeBSD Ports.

Yes its too much work for one step. I would suggest that we make it working, then improve. Incremental development step by step.  1.23.3 fixes critical screen freeze bug which was my main reason for port update. 1.24 is already out but needs more upstream patches.
Comment 32 Gleb Popov freebsd_committer 2020-05-15 11:10:54 UTC
(In reply to Tomasz "CeDeROM" CEDRO from comment #31)
Username is @arrowd

Would you ming taking official Git mirror of the Ports tree https://github.com/freebsd/freebsd-ports and basing your work on top of it?

Since I'm using poudriere, and it operates on the whole tree, I'd need to either manually pull changes from your repo into poudriere tree, or use overlays, which I was successfully avoiding so far.

But if your repo is a fork of freebsd-ports.git, I can just add another remote to my tree.
Comment 33 Tomasz "CeDeROM" CEDRO 2020-05-15 11:54:30 UTC
Here you go Sir :-)

https://github.com/cederom/freebsd-ports/tree/enlightenment

I have created a dedicated branch `enlightenment` to work only on those files of interest on that quite heavy repository :-)

Please note that:
* We need to clarify optimal defaults for meson build. They later impact applications like Terminology. has no input, dialogs does not display images or paths, etc. Current meson options are still a mess and does not really reflect the new way of configuration and this end up in bad system performance.
* Current formats loaders should probably become default as they cause problems on displaying stuff when they are gone. Just need to see if stuff like XCF will depend on whole GIMP. But this is the multimedia desktop wm so we just want all things to work.

The best working EFL on my desktop is the one of the first patches I have provided. The last one is terribly laggy, works slower than watching the stream over the internet. Certainly a meson build options.

Thank you! :-)
Comment 34 Gleb Popov freebsd_committer 2020-05-15 16:30:22 UTC
(In reply to Tomasz "CeDeROM" CEDRO from comment #33)
> I have created a dedicated branch `enlightenment` to work only on those files of interest on that quite heavy repository :-)

This destroys the whole idea for me. I wanted you to base your work on master, so I can run poudriere over it. As long as branch contains only few ports and not a full tree, I can't feed it to poudriere.
Comment 35 Tomasz "CeDeROM" CEDRO 2020-05-15 22:29:17 UTC
No worries, the whole port tree is back there now, updates in dedicated directories with -X.Y.Z version, okay now? :-)
Comment 36 Tomasz "CeDeROM" CEDRO 2020-05-31 09:11:33 UTC
Guys, I am finishing big project right now and my whole time and focus is over there, sorry, I will be back here focused around August.
Comment 37 Peter TKATCHENKO 2020-06-18 17:52:56 UTC
(In reply to Gleb Popov from comment #34)
I cloned the repository and modified devel/efl to use the last version (1.24.3).
https://github.com/Peter2121/freebsd-ports

This is my first attempt to port anything, so all PRs are welcome.

It works for me, but there are still some problems to solve:
- The pkg-plist is huge, it is automatically created with 'make makeplist' and it does not pass 'make check-plist' test;
- The pkg-plist is options-dependent and I don't understand how to manage it correctly here;

I removed all Wayland options as anyway it does not work now.
I am still working to add an option to generate docs (WIP).

I would appreciate any help in pkg-plist management as I'm really lost here.
Comment 38 Peter TKATCHENKO 2020-07-02 09:34:48 UTC
In the last commit of https://github.com/Peter2121/freebsd-ports I've added dynamic pkg-list management and removed static pkg-plist. The port install/deinstall work correctly for me now.
I needed to add a hack to workaround this problem: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247427 - I don't know if the port can be accepted with this hack. Another ports with the same problem just failed to build.
Comment 39 Gleb Popov freebsd_committer 2020-07-02 09:37:40 UTC
(In reply to peter from comment #38)
Just a note that dynamic pkg-plist are generally discouraged.
Comment 40 Peter TKATCHENKO 2020-07-02 10:00:32 UTC
Yes, I know that it would be better to use static list.
But there are 3000+ files installed by the port AND the list is hardly dependent on the port's options AND there are some scripts (others that ninja) installing files. IMHO, it's unmanageable in a static manner.
Comment 41 Peter TKATCHENKO 2020-07-11 19:30:12 UTC
I finished updating the principal Enlightenment ports in my Github repo https://github.com/Peter2121/freebsd-ports :
- devel/efl
- x11-wm/enlightenment
- x11/terminology
- multimedia/rage

Some enlightenment-related ports were removed:
- x11-wm/e-module-alarm/
- x11-wm/e-module-cpu/
- x11-wm/e-module-deskshow/
- x11-wm/e-module-everything-places/
- x11-wm/e-module-mem/
- x11-wm/e-module-rmb/
- x11-wm/e-module-wlan/
- x11-wm/e-modules/
There is no reason to build internal modules separated from Enlightenment, it is not supported in mainstream. Additional modules (if any) can be updated by their developers.

Some EFL ports still need tests/patches (editors/ecrire, graphics/ephoto). I'm working on it. I hope to be able to add another EFL ports (devel/edi and sysutils/evisum) soon.

Four principal ports work for me, I think that they can be committed 'as is'. If I should do something more - please tell me. If not - please, commit them.