Windows Installer build
Firstly, I tried to build installer for NextCloud Desktop. Actually everything was good but I realized dockerfile problem. Dockerfile is using ancient libraries/packages.
When I tried this docker file, all things was good. Then, I tried complitation process. I've got an error in this process.
docker run -v "$PWD:/home/user/client" nextcloud-client-win32:<version> /home/user/client/admin/win/docker/build.sh client/ $(id -u)
I've got this error at cmake step in build sh.
> CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
> Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
> system variable OPENSSL_ROOT_DIR: Found unsuitable version "1.0.2h", but
> required is at least "1.1" (found
> /usr/i686-w64-mingw32/sys-root/mingw/lib/libcrypto.dll.a)
I've searched some websites, papers and packages web sites. I couldn't find "openssl 1.1 for x86" version in any repositories.
I examined these repositories but there is only ancient packages.
http://download.opensuse.org/repositories/windows:/mingw/openSUSE_Leap_42.1/windows:mingw.repo
http://download.opensuse.org/repositories/isv:ownCloud:toolchains:mingw:win32:2.3/openSUSE_Leap_42.1/isv:ownCloud:toolchains:mingw:win32:2.3.repo
How can i find mingw32 openssl 1.1 for installer building? Is there alternative way for windows installer without dockerfile?
Hi @suleymanbilgin, did you check our client_building repo? https://github.com/nextcloud/client-building
We use NSIS scripts to create the installer. There are instructions in the README.
If I understand you correctly, what you are trying to do is not possible, please see https://github.com/nextcloud/desktop/issues/93.
@camilasan is docker no longer supported for building nextcloud?
@camilasan So, is the following documentation-link / should it be marked as obsolete? https://docs.nextcloud.com/desktop/3.0/building.html#windows-installer-build-cross-compile
I would love to use the docker-setup to build the installer, but i also wasn't able to figure out how to include openssl >1.1 for mingw-usage - which is required in any constellation.
I tried multiple variants of the dockerfile, based on the images "opensuse/archive:42.1", "opensuse/archive:42.3", " "opensuse/leap:15.2", "opensuse/tumbleweed" with the according repo-links and updating the openssl-version:

Is there any way how to make this work?
This is the error-message i get:
...
Compiling without updater
CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:273 (message):
The package name passed to find_package_handle_standard_args (INOTIFY)
does not match the name of the calling package (INotify). This can lead to
problems in calling code that expects find_package result variables
(e.g., _FOUND) to follow a certain pattern.
Call Stack (most recent call first):
cmake/modules/FindINotify.cmake:24 (find_package_handle_standard_args)
CMakeLists.txt:191 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Could NOT find INOTIFY (missing: INOTIFY_INCLUDE_DIR INOTIFY_LIBRARY_DIR)
-- Could NOT find Sphinx (missing: SPHINX_EXECUTABLE)
-- Could NOT find PdfLatex (missing: PDFLATEX_EXECUTABLE)
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR: Found unsuitable version "1.0.2h", but
required is at least "1.1" (found
/usr/i686-w64-mingw32/sys-root/mingw/lib/libcrypto.dll.a, )
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:456 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake/Modules/FindOpenSSL.cmake:486 (find_package_handle_standard_args)
CMakeLists.txt:195 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/user/client/build-win32/CMakeFiles/CMakeOutput.log".
make: * No targets specified and no makefile found. Stop.
make: * No rule to make target 'package'. Stop.
Test project /home/user/client/build-win32
No tests were found!!!
Thank you very much :-)
maybe relevant, there is also this discussion about the different variants of the building-process: https://www.reddit.com/r/NextCloud/comments/bebn14/desktop_client_building/
fyi @er-vin
This is indeed not quite supported anymore. At least almost no one is using that cross-building approach (none of our binaries are done that way) so it's clearly unmaintained.
Most helpful comment
Hi @suleymanbilgin, did you check our client_building repo? https://github.com/nextcloud/client-building
We use NSIS scripts to create the installer. There are instructions in the README.
If I understand you correctly, what you are trying to do is not possible, please see https://github.com/nextcloud/desktop/issues/93.