View Issue Details

IDProjectCategoryView StatusLast Update
0005017unrealircdpublic2018-12-09 09:43
ReporterAmiga600Assigned Tosyzop 
PrioritynormalSeveritytrivialReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version 
Target VersionFixed in Version4.2.0 
Summary0005017: Make it easier for Windows users to build from source themselves
DescriptionIf anyone using unreal on windows, wants to use some 3rd party modules, currently they would need to rebuild the sourcecode in order for them to be supported on their windows version.

If theres a way of making it easier for windows users to build the current unreal release, perhaps with a support package containing all the extras required, then this would make it a lot simpler for windows users to rebuild source along with any 3rd party modules they require.

TagsNo tags attached.
3rd party modules

Activities

syzop

2017-10-08 09:29

administrator   ~0019899

What can I say.. I agree it's quite a hassle on Windows, even for myself.

You need to install some compiler software and then (preferably) get our package with libraries. This is outlined on https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows
If you have anything concrete that could be improved on that page, let me know.

Amiga600

2017-10-10 12:57

reporter   ~0019915

I thought I would try and get Windows-side working so I could then compile any 3rd party modules for folks, in order to help them in that respect.

I am going to try compiling this in a clean VM along with some of Gottem's modules.

Amiga600

2017-10-10 18:04

reporter   ~0019916

Got error about 'openssl/rsa.h' so downloaded libressl (libressl-2.5.5-windows.zip) and copied the 'openssl' folder to c:\dev\unreal\include\openssl, then you get: UnrealIRCd.exe : fatal error LNK1120: 82 unresolved externals

--
I have successfully compiled U3 in the past.

syzop

2017-10-11 10:01

administrator   ~0019917

Could you try to use our recommended way first? So the all in one package linked from https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows in the step "External libraries".
I don't suggest people to go compile all requirements themselves unless they are in need of a headache :D
And, after all, that was what this ticket was about, right? Trying the easy approach.

Oh and I'm happy to help you with the 2.5.5 issue of course, but.. let's try this first?

Also if this wasn't deliberate but you simply missed a step, let us know how to improve the instructions to make it more clear :)

syzop

2017-10-23 09:12

administrator   ~0019929

I added AppVeyor build tests in UnrealIRCd and fixed some broken stuff (404's from the wiki nobody reported). Now both VS2012 and VS2017 work.

Instructions are still on https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows

As an alternative, but I'm not sure if below will help you since it assumes Chocolatey ('cinst' tool) and some Mingw tools like 'patch' and 'sed', you could also try to emulate what our appveyor build tests do:
Basically what it does is clone UnrealIRCd so it is in c:\projects\unrealircd
Then:
SET TARGET=Visual Studio 2012
call extras\build-tests\windows\build.bat
or:
SET TARGET=Visual Studio 2017
call extras\build-tests\windows\build.bat

But, like I said, it's meant for the appveyor tests, not for end-users.
We could add something for them, though. Are you, or someone else, familiar with a nice and easy way how other projects provide windows builds? Things like Chocolatey and nuget are all uncharted territory for me so I don't know if they are serious options (for non-.NET stuff). Would be nice if someone familiar with stuff like that would have a go.

Amiga600

2017-10-25 09:45

reporter   ~0019931

Sadly I am not having much luck, and from what I see, you only appear to have switched OpenSSL for LibreSSL, and since I can compile the depreciated U3 branch fine, perhaps the instructions for U4 are not clear enough, or perhaps its the way I am trying to do it.

syzop

2017-11-01 10:16

administrator   ~0019937

Could you do as requested...
https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows
..and post the command you run + the output ?

This enables me to help you. Right now I cannot.

You can always make it a private comment if you prefer.

syzop

2017-11-01 15:26

administrator   ~0019948

This is Visual Studio 2015?
That is without the rollback patch, right? Since that one is only for VS2012.

This is the command we use in our build test (goes in a batch file), does that help?

rem Build command for Visual Studio 2017

nmake -f makefile.win32 ^
LIBRESSL_INC_DIR="c:\projects\unrealircd-deps\libressl\include" ^
LIBRESSL_LIB_DIR="c:\projects\unrealircd-deps\libressl\x86" ^
SSLLIB="libcrypto-38.lib libssl-39.lib libtls-11.lib" ^
USE_REMOTEINC=1 ^
LIBCURL_INC_DIR="c:\projects\unrealircd-deps\curl-ssl\include" ^
LIBCURL_LIB_DIR="c:\projects\unrealircd-deps\curl-ssl\builds\libcurl-vc-x86-release-dll-ssl-dll-ipv6-sspi-obj-lib" ^
CARES_LIB_DIR="c:\projects\unrealircd-deps\c-ares\msvc110\cares\dll-release" ^
CARES_INC_DIR="c:\projects\unrealircd-deps\c-ares" ^
CARESLIB="cares.lib" ^
TRE_LIB_DIR="c:\projects\unrealircd-deps\tre\win32\release" ^
TRE_INC_DIR="c:\projects\unrealircd-deps\tre" ^
TRELIB="tre.lib" ^
PCRE2_INC_DIR="c:\projects\unrealircd-deps\pcre2\build" ^
PCRE2_LIB_DIR="c:\projects\unrealircd-deps\pcre2\build\release" ^
PCRE2LIB="pcre2-8.lib"

I see that differs from the docs page but we can update/improve it once you report success :)

PS: obviously mass replace c:\projects\unrealircd-deps to c:\dev or similar.

syzop

2017-11-01 15:41

administrator   ~0019949

On an unrelated note, I also mailed Gottem asking if I could be of assistance and suggesting AppVeyor to autobuild his modules.

syzop

2017-11-08 12:09

administrator   ~0019952

This issue was resolved by updating the documentation. (For instance, it only provided the build command for vs2012).

I'm leaving it open as a general "see how we can make windows builds (even) more easy" issue.

syzop

2017-12-17 10:10

administrator   ~0019990

May be worth noting that Gottem's modules now autobuild in AppVeyor for both the previous release, current release, and development version. Nice job.

syzop

2018-12-09 09:43

administrator   ~0020396

As mentioned previously, this was fixed by updating documentation: https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows
Also, starting with UnrealIRCd 4.2.0, we build with Visual Studio 2017. This version is freely available from Microsoft. It also simplified some things (like no rollback patching etc).

Issue History

Date Modified Username Field Change
2017-09-27 23:23 Amiga600 New Issue
2017-10-08 09:29 syzop Note Added: 0019899
2017-10-10 12:57 Amiga600 Note Added: 0019915
2017-10-10 18:04 Amiga600 Note Added: 0019916
2017-10-11 10:01 syzop Note Added: 0019917
2017-10-23 09:12 syzop Note Added: 0019929
2017-10-23 09:12 syzop Assigned To => syzop
2017-10-23 09:12 syzop Status new => feedback
2017-10-25 09:45 Amiga600 Note Added: 0019931
2017-11-01 10:16 syzop Note Added: 0019937
2017-11-01 15:26 syzop Note Added: 0019948
2017-11-01 15:41 syzop Note Added: 0019949
2017-11-01 17:35 syzop Note View State: 0019948: public
2017-11-08 12:09 syzop Note Added: 0019952
2017-11-08 12:09 syzop Status feedback => acknowledged
2017-12-17 10:10 syzop Note Added: 0019990
2018-12-09 09:43 syzop Status acknowledged => resolved
2018-12-09 09:43 syzop Resolution open => fixed
2018-12-09 09:43 syzop Fixed in Version => 4.2.0
2018-12-09 09:43 syzop Note Added: 0020396