Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support more extensions #152

Open
28 of 36 tasks
crazywhalecc opened this issue Aug 29, 2023 · 22 comments · Fixed by #559
Open
28 of 36 tasks

Support more extensions #152

crazywhalecc opened this issue Aug 29, 2023 · 22 comments · Fixed by #559
Labels
enhancement New feature or request help wanted Extra attention is needed kind/extension Issues related to extensions

Comments

@crazywhalecc
Copy link
Owner

crazywhalecc commented Aug 29, 2023

Some extensions that are planned to be supported are listed here. Here is just a collection list and contains my notes, and there is no guarantee that the extension will be supported. Some of the extensions contained here may not be supported and will be removed from this list if they are found to be unsupported.

Linux & macOS

Windows

FreeBSD

No.

Since FreeBSD lacks CI support on GitHub and it is troublesome to test on my own computer, I will temporarily put the update of FreeBSD on hold.

If someone can provide FreeBSD CI or answer questions related to FreeBSD compilation, I will be very grateful and restart the official maintenance of FreeBSD.

@crazywhalecc crazywhalecc added enhancement New feature or request help wanted Extra attention is needed kind/extension Issues related to extensions labels Aug 29, 2023
@crazywhalecc crazywhalecc pinned this issue Aug 29, 2023
@stloyd
Copy link
Contributor

stloyd commented Sep 7, 2023

Aren't those extensions already covered?

@crazywhalecc
Copy link
Owner Author

Aren't those extensions already covered?

No. imap and ldap are internal extensions, and they will be supported in the future (I'm debugging them on my local branch). Now I need to figure out some old library compilation, e.g. wu-imap (c-client). It would be great if someone knows about them and would like to help.

For imap, I'm reading Homebrew and Alpine BUILD related code:

@DubbleClick
Copy link
Contributor

DubbleClick commented Sep 13, 2023

I think the old links that are mentioned in git.alpinelinux.org are dead, but the sources can be found at https://github.com/uw-imap/imap. Edit: never mind, the source link is still up.

I'll try to get the php-imap compilation working on a VM, but this looks like a dead extension going forward. Highly unfortunate that there doesn't seem to be a reliable alternative.

Ldap (and sysvsem, is it planned?) integration appears fairly straightforward, though.

@crazywhalecc
Copy link
Owner Author

@DubbleClick sysvsem is supported now, but it seems I forgot add it in documentation. I'll add it later.

ldap is planned but I haven't started yet.

@DubbleClick
Copy link
Contributor

I was able to compile php with ldap just following the documentation. Imap is a whole other story, had no luck with it on rhel 9.2. I hope I'll find the time to create a PR for ldap next week.

@crazywhalecc
Copy link
Owner Author

I was able to compile php with ldap just following the documentation. Imap is a whole other story, had no luck with it on rhel 9.2. I hope I'll find the time to create a PR for ldap next week.

It would be great if you could improve new extensions!

And I noticed that you are using RHEL, I'm not familiar with it. It might be more helpful if someone could first improve the doctor check items for RHEL and CentOS environments.

@DubbleClick
Copy link
Contributor

DubbleClick commented Sep 16, 2023

Yeah I've noticed that there was no musl auto-fix for rhel available. I wasn't able to find a rpm for it and therefore had to manually build it and add the directory to ld_flags.

Will do again with a fresh VM and document the necessary commands. I should find time next week.

@DubbleClick
Copy link
Contributor

DubbleClick commented Sep 23, 2023

I've had more of a play with imap and got it to compile (dynamically so far, with openssl3, not 1.1.1), but even that requires a lot of patches both in the form of .patch files as well as replacing contents in files that no .patch file is available for. This project doesn't have any logic to apply patch files yet.

It also needs multiple services to be running on the system and a (self signed is fine) certificate. It's a complete mess that requires decisions to be taken to integrate it here that I'm not in a position to make.

I would very much appreciate if someone could tackle it, because it's a very necessary extension with no real replacement (there's laminas mail to send mail with limited functionality, an abandoned php-imap2 that doesn't work with php 8, and nothing else). But you should expect it to be quite a lot of work. :/

Edit: There seems to be a fairly well maintained imap replacement here, although I haven't check if all functionality exists: https://github.com/Webklex/php-imap

Either way it would still be good to integrate ext-imap for compatibility with existing projects.

@crazywhalecc
Copy link
Owner Author

crazywhalecc commented Sep 23, 2023

@DubbleClick

See #202

@crazywhalecc crazywhalecc changed the title Support more common extensions Support more extensions Dec 20, 2023
@boonkerz
Copy link

boonkerz commented Mar 2, 2024

i work on sdl

cli and micro with static sdl3 lib currently only on windows

image

@jorgeluiz1586
Copy link

Hello, could you include the Openswoole extension to be tested and included?

I saw that there is Swoole but I need the gRPC client and gRPC server of Openswoole, I believe it is compatible since Openswoole is a fork of Swoole with more features.

@crazywhalecc
Copy link
Owner Author

@jorgeluiz1586 It should not be difficult to support openswoole.

But I am not sure if openswoole has a similar hook bug as swoole (phpmicro+phar cannot be used in PROCESS mode).

@weijer
Copy link

weijer commented Sep 6, 2024

Need to support :msgpack

@crazywhalecc
Copy link
Owner Author

@weijer Please create an issue and we can start this with progress.

@mrlovables
Copy link

Need to support :GmSSL-PHP,

@crazywhalecc
Copy link
Owner Author

@mrlovables @weijer Now static-php supported gmssl and msgpack in 2.3.4 .

@mrlovables
Copy link

@mrlovables @weijer Now static-php supported gmssl and msgpack in 2.3.4 .现在 static-php 在 2.3.4 中支持 gmssl 和 msgpack 。

thanks

@kdrmlhcn
Copy link

I was able to get a build with the "intl" extension for PHP 8.3 on MacOS, but I couldn't do it for Windows. I couldn't find a solution either. What do you recommend for this? @crazywhalecc

@rcmcdonald91
Copy link

rcmcdonald91 commented Sep 24, 2024

Regarding FreeBSD CI : https://cirrus-ci.org/

I can assist with getting this running if you need.

Also I have some notes regarding FreeBSD support:

  1. Statically link /usr/lib/libutil.a for openpty symbol
  2. make is obviously BSD Make on FreeBSD not GNU Make and while some Makefiles can be correctly interpreted by both Make variants, there are some extensions/libraries that explicitly require GNU Make. We need a way to teach these situations to use gmake instead. The usual environment overrides for doing this don't seem to work with SPC. In other words, I can't manage to get SPC to prefer gmake simply by adjusting the environment variables.
  3. The FreeBSD ports collection contains BSD Makefiles for many (if not all) extensions and libraries needed for SPC. Although these Makefiles are not directly usable as-is, they do represent the "knowledge" needed to build these extensions/libraries on FreeBSD. It can be a good reference for "how to build X" on FreeBSD.
  4. ??

@crazywhalecc
Copy link
Owner Author

I was able to get a build with the "intl" extension for PHP 8.3 on MacOS, but I couldn't do it for Windows. I couldn't find a solution either. What do you recommend for this? @crazywhalecc

@kdrmlhcn For Windows, you can build a static php.exe with the same PHP version, same VS version, and same thread safety as windows.php.net, and then use php.ini to dynamically load the intl extension.

@crazywhalecc
Copy link
Owner Author

crazywhalecc commented Sep 25, 2024

@rcmcdonald91 Thank you very much for the information. At the moment I'm more looking for a way to integrate with GHA, it would be great if you could provide more help with CI.

@zengbo
Copy link

zengbo commented Nov 8, 2024

Need to support: gnupg and grpc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed kind/extension Issues related to extensions
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

10 participants