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.
Created attachment 213369 [details] patch to be applied from /usr/ports
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.
Created attachment 213522 [details] poudriere log with the diff
Created attachment 213523 [details] poudriere log when I remove files
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 :-)
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 :-)
Created attachment 213536 [details] shar just in case patch does not work there goes the shar of the new port version :-)
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.
Thanks Tomasz, it builds well now (efl, enlightnement and terminology). Can you apply comments from Gleb? I'll open a review after.
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? :-)
(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.
Thank you Gleb! You rox! :-)
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? :-)
Looks like debug should be stated with `make -DWITH_DEBUG` not from the `make config` options?
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 :-)
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.
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 :-)
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.
Created attachment 213586 [details] as before but uncompressed to view diff
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"?
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 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 ;).
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
I am a bit overwhelmed by mountains of work. I still remember about tasks here. I will get back in a free moment. Sorry.
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 ;-)
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. :-)
(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
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.
Created attachment 214516 [details] devel-efl-1.20.7-to-1.23.3-20200515-1.patch and the patch :-)
(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.
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.
(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.
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! :-)
(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.
No worries, the whole port tree is back there now, updates in dedicated directories with -X.Y.Z version, okay now? :-)
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.
(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.
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.
(In reply to peter from comment #38) Just a note that dynamic pkg-plist are generally discouraged.
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.
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.
I've just updated the ports tree in my repository after a successful build of all EFL-related ports using synth. Now all these ports can be built correctly in a clean environment with a recent ports tree: devel/efl x11-wm/enlightenment sysutils/evisum multimedia/rage x11/terminology graphics/ephoto editors/ecrire Could someone commit the ports, please? If I should do something more to get it completed - please, let me know.
(In reply to Peter TKATCHENKO from comment #42) Sure, can you attach a diff file please?
(In reply to Peter TKATCHENKO from comment #42) Great job, but I'm still concerned about dynamic pkg-plist. Maybe consolidate some OPTION's into larger one first and then bring back the static pkg-plist?
Peter thanks for your help! You can take a look at the older patches there is a static pkg-plist example that takes configure options into account :-)
I think we can commit current works. When I have some spare time I will play with updates and E+Wayland. Sorry, I have some delays with a big works I need to focus.. I am currently working on E 0.23.1 and EFL 1.23.3 I have created for testing.. it works far better than currently available from a binary repo with some major blocker bugs fixed :-)
I am very happy to see movement here again :) .. If Tomasz suggestion doesn't work, i could help to create a static pkg-plist.
I've just fixed a pkg-plist of x11-wm/enlightenment to use variables (so it should work on different architectures). I'll add a diff of the current work here. As about static pkg-plist for EFL, any help will be appreciated. But, IMHO, using the static pkg-plist for EFL will make the work of maintaining the port up-to-date really hard. Probably, some additional options (wayland-related) will come soon. So, for every update of the port many tests with different build options will be necessary. As for me, I don't see any interest there. Many 'heavy' ports use dynamic pkg-plist.
Created attachment 217695 [details] Current status of EFL related ports
On the other hand, I feel really bad about this great work being not committed. After all, static pkg-plist can be added later. I'm going to test&commit this in about a week, if no one objects.
(In reply to Gleb Popov from comment #50) +1! Go on. You can take the assignee.
Created attachment 217807 [details] New diff with x11-wm/enlightenment updated to the last version 0.24.2 I've just updated Enlightenment port to the last released version.
A commit references this bug: Author: arrowd Date: Wed Sep 9 09:43:12 UTC 2020 New revision: 548075 URL: https://svnweb.freebsd.org/changeset/ports/548075 Log: Remove ports for Enlightenment modules that are bundled with E itself: 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 PR: 245594 Submitted by: Peter TKATCHENKO <peter@flytrace.com> Approved by: enlightenment (maintainer timeout) Changes: head/MOVED head/x11-wm/Makefile head/x11-wm/e-module-alarm/ head/x11-wm/e-module-cpu/ head/x11-wm/e-module-deskshow/ head/x11-wm/e-module-everything-places/ head/x11-wm/e-module-mem/ head/x11-wm/e-module-rmb/ head/x11-wm/e-module-wlan/ head/x11-wm/e-modules/
A commit references this bug: Author: arrowd Date: Wed Sep 9 09:54:09 UTC 2020 New revision: 548076 URL: https://svnweb.freebsd.org/changeset/ports/548076 Log: devel/efl: Update to 1.24.3 multimedia/rage: Update to 0.3.1 x11-wm/enlightenment: Update to 0.24.1 x11/terminology: Update to 1.7.0 PR: 245594 Submitted by: Peter TKATCHENKO <peter@flytrace.com> Approved by: enlightenment (maintainer timeout) Changes: head/devel/efl/Makefile head/devel/efl/distinfo head/devel/efl/files/patch-configure.ac head/devel/efl/files/patch-m4_efl.m4 head/devel/efl/files/patch-src_Makefile.am head/devel/efl/files/patch-src_bin_elementary_test__ui__clock.c head/devel/efl/files/patch-src_lib_evas_Evas__GL.h head/devel/efl/pkg-plist head/multimedia/rage/Makefile head/multimedia/rage/distinfo head/multimedia/rage/pkg-plist head/sysutils/Makefile head/sysutils/evisum/ head/sysutils/evisum/Makefile head/sysutils/evisum/distinfo head/sysutils/evisum/files/ head/sysutils/evisum/files/patch-src_bin_meson.build head/sysutils/evisum/pkg-descr head/sysutils/evisum/pkg-plist head/x11/terminology/Makefile head/x11/terminology/distinfo head/x11/terminology/pkg-plist head/x11-wm/enlightenment/Makefile head/x11-wm/enlightenment/distinfo head/x11-wm/enlightenment/files/patch-8392fc47.c head/x11-wm/enlightenment/files/patch-src_modules_sysinfo_cpuclock_cpuclock__sysctl.c head/x11-wm/enlightenment/pkg-descr head/x11-wm/enlightenment/pkg-plist
(In reply to Peter TKATCHENKO from comment #52) Peter, can you please rebase your last patch?
(In reply to Gleb Popov from comment #55) Ah, nevermind. I found your GitHub repo and pulled the patch from it.
A commit references this bug: Author: arrowd Date: Wed Sep 9 12:46:59 UTC 2020 New revision: 548085 URL: https://svnweb.freebsd.org/changeset/ports/548085 Log: x11-wm/enlightenment: Update to 0.24.2 PR: 245594 Submitted by: Peter TKATCHENKO <peter@flytrace.com> Changes: head/x11-wm/enlightenment/Makefile head/x11-wm/enlightenment/distinfo
Whew. Done. Thanks everyone involved.
(In reply to Gleb Popov from comment #58) Thanks a lot! Would it be possible to add me to the list enlightenment@FreeBSD.org so I'll be able to know if something goes wrong and fix it?
(In reply to Peter TKATCHENKO from comment #59) freebsd-enlightenment is a regular mailing list that you can subscribe to: https://lists.freebsd.org/mailman/listinfo/freebsd-enlightenment
Great news and big thank you for bringing the new EFL / Enlightenment info FreeBSD and soon FreeBSD into Wayland + E :-)
(In reply to Tomasz "CeDeROM" CEDRO from comment #61) During update, I uncommented WAYLAND option and it built fine. I didn't run-test it, though.
Thank you Gleb and no worries it needs more work though and this is important step to keep up to date with upstream that is currently under intensive development :-) Thank you everyone again for help support and make new E working! =)
Hello, Something went wrong during the update of efl and enlightenment ports. The ports content is NOT the same as on my server. For the both ports the subdirectory 'files' is present, but IT SHOULD NOT. For the enlightenment port the file Makefile.plist is present, but IT SHOULD NOT. There is a small bug in enlightenment port (my error) that prevents correct package build on not x64 architectures. I'm going to fix it.
(In reply to Peter TKATCHENKO from comment #64) This is because you generated the patch incorrectly (or it is me that applied it wrong). I noticed this and removed some files, but probably not all of them. Can you provide me a list of files that should be removed from tree?
I see that WAYLAND option was added, I don't think it is a good idea as WAYLAND does NOT work at the actual state. It complies but it does not work. The users will be confused and they will open bugs here.
(In reply to Gleb Popov from comment #65) To remove: devel/efl/files/patch-src_lib_evas_common_evas__cpu.c devel/efl/files/ x11-wm/enlightenment/files/pkg-message.in x11-wm/enlightenment/files/ x11-wm/enlightenment/Makefile.plist I've just fixed enlightenment build on i386/arm: https://github.com/Peter2121/freebsd-ports/commit/e98fa462c3cb3f4378eed397b6bbeda63615b4a0 Could you take the patch from GitHub, please? I'm really new in SVN (I use GIT normally), so it was probably my fault. I've just received the notification about failed build of EFL on i386, but I cannot reproduce the problem, it builds correctly on i386 for me. I'm going to investigate the problem.
A commit references this bug: Author: arrowd Date: Fri Sep 11 14:47:11 UTC 2020 New revision: 548243 URL: https://svnweb.freebsd.org/changeset/ports/548243 Log: devel/efl and x11-wm/enlightenment: Remove some files that I missed in the last update. PR: 245594 Reported by: Peter TKATCHENKO <peter@flytrace.com> Changes: head/devel/efl/files/ head/x11-wm/enlightenment/Makefile.plist head/x11-wm/enlightenment/files/
A commit references this bug: Author: arrowd Date: Fri Sep 11 14:55:57 UTC 2020 New revision: 548245 URL: https://svnweb.freebsd.org/changeset/ports/548245 Log: devel/efl: Mark WAYLAND option BROKEN. Despite the code compiles, it is reported to fail on runtime. PR: 245594 Reported by: Peter TKATCHENKO <peter@flytrace.com> Changes: head/devel/efl/Makefile
(In reply to Peter TKATCHENKO from comment #67) I use `git diff --no-prefix --no-renames` when generating SVN-compatible diffs from git.
(In reply to Gleb Popov from comment #70) Do you want I send you the diff for https://github.com/Peter2121/freebsd-ports/commit/e98fa462c3cb3f4378eed397b6bbeda63615b4a0 or you take it from Github directly?