You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Andy Wang <aw...@ptc.com> on 2015/07/14 17:22:47 UTC

building httpd 2.2 on windows automation question.

I wanted to just send a quick email out to see if anyone is familiar 
enough with the windows compile process to see if there are any thoughts 
on how to improve what I'm doing.

So a few quick points
1) i'm using the unix source to prep the source tree
2) i'm not using any external makefiles/visual studio project files
the intent of my build is to be able to build httpd with no dependencies 
on anything but the httpd project and official vanilla dependencies 
(openssl, zlib).

I'm currently automating MOST of my build using a cygwin bash script to 
prep my source tree.

What I end up doing after this is manual steps based on posts and advice 
I've seen on the httpd mailing list as well as apachelounge forums:
1) first open the dsw in visual studio 8 and convert it to a new sln 
project - apparently something to do with visual studio 10 conversion 
doesn't work
2) open in visual studio 10 and convert to a visual studio 10 sln file.
3) build the project

I'm pretty sure #3 can simply be done with nmake, but I'm not sure, but 
since I'm already in the visual studio project as a result of #2 i'd 
never bothered to try.

My main question is does anyone know how to automate 1 and 2 in a way 
that can be done via a script?  It would greatly increase the efficiency 
of my build if I don't have to monitor it occasionally.

The cmake process for 2.4 is pretty nice :)  one .sh script kicks that 
off thanks to help received from Jeff.

Thanks,
Andy

Re: building httpd 2.2 on windows automation question.

Posted by Andy Wang <aw...@ptc.com>.
Yup, 2.2.31 built fine, and surprisingly it had the ssl deps change too.
I put the nmake into a retry loop :)

And now it's all automated.

Yay.

Thanks for the help,
Andy


On 07/15/2015 10:22 AM, Andy Wang wrote:
>
>
> On 07/14/2015 09:37 PM, Gregg Smith wrote:
>> On 7/14/2015 12:09 PM, Andy Wang wrote:
>>>         link.exe -lib @C:\Users\runtime\AppData\Local\Temp\nm9E02.tmp
>>>         "c:\Program Files (x86)\Microsoft Visual Studio
>>> 10.0\VC\BIN\nmake.exe" -
>>> nologo -f libaprutil.mak      CFG="libaprutil - Win32 Release" RECURSE=0
>>>         if not exist ".\Release/" mkdir ".\Release"
>>>         tempfile.bat
>>> libaprutil.mak(1494) : fatal error U1054: cannot create inline file
>>> 'tempfile.ba
>>> t'
>>> Stop.
>>
>> I've run into this on VC11/Win7x64 more than once. I think I just
>> restarted the build again and it has always gone through. Microsoft says
>> a tempfile.bat already exists with a read-only attribute so it evidently
>> has started creating the file before removing the prior one.
>>
> .. snipped ..
>>
>> Give it another try with 2.2.31 when it arrives, hopefully tomorrow.
>>
>>
>
> Gave it a try with the patched 2.2.31, and you're right, continuing on
> gets around the error.  It does occur about half a dozen times though.
> I'll have to script that in if this works.
>
> The openssl problem bit me though.  And it looks like that change you
> mentioned will do it too.  Haven't patched it yet.
>
> Thanks for pointing this out.
>
> Andy

Re: building httpd 2.2 on windows automation question.

Posted by Andy Wang <aw...@ptc.com>.

On 07/14/2015 09:37 PM, Gregg Smith wrote:
> On 7/14/2015 12:09 PM, Andy Wang wrote:
>>         link.exe -lib @C:\Users\runtime\AppData\Local\Temp\nm9E02.tmp
>>         "c:\Program Files (x86)\Microsoft Visual Studio
>> 10.0\VC\BIN\nmake.exe" -
>> nologo -f libaprutil.mak      CFG="libaprutil - Win32 Release" RECURSE=0
>>         if not exist ".\Release/" mkdir ".\Release"
>>         tempfile.bat
>> libaprutil.mak(1494) : fatal error U1054: cannot create inline file
>> 'tempfile.ba
>> t'
>> Stop.
>
> I've run into this on VC11/Win7x64 more than once. I think I just
> restarted the build again and it has always gone through. Microsoft says
> a tempfile.bat already exists with a read-only attribute so it evidently
> has started creating the file before removing the prior one.
>
.. snipped ..
>
> Give it another try with 2.2.31 when it arrives, hopefully tomorrow.
>
>

Gave it a try with the patched 2.2.31, and you're right, continuing on 
gets around the error.  It does occur about half a dozen times though. 
I'll have to script that in if this works.

The openssl problem bit me though.  And it looks like that change you 
mentioned will do it too.  Haven't patched it yet.

Thanks for pointing this out.

Andy

Re: building httpd 2.2 on windows automation question.

Posted by Gregg Smith <gl...@gknw.net>.
On 7/14/2015 12:09 PM, Andy Wang wrote:
>         link.exe -lib @C:\Users\runtime\AppData\Local\Temp\nm9E02.tmp
>         "c:\Program Files (x86)\Microsoft Visual Studio 
> 10.0\VC\BIN\nmake.exe" -
> nologo -f libaprutil.mak      CFG="libaprutil - Win32 Release" RECURSE=0
>         if not exist ".\Release/" mkdir ".\Release"
>         tempfile.bat
> libaprutil.mak(1494) : fatal error U1054: cannot create inline file 
> 'tempfile.ba
> t'
> Stop.

I've run into this on VC11/Win7x64 more than once. I think I just 
restarted the build again and it has always gone through. Microsoft says 
a tempfile.bat already exists with a read-only attribute so it evidently 
has started creating the file before removing the prior one.

> I remember an e-mail thread with you about building the makefile and 
> dep files and how they weren't actually in the unix source and there 
> were gaps where the windows source wasn't updated - which is why I 
> needed to figure out how to build from the vanilla unix sources.  Did 
> this change? Because I could swear the unix sources didn't have some 
> of this stuff before.

I was evidently wrong, I'm looking at httpd-2.2.29.tar.gz as well as the 
2.2.30 tag and I see them there.  The .dep for mod_ssl is locked to 
OpenSSL <= 0.9.8 but that is an easy fix and done with r1691074. I 
believe the Windows build is CTR.

I ran builds of 2.2.head using the included mak files and Yann's patch, 
all went well on VC9/Vista, VC10/2003r2 & VC11/Win7x64.

Give it another try with 2.2.31 when it arrives, hopefully tomorrow.




Re: building httpd 2.2 on windows automation question.

Posted by Andy Wang <aw...@ptc.com>.

On 07/14/2015 01:47 PM, Gregg Smith wrote:
> You know 2.2 has .mak files in the source. They've been given no love in
> a long time but nothing major has changed for them to need it AFAIK.
> Those should make your automating life simple.
> nmake /f makefile.win [options] installr
>
>

I was never able to get the ootb Makefile.win to work with a modern 
visual studio.  I just tried and this occurs:

         link.exe -lib @C:\Users\runtime\AppData\Local\Temp\nm9E02.tmp
         "c:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\BIN\nmake.exe" -
nologo -f libaprutil.mak      CFG="libaprutil - Win32 Release" RECURSE=0
         if not exist ".\Release/" mkdir ".\Release"
         tempfile.bat
libaprutil.mak(1494) : fatal error U1054: cannot create inline file 
'tempfile.ba
t'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual 
Studio 10.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual 
Studio 10.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.

I remember an e-mail thread with you about building the makefile and dep 
files and how they weren't actually in the unix source and there were 
gaps where the windows source wasn't updated - which is why I needed to 
figure out how to build from the vanilla unix sources.  Did this change? 
Because I could swear the unix sources didn't have some of this stuff 
before.

Andy


Re: building httpd 2.2 on windows automation question.

Posted by Gregg Smith <gl...@gknw.net>.
You know 2.2 has .mak files in the source. They've been given no love in 
a long time but nothing major has changed for them to need it AFAIK. 
Those should make your automating life simple.
nmake /f makefile.win [options] installr


On 7/14/2015 9:03 AM, Andy Wang wrote:
>
>
> On 07/14/2015 10:53 AM, Jeff Trawick wrote:
>>
>>
>> cmake support for 2.2 should be a straightforward adjustment to 2.4
>> cmake ;)  (not anywhere visible on my priority list)
>>
>
> Nor should it be :)
> Not for 2.2 at least.
>
> Honestly, I'd like to get all our customers on 2.2 to 2.4 asap.  It 
> would save me time and energy, but I know it ain't happening anytime 
> soon.
>
> FYI, the start of the thread about EOL'ing 2.2 ALMOST got me enough 
> momentum to make the change.
>
> So right now, the most I can do to make my life easier is to make the 
> 2.2 build process as invisible as possible.


Re: building httpd 2.2 on windows automation question.

Posted by Andy Wang <aw...@ptc.com>.

On 07/14/2015 10:53 AM, Jeff Trawick wrote:
>
>
> cmake support for 2.2 should be a straightforward adjustment to 2.4
> cmake ;)  (not anywhere visible on my priority list)
>

Nor should it be :)
Not for 2.2 at least.

Honestly, I'd like to get all our customers on 2.2 to 2.4 asap.  It 
would save me time and energy, but I know it ain't happening anytime soon.

FYI, the start of the thread about EOL'ing 2.2 ALMOST got me enough 
momentum to make the change.

So right now, the most I can do to make my life easier is to make the 
2.2 build process as invisible as possible.

Re: building httpd 2.2 on windows automation question.

Posted by Jeff Trawick <tr...@gmail.com>.
On Tue, Jul 14, 2015 at 11:41 AM, Andy Wang <aw...@ptc.com> wrote:

>
>
> On 07/14/2015 10:36 AM, Mario Brandt wrote:
>
>> Hi Andy,
>>
>> at least for the 2.4 there is a script on github [1]
>>
>> Maybe you can adopt that for 2.2. I wonder why you still want 2.2.
>> Unless you use some exotic modules that do no build with 2.4,  2.4 is
>> the better option.
>>
>>
>> [1] https://github.com/winlibs/apache
>>
>>
> 2.4 doesn't need to use the dsw/sln projects as it can use cmake, so yeah,
> I already have a script for 2.4.  We are also using 2.4, but have legacy
> products using 2.2 that need to be kept up to date and an update to 2.4
> would be too disruptive.. enterprise .. yadayadayada :)
>

cmake support for 2.2 should be a straightforward adjustment to 2.4 cmake
;)  (not anywhere visible on my priority list)


> Thanks,
> Andy
>



-- 
Born in Roswell... married an alien...
http://emptyhammock.com/

Re: building httpd 2.2 on windows automation question.

Posted by Andy Wang <aw...@ptc.com>.

On 07/14/2015 10:36 AM, Mario Brandt wrote:
> Hi Andy,
>
> at least for the 2.4 there is a script on github [1]
>
> Maybe you can adopt that for 2.2. I wonder why you still want 2.2.
> Unless you use some exotic modules that do no build with 2.4,  2.4 is
> the better option.
>
>
> [1] https://github.com/winlibs/apache
>

2.4 doesn't need to use the dsw/sln projects as it can use cmake, so 
yeah, I already have a script for 2.4.  We are also using 2.4, but have 
legacy products using 2.2 that need to be kept up to date and an update 
to 2.4 would be too disruptive.. enterprise .. yadayadayada :)

Thanks,
Andy

Re: building httpd 2.2 on windows automation question.

Posted by Mario Brandt <jb...@gmail.com>.
Hi Andy,

at least for the 2.4 there is a script on github [1]

Maybe you can adopt that for 2.2. I wonder why you still want 2.2.
Unless you use some exotic modules that do no build with 2.4,  2.4 is
the better option.


[1] https://github.com/winlibs/apache

Re: building httpd 2.2 on windows automation question.

Posted by Andy Wang <aw...@ptc.com>.
Well,i just figured out #2 and #3

devenv /upgrade Apache.sln
devenv /build Release /project InstallBin

So just the dsw to sln conversion/save is manual now.

Andy

On 07/14/2015 10:36 AM, Andy Wang wrote:
> I should add that I've done a little big of digging into MS
> documentation and googling, and I think there is no way around a manual
> dsw-sln conversion.
>
> devenv.com has a /Upgrade option that will probably do #2 for me , but I
> don't think there's a way around the dsw to sln conversion.
>
> So I'm asking on here hoping maybe someone had a bright idea that worked :)
>
> Thanks,
> Andy
>
>
> On 07/14/2015 10:22 AM, Andy Wang wrote:
>> I wanted to just send a quick email out to see if anyone is familiar
>> enough with the windows compile process to see if there are any thoughts
>> on how to improve what I'm doing.
>>
>> So a few quick points
>> 1) i'm using the unix source to prep the source tree
>> 2) i'm not using any external makefiles/visual studio project files
>> the intent of my build is to be able to build httpd with no dependencies
>> on anything but the httpd project and official vanilla dependencies
>> (openssl, zlib).
>>
>> I'm currently automating MOST of my build using a cygwin bash script to
>> prep my source tree.
>>
>> What I end up doing after this is manual steps based on posts and advice
>> I've seen on the httpd mailing list as well as apachelounge forums:
>> 1) first open the dsw in visual studio 8 and convert it to a new sln
>> project - apparently something to do with visual studio 10 conversion
>> doesn't work
>> 2) open in visual studio 10 and convert to a visual studio 10 sln file.
>> 3) build the project
>>
>> I'm pretty sure #3 can simply be done with nmake, but I'm not sure, but
>> since I'm already in the visual studio project as a result of #2 i'd
>> never bothered to try.
>>
>> My main question is does anyone know how to automate 1 and 2 in a way
>> that can be done via a script?  It would greatly increase the efficiency
>> of my build if I don't have to monitor it occasionally.
>>
>> The cmake process for 2.4 is pretty nice :)  one .sh script kicks that
>> off thanks to help received from Jeff.
>>
>> Thanks,
>> Andy

Re: building httpd 2.2 on windows automation question.

Posted by Andy Wang <aw...@ptc.com>.
I should add that I've done a little big of digging into MS 
documentation and googling, and I think there is no way around a manual 
dsw-sln conversion.

devenv.com has a /Upgrade option that will probably do #2 for me , but I 
don't think there's a way around the dsw to sln conversion.

So I'm asking on here hoping maybe someone had a bright idea that worked :)

Thanks,
Andy


On 07/14/2015 10:22 AM, Andy Wang wrote:
> I wanted to just send a quick email out to see if anyone is familiar
> enough with the windows compile process to see if there are any thoughts
> on how to improve what I'm doing.
>
> So a few quick points
> 1) i'm using the unix source to prep the source tree
> 2) i'm not using any external makefiles/visual studio project files
> the intent of my build is to be able to build httpd with no dependencies
> on anything but the httpd project and official vanilla dependencies
> (openssl, zlib).
>
> I'm currently automating MOST of my build using a cygwin bash script to
> prep my source tree.
>
> What I end up doing after this is manual steps based on posts and advice
> I've seen on the httpd mailing list as well as apachelounge forums:
> 1) first open the dsw in visual studio 8 and convert it to a new sln
> project - apparently something to do with visual studio 10 conversion
> doesn't work
> 2) open in visual studio 10 and convert to a visual studio 10 sln file.
> 3) build the project
>
> I'm pretty sure #3 can simply be done with nmake, but I'm not sure, but
> since I'm already in the visual studio project as a result of #2 i'd
> never bothered to try.
>
> My main question is does anyone know how to automate 1 and 2 in a way
> that can be done via a script?  It would greatly increase the efficiency
> of my build if I don't have to monitor it occasionally.
>
> The cmake process for 2.4 is pretty nice :)  one .sh script kicks that
> off thanks to help received from Jeff.
>
> Thanks,
> Andy