Re: Development: Curl-Impersonate

Stuart Henderson <[email protected]> Wed, 29 Jul 2026 15:25:26 +0100
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
--apvwVJuPDirWcmUl
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

On 2026/07/26 15:06, Anoduck, The Anonymous Duck wrote:
> Announcing Curl-Impersonate to OpenBSD Ports Tree.
> 
> This is my first contribution to ports, and something I have wanted to contribute to for a long time. So, be gentle guys.  
> 
> Currently hosted at: https://codeberg.org/anoduck/curl-impersonate-port
> 
> Will try to submit pull request to Jasper's OpenBSD-WIP repo in the next week or two to begin staging for inclusion.  

That port is doing a lot of things which are at odds with how ports
should work.

Due to how this is built upstream (i.e. files from various upstreams
which need patching), it's necessarily going to be a bit of a mess,
but we can get closer at least, see attached tar.

This project builds a patched curl with static-linked boringssl (with
C++ code); curl-impersonate upstream have been stumbling around trying
to figure out how to add the C++ standard library via 'cc -l<name>'
with all sorts of mess to try and figure out which library to use -
instead they should just use c++ to link. I haven't figured out how
to get that done directly in the standard build but did come up with
a pretty horrible workaround. If any cmake wizards want a challenge,
try to get it to link the executable directly with c++ as part of the
main build rather than the post-build monstrosity...you may end up
having to patch a patch.

> POI: Tried to generate the PKLST last night, but go-tools was unavailable. So, will add when the package comes available again. 

Not sure why you need go-tools to generate a plist? (Most of the
BUILD_DEPENDS listed were bogus too, though I see they do come from
upstream).

> Would be super cool if I could port over the python library as well.

That is likely to be a problem. boringssl is statically linked into
libcurl-impersonate.so and trying to load this into the same address
space as python will likely result in a conflict with the libressl ones
used by python.


> Cheers,
> Anoduck
> 
> # ===========================
> Anoduck, The Anonymous Duck
> 
> https://anoduck.github.io/wiki/
> https://github.com/anoduck
> https://anoduck.com
> https://codeberg.org/anoduck
> 

--apvwVJuPDirWcmUl
Content-Type: application/x-tar-gz
Content-Disposition: attachment; filename=curl-impersonate.tgz
Content-Transfer-Encoding: base64

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

--apvwVJuPDirWcmUl--