Re: WebDAV module ported from serf to curl; curl using openssl and zlib (was: Re: Openssl, serf and curl)

2022-04-26 Thread Damjan Jovanovic
Hi Pedro

That's great.

I think all you need to do to test on Windows is replace libcurl.dll and
ucpdav1.dll with the copies in the ZIP file you download from here:
https://drive.google.com/file/d/1YnpCr4woe8laah4nxtgzGfuEfGpVrf9L/view?usp=sharing

Regards
Damjan


On Tue, Apr 26, 2022 at 8:20 PM Pedro Lino 
wrote:

>
> Hi Damian
>
>
>
> I use Webdav almost on a daily basis.
> Looking forward to testing a new build under Linux as soon as you push it
> to 42X
>
> Can you share your working binaries for Windows?
>
>
>
> Thanks!
>
> Pedro
> > On 04/26/2022 6:56 PM Damjan Jovanovic  wrote:
> >
> >
> >
> >
> >
> >
> > On Mon, Nov 15, 2021 at 9:57 PM Jim Jagielski  j...@jagunet.com>> wrote:
> > > I'm gonna look into the serf->(lib)curl option... Since we don't use
> any of the fancy features of serf, I'm thinking that the easy option might
> be best
> > >
> > >
> > > Hi
> > >
> > > I've ported our WebDAV content provider module from Serf to Curl.
> > >
> > > While it ended well, and several other bugs were found and fixed, it
> definitely wasn't the "easy option" Jim ;). Starting with conservative
> changes, it ended up needing total restructuring, and became more of a
> rewrite. The crashes were frequent and hung connections many, and I had to
> read up on the HTTP protocol, and read Curl and Serf's source code, but
> eventually I prevailed, and a clean elegant stable Curl WebDAV module
> emerged.
> > >
> > > The huge patch is attached for anyone wishing to review and test.
> Unless there are major objections, I'll push it in a couple of days.
> > >
> > > STATUS
> > >
> > > It builds and works well on FreeBSD and Windows.
> > >
> > > Most of the code was reused, and all the operations and semantics
> previously present with Serf, should have been preserved.
> > >
> > > Browsing WebDAV files and directories, loading files, overwriting them
> ("Save"), creating them ("Save As"), renaming and deleting them, all works.
> > >
> > > HTTP and HTTPS proxies work. Unlike Serf, Curl could also support
> SOCKS proxies (with minimal further changes), but AOO lacks that setting in
> the proxy UI and configuration.
> > >
> > > Authentication works, both to the destination server and to the proxy
> server. I've successfully tested Basic and Digest authentication. Curl
> supports every authentication method Serf does and more.
> > >
> > > HTTPS works, with a custom certificate verification function, using
> our own certificate store from NSS and its API (like the Serf code used). A
> bug was discovered (which is in the Serf implementation too) where
> self-signed certificates were being unconditionally rejected; apparently
> NSS wants to see that a copy of that certificate  in its certificate chain
> parameter too. Now they work, and the user gets prompted to allow access.
> > >
> > >
> > > HTTPS and authentication can be used together on the same connection
> and work well, both bringing up their UI dialogs as needed.
> > >
> > > A bug was fixed where when username and password were both present in
> the URL (dav://user:pass@host/path), the code was trying to split them at
> the "@" instead of ":".
> > >
> > > Unnecessary base64 encoding and decoding was removed, when importing
> the TLS connection's certificates into our XSecurityEnvironment. They now
> come in directly as ASN.1 DER, and still work.
> > >
> > > The code was greatly restructured and cleaned up, as Curl's API is
> synchronous and blocking, with parameters set in advance instead of through
> many callbacks, which has allowed using short clear methods, and clean
> separation between the session and request classes. The WebDAV content
> provider has shrunk from 35 to 21 C++ files, 43 to 29 header files, and
> 19129 to 15991 lines of code. With WebDAV methods centralized and
> refactored into only 10-20 lines of code each, instead of scattered across
> 4 files, it is much more understandable and maintainable now.
> > >
> > > Curl is vastly more portable than Serf. We should build easily now
> even on OS/2. We can remain with existing build tools instead of needing
> scons or cmake just to build Serf.
> > >
> > > 3 now unused dependencies were removed: apr, apr-util, and serf. Serf
> isn't so bad. APR's pool idea is an ingenious way of doing resource
> management in C. However Curl has excellent documentation, guides,
> examples, and detailed explanations and even example code for each setting,
> while Serf has no documentation. Serf might be worth it in a project that
> already uses APR a lot, but we don't.
> > >
> > > Instead of the historical, crippled forms of logging like OSL_TRACE(),
> which don't appear in release builds, I've made it use the newer
> com.sun.star.logging UNO component (wrapped in comphelper::EventLogger),
> which was inspired by java.util.logging, with configurable verbosity
> levels, handlers (file and console) and output formats (plain, csv), and
> importantly, which produces output in release builds too. I've also made it
> so that on 

Re: [CLOSED] Re: [VOTE] Release AOO 4.1.12-RC1 as GA

2022-04-26 Thread Carl Marcum

Hi All,

Sorry I'm a little behind on the blog draft and announcement email drafts.
I'll get something together tonight and tomorrow.

Best regards,
Carl

On 4/26/22 3:00 PM, Matthias Seidel wrote:

Hi Jim,

Signed Windows binaries are uploaded now.

Regards,

    Matthias

Am 26.04.22 um 16:01 schrieb Matthias Seidel:

Hi Jim,

Am 26.04.22 um 15:24 schrieb Jim Jagielski:

I was hoping for more testing and feedback, but we have rec'd the necessary 
number of
binding votes, and so this VOTE PASSES.

Yes, I also hoped for more...

However, I will start to sign the Windows binaries and upload them later
to dist/dev.

Regards,

    Matthias


On Apr 13, 2022, at 9:54 AM, Jim Jagielski  wrote:

I am calling a VOTE on releasing the source and complimentary community builds 
of
Apache OpenOffice 4.1.12-RC1 as GA.

These artifacts can be found at:

https://dist.apache.org/repos/dist/dev/openoffice/4.1.12-RC1/

Please cast your vote:

The Release Candidate is good for production/GA:

[ ] yes / +1

[ ] no / -1

My vote is based on

[ ] binding (member of PMC)

[ ] I have built and tested the RC from source on platform [ ]

[ ] I have tested the binary RC on platform [ ]

This vote will be open for 7 days to allow for sufficient time
for testing, review, and voting.
-
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org


-
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org




-
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org



Re: [CLOSED] Re: [VOTE] Release AOO 4.1.12-RC1 as GA

2022-04-26 Thread Matthias Seidel
Hi Jim,

Signed Windows binaries are uploaded now.

Regards,

   Matthias

Am 26.04.22 um 16:01 schrieb Matthias Seidel:
> Hi Jim,
>
> Am 26.04.22 um 15:24 schrieb Jim Jagielski:
>> I was hoping for more testing and feedback, but we have rec'd the necessary 
>> number of
>> binding votes, and so this VOTE PASSES.
> Yes, I also hoped for more...
>
> However, I will start to sign the Windows binaries and upload them later
> to dist/dev.
>
> Regards,
>
>    Matthias
>
>>> On Apr 13, 2022, at 9:54 AM, Jim Jagielski  wrote:
>>>
>>> I am calling a VOTE on releasing the source and complimentary community 
>>> builds of
>>> Apache OpenOffice 4.1.12-RC1 as GA.
>>>
>>> These artifacts can be found at:
>>>
>>> https://dist.apache.org/repos/dist/dev/openoffice/4.1.12-RC1/
>>>
>>> Please cast your vote:
>>>
>>> The Release Candidate is good for production/GA:
>>>
>>> [ ] yes / +1
>>>
>>> [ ] no / -1
>>>
>>> My vote is based on
>>>
>>> [ ] binding (member of PMC)
>>>
>>> [ ] I have built and tested the RC from source on platform [ ]
>>>
>>> [ ] I have tested the binary RC on platform [ ]
>>>
>>> This vote will be open for 7 days to allow for sufficient time
>>> for testing, review, and voting.
>>> -
>>> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
>>> For additional commands, e-mail: dev-h...@openoffice.apache.org
>>>
>> -
>> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
>> For additional commands, e-mail: dev-h...@openoffice.apache.org
>>



smime.p7s
Description: S/MIME Cryptographic Signature


Re: WebDAV module ported from serf to curl; curl using openssl and zlib (was: Re: Openssl, serf and curl)

2022-04-26 Thread Pedro Lino

Hi Damian



I use Webdav almost on a daily basis.
Looking forward to testing a new build under Linux as soon as you push it to 42X

Can you share your working binaries for Windows?



Thanks!

Pedro
> On 04/26/2022 6:56 PM Damjan Jovanovic  wrote:
> 
> 
> 
> 
> 
> 
> On Mon, Nov 15, 2021 at 9:57 PM Jim Jagielski  > wrote:
> > I'm gonna look into the serf->(lib)curl option... Since we don't use any of 
> > the fancy features of serf, I'm thinking that the easy option might be best 
> > 
> > 
> > Hi
> > 
> > I've ported our WebDAV content provider module from Serf to Curl.
> > 
> > While it ended well, and several other bugs were found and fixed, it 
> > definitely wasn't the "easy option" Jim ;). Starting with conservative 
> > changes, it ended up needing total restructuring, and became more of a 
> > rewrite. The crashes were frequent and hung connections many, and I had to 
> > read up on the HTTP protocol, and read Curl and Serf's source code, but 
> > eventually I prevailed, and a clean elegant stable Curl WebDAV module 
> > emerged.
> > 
> > The huge patch is attached for anyone wishing to review and test. Unless 
> > there are major objections, I'll push it in a couple of days.
> > 
> > STATUS
> > 
> > It builds and works well on FreeBSD and Windows.
> > 
> > Most of the code was reused, and all the operations and semantics 
> > previously present with Serf, should have been preserved.
> > 
> > Browsing WebDAV files and directories, loading files, overwriting them 
> > ("Save"), creating them ("Save As"), renaming and deleting them, all works.
> > 
> > HTTP and HTTPS proxies work. Unlike Serf, Curl could also support SOCKS 
> > proxies (with minimal further changes), but AOO lacks that setting in the 
> > proxy UI and configuration.
> > 
> > Authentication works, both to the destination server and to the proxy 
> > server. I've successfully tested Basic and Digest authentication. Curl 
> > supports every authentication method Serf does and more.
> > 
> > HTTPS works, with a custom certificate verification function, using our own 
> > certificate store from NSS and its API (like the Serf code used). A bug was 
> > discovered (which is in the Serf implementation too) where self-signed 
> > certificates were being unconditionally rejected; apparently NSS wants to 
> > see that a copy of that certificate  in its certificate chain parameter 
> > too. Now they work, and the user gets prompted to allow access.
> > 
> > 
> > HTTPS and authentication can be used together on the same connection and 
> > work well, both bringing up their UI dialogs as needed.
> > 
> > A bug was fixed where when username and password were both present in the 
> > URL (dav://user:pass@host/path), the code was trying to split them at the 
> > "@" instead of ":".
> > 
> > Unnecessary base64 encoding and decoding was removed, when importing the 
> > TLS connection's certificates into our XSecurityEnvironment. They now come 
> > in directly as ASN.1 DER, and still work.
> > 
> > The code was greatly restructured and cleaned up, as Curl's API is 
> > synchronous and blocking, with parameters set in advance instead of through 
> > many callbacks, which has allowed using short clear methods, and clean 
> > separation between the session and request classes. The WebDAV content 
> > provider has shrunk from 35 to 21 C++ files, 43 to 29 header files, and 
> > 19129 to 15991 lines of code. With WebDAV methods centralized and 
> > refactored into only 10-20 lines of code each, instead of scattered across 
> > 4 files, it is much more understandable and maintainable now.
> > 
> > Curl is vastly more portable than Serf. We should build easily now even on 
> > OS/2. We can remain with existing build tools instead of needing scons or 
> > cmake just to build Serf.
> > 
> > 3 now unused dependencies were removed: apr, apr-util, and serf. Serf isn't 
> > so bad. APR's pool idea is an ingenious way of doing resource management in 
> > C. However Curl has excellent documentation, guides, examples, and detailed 
> > explanations and even example code for each setting, while Serf has no 
> > documentation. Serf might be worth it in a project that already uses APR a 
> > lot, but we don't.
> > 
> > Instead of the historical, crippled forms of logging like OSL_TRACE(), 
> > which don't appear in release builds, I've made it use the newer 
> > com.sun.star.logging UNO component (wrapped in comphelper::EventLogger), 
> > which was inspired by java.util.logging, with configurable verbosity 
> > levels, handlers (file and console) and output formats (plain, csv), and 
> > importantly, which produces output in release builds too. I've also made it 
> > so that on LogLevel::FINEST, Curl's verbose mode is enabled and Curl's 
> > debug output is also logged through us, with descriptions of what Curl is 
> > doing, and logs of all HTTP traffic including headers and bodies, before 
> > encryption and after decryption in the case of 

Re: [CLOSED] Re: [VOTE] Release AOO 4.1.12-RC1 as GA

2022-04-26 Thread Matthias Seidel
Hi Jim,

Am 26.04.22 um 15:24 schrieb Jim Jagielski:
> I was hoping for more testing and feedback, but we have rec'd the necessary 
> number of
> binding votes, and so this VOTE PASSES.

Yes, I also hoped for more...

However, I will start to sign the Windows binaries and upload them later
to dist/dev.

Regards,

   Matthias

>
>> On Apr 13, 2022, at 9:54 AM, Jim Jagielski  wrote:
>>
>> I am calling a VOTE on releasing the source and complimentary community 
>> builds of
>> Apache OpenOffice 4.1.12-RC1 as GA.
>>
>> These artifacts can be found at:
>>
>> https://dist.apache.org/repos/dist/dev/openoffice/4.1.12-RC1/
>>
>> Please cast your vote:
>>
>> The Release Candidate is good for production/GA:
>>
>> [ ] yes / +1
>>
>> [ ] no / -1
>>
>> My vote is based on
>>
>> [ ] binding (member of PMC)
>>
>> [ ] I have built and tested the RC from source on platform [ ]
>>
>> [ ] I have tested the binary RC on platform [ ]
>>
>> This vote will be open for 7 days to allow for sufficient time
>> for testing, review, and voting.
>> -
>> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
>> For additional commands, e-mail: dev-h...@openoffice.apache.org
>>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
> For additional commands, e-mail: dev-h...@openoffice.apache.org
>



smime.p7s
Description: S/MIME Cryptographic Signature


[CLOSED] Re: [VOTE] Release AOO 4.1.12-RC1 as GA

2022-04-26 Thread Jim Jagielski
I was hoping for more testing and feedback, but we have rec'd the necessary 
number of
binding votes, and so this VOTE PASSES.

> On Apr 13, 2022, at 9:54 AM, Jim Jagielski  wrote:
> 
> I am calling a VOTE on releasing the source and complimentary community 
> builds of
> Apache OpenOffice 4.1.12-RC1 as GA.
> 
> These artifacts can be found at:
> 
> https://dist.apache.org/repos/dist/dev/openoffice/4.1.12-RC1/
> 
> Please cast your vote:
> 
> The Release Candidate is good for production/GA:
> 
> [ ] yes / +1
> 
> [ ] no / -1
> 
> My vote is based on
> 
> [ ] binding (member of PMC)
> 
> [ ] I have built and tested the RC from source on platform [ ]
> 
> [ ] I have tested the binary RC on platform [ ]
> 
> This vote will be open for 7 days to allow for sufficient time
> for testing, review, and voting.
> -
> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
> For additional commands, e-mail: dev-h...@openoffice.apache.org
> 


-
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org



Re: [openoffice] branch trunk updated: As of Python 3.8, the pkg-config "--libs" needed to build with Python, differ between Python modules and applications that embed Python (see https://bugs.python.

2022-04-26 Thread Matthias Seidel
Hi Damjan,

Should this be cherry-picked to AOO42X?

Regards,

   Matthias

Am 03.04.22 um 15:20 schrieb dam...@apache.org:
> This is an automated email from the ASF dual-hosted git repository.
>
> damjan pushed a commit to branch trunk
> in repository https://gitbox.apache.org/repos/asf/openoffice.git
>
>
> The following commit(s) were added to refs/heads/trunk by this push:
>  new f134535  As of Python 3.8, the pkg-config "--libs" needed to build 
> with Python, differ between Python modules and applications that embed Python 
> (see https://bugs.python.org/issue36721).
> f134535 is described below
>
> commit f134535553051695dfbb71310003ab610fda2c83
> Author: Damjan Jovanovic 
> AuthorDate: Sun Apr 3 15:15:46 2022 +0200
>
> As of Python 3.8, the pkg-config "--libs" needed to build with Python, 
> differ
> between Python modules and applications that embed Python (see
> https://bugs.python.org/issue36721).
> 
> Detect the Python version, and if >= 3.8, query the "python-X.Y-embed"
> package with pkg-config instead of "python-X.Y".
> 
> This is needed to build pyuno with Python 3.8.
> 
> Patch by: me
> ---
>  main/configure.ac | 8 +++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/main/configure.ac b/main/configure.ac
> index 5a87d6e..51522cc 100644
> --- a/main/configure.ac
> +++ b/main/configure.ac
> @@ -3987,7 +3987,13 @@ elif test -n "$with_system_python" -o -n 
> "$with_system_libs" && \
>  
> python_include=`$PYTHON -c "import distutils.sysconfig; 
> print(distutils.sysconfig.get_config_var('INCLUDEPY'));"`
> python_version=`$PYTHON -c "import distutils.sysconfig; 
> print(distutils.sysconfig.get_config_var('VERSION'));"`
> -   PKG_CHECK_MODULES(PYTHON, python-$python_version, PYTHON_PC="TRUE", 
> PYTHON_PC="" )
> +   # Python 3.8 and later distinguish building Python modules from linking 
> to the libpython:
> +   # (https://bugs.python.org/issue36721)
> +   if test "$python_version" -lt "3.8"; then
> +   PKG_CHECK_MODULES(PYTHON, python-$python_version, PYTHON_PC="TRUE", 
> PYTHON_PC="" )
> +   else
> +   PKG_CHECK_MODULES(PYTHON, python-$python_version-embed, 
> PYTHON_PC="TRUE", PYTHON_PC="" )
> +   fi
> if test "$PYTHON_PC" != "TRUE"; then
> PYTHON_CFLAGS="-I$python_include"
> PYTHON_LIBS="-lpython$python_version"



smime.p7s
Description: S/MIME Cryptographic Signature