You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Dave Cottlehuber (JIRA)" <ji...@apache.org> on 2011/06/01 05:01:48 UTC

[jira] [Created] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Provide a lean Windows makefile target by removing erlang cruft
---------------------------------------------------------------

                 Key: COUCHDB-1181
                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
             Project: CouchDB
          Issue Type: Improvement
          Components: Build System
         Environment: Windows
            Reporter: Dave Cottlehuber
            Priority: Trivial
             Fix For: 1.1.1


We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31

The three major contributors to the 50+MB download & 120+MB windows installed footprint are:

1. including all of OTP when a small portion is required to run CouchDB
2. including all obj, src, include, examples components of required OTP libraries
3. unneeded vc redist runtimes due to different build toolchains.

Manual steps follow; I will work on extending build system later.

1. remove unneeded OTP libraries/apps
- remove all but following from $COUCH_TOP/lib
couch-*
crypto-*
debugger-*
erlang-oauth*
erts-*
etap*
ibrowse-*
inets-*
kernel-*
mochiweb-*
public_key-*
reltool-*
runtime_tools-*
sasl-*
ssl-*
stdlib-*
xmerl-*

from %COUCH% do:

cd lib
mkdir ..\stash ..\trash
for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
for /d %i in (*) do @move "%i" ..\trash\
for /d %i in  (..\stash\*) do @move "%i"
:: if you are brave rd /s/q ..\stash ..\trash

2. from %COUCH% run this:
cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Re: [jira] [Created] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by Benoit Chesneau <bc...@gmail.com>.
On Wed, Jun 1, 2011 at 6:13 AM, Benoit Chesneau <bc...@gmail.com> wrote:
> On Wed, Jun 1, 2011 at 5:01 AM, Dave Cottlehuber (JIRA) <ji...@apache.org> wrote:
>> Provide a lean Windows makefile target by removing erlang cruft
>> ---------------------------------------------------------------
>>
>>                 Key: COUCHDB-1181
>>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>>             Project: CouchDB
>>          Issue Type: Improvement
>>          Components: Build System
>>         Environment: Windows
>>            Reporter: Dave Cottlehuber
>>            Priority: Trivial
>>             Fix For: 1.1.1
>>
>>
>> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
>>
>> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
>>
>> 1. including all of OTP when a small portion is required to run CouchDB
>> 2. including all obj, src, include, examples components of required OTP libraries
>> 3. unneeded vc redist runtimes due to different build toolchains.
>>
>> Manual steps follow; I will work on extending build system later.
>>
>> 1. remove unneeded OTP libraries/apps
>> - remove all but following from $COUCH_TOP/lib
>> couch-*
>> crypto-*
>> debugger-*
>> erlang-oauth*
>> erts-*
>> etap*
>> ibrowse-*
>> inets-*
>> kernel-*
>> mochiweb-*
>> public_key-*
>> reltool-*
>> runtime_tools-*
>> sasl-*
>> ssl-*
>> stdlib-*
>> xmerl-*
>>
>> from %COUCH% do:
>>
>> cd lib
>> mkdir ..\stash ..\trash
>> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
>> for /d %i in (*) do @move "%i" ..\trash\
>> for /d %i in  (..\stash\*) do @move "%i"
>> :: if you are brave rd /s/q ..\stash ..\trash
>>
>> 2. from %COUCH% run this:
>> cd erts* && rd /s/q include lib src
>>
>> --
> That something that could be handled with reltool :
>
> http://www.erlang.org/doc/apps/reltool/index.html
>
> Have a look here:
>
> https://github.com/refuge/refuge/blob/master/rel/reltool.config
>
> Which is a way to build release using rebar.
>
> - benoît
>

Re: [jira] [Created] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by Benoit Chesneau <bc...@gmail.com>.
On Wed, Jun 1, 2011 at 5:01 AM, Dave Cottlehuber (JIRA) <ji...@apache.org> wrote:
> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Priority: Trivial
>             Fix For: 1.1.1
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
>
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
>
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
>
> Manual steps follow; I will work on extending build system later.
>
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
>
> from %COUCH% do:
>
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
>
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src
>
> --
That something that could be handled with reltool :

http://www.erlang.org/doc/apps/reltool/index.html

Have a look here:

https://github.com/refuge/refuge/blob/master/rel/reltool.config

Which is a way to build release using rebar.

- benoît

Re: [jira] [Commented] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by Benoit Chesneau <bc...@gmail.com>.
On Wed, Jun 1, 2011 at 9:43 AM, Dave Cottlehuber (JIRA) <ji...@apache.org> wrote:

>
> 6. [UNTESTED] prune ICU via custom DLL
> ICU is a 18Mb include; a custom data file for icudt4*.dll could reduce this significantly. see:
> http://userguide.icu-project.org/packaging
> http://apps.icu-project.org/datacustom/ICUData44.html
> http://apps.icu-project.org/datacustom
>
>
while other things could be handled by reltool I am very interested by
this one. It seems we are only using collation from couch_icu , maybe
just keeping collators is ok ?

- benoît

[jira] [Commented] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by "Dave Cottlehuber (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13042097#comment-13042097 ] 

Dave Cottlehuber commented on COUCHDB-1181:
-------------------------------------------

last missing bit from 2... arrggghh!
- remove all non-beam folders from OTP libraries.
cd lib && for /r %i in (examples src include lib obj) do @if exist %i echo cleaned %i && rd /s/q %i


> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Priority: Trivial
>              Labels: windows
>             Fix For: 1.1.1
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by "Robert Newson (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Newson updated COUCHDB-1181:
-----------------------------------

    Fix Version/s:     (was: 1.1.1)
                   1.2

Bumped to 1.2.
                
> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Priority: Trivial
>              Labels: windows
>             Fix For: 1.2
>
>         Attachments: slim_couch.cmd
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Closed] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by "Dave Cottlehuber (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dave Cottlehuber closed COUCHDB-1181.
-------------------------------------

    
> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Assignee: Dave Cottlehuber
>            Priority: Trivial
>              Labels: windows
>             Fix For: 1.3
>
>         Attachments: slim_couch.cmd
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by "Dave Cottlehuber (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dave Cottlehuber updated COUCHDB-1181:
--------------------------------------

    Attachment: slim_couch.cmd

Sample batch file to slim down couch windows build.

Currently supports erlang R14B01 only.

- install apache couchdb 
- cd to same location
- run batch file

> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Priority: Trivial
>              Labels: windows
>             Fix For: 1.1.1
>
>         Attachments: slim_couch.cmd
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Assigned] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by "Dave Cottlehuber (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dave Cottlehuber reassigned COUCHDB-1181:
-----------------------------------------

    Assignee: Dave Cottlehuber
    
> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Assignee: Dave Cottlehuber
>            Priority: Trivial
>              Labels: windows
>             Fix For: 1.3
>
>         Attachments: slim_couch.cmd
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by "Jan Lehnardt (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jan Lehnardt updated COUCHDB-1181:
----------------------------------

    Fix Version/s:     (was: 1.2)
                   1.3

Bump to 1.3.x.
                
> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Priority: Trivial
>              Labels: windows
>             Fix For: 1.3
>
>         Attachments: slim_couch.cmd
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by "Dave Cottlehuber (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13042027#comment-13042027 ] 

Dave Cottlehuber commented on COUCHDB-1181:
-------------------------------------------

JIRA cut me off mid spiel!

3. runtimes.
Need to install or bundle multiple runtimes can be reduced by compiling all pre-requisites (ICU, cURL if reqd, Spidermonkey, Erlang, wxWidgets, OpenSSL) from source using the same Visual C++ compiler. ICU is the final remaining component that was missing from this & is resolved by COUCHDB-1152.

4. small things that were tested and "work" even if not particularly legit.
a. remove erl.ini - OK so long as you set working directory to %COUCHDB%/bin or erts-5.8.2 only (i.e. one level lower not two).
b. remove werl.exe and erlsrv.exe if your users don't need access to a good console, and if you manage services directly with windows.
c. remove install.exe

5. [UNTESTED] dedupe bin and erts-*/bin
look at consolidating binaries in /bin and /erts-*/bin somehow. There's a lot of duplication.

6. [UNTESTED] prune ICU via custom DLL
ICU is a 18Mb include; a custom data file for icudt4*.dll could reduce this significantly. see:
http://userguide.icu-project.org/packaging 
http://apps.icu-project.org/datacustom/ICUData44.html
http://apps.icu-project.org/datacustom


> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Priority: Trivial
>              Labels: windows
>             Fix For: 1.1.1
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Resolved] (COUCHDB-1181) Provide a lean Windows makefile target by removing erlang cruft

Posted by "Dave Cottlehuber (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-1181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dave Cottlehuber resolved COUCHDB-1181.
---------------------------------------

    Resolution: Not A Problem

Gonna close this & re-look at options post the big merge. I've had little or no interest in it and downloads on my github repo reflect its lack of use.
                
> Provide a lean Windows makefile target by removing erlang cruft
> ---------------------------------------------------------------
>
>                 Key: COUCHDB-1181
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1181
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Build System
>         Environment: Windows
>            Reporter: Dave Cottlehuber
>            Assignee: Dave Cottlehuber
>            Priority: Trivial
>              Labels: windows
>             Fix For: 1.3
>
>         Attachments: slim_couch.cmd
>
>
> We should be able to get the build to 1/3 of current size. Thanks to @wohali via IRC, and @daleharvey with android build https://github.com/daleharvey/build-android-couch/blob/master/build.final#L31
> The three major contributors to the 50+MB download & 120+MB windows installed footprint are:
> 1. including all of OTP when a small portion is required to run CouchDB
> 2. including all obj, src, include, examples components of required OTP libraries
> 3. unneeded vc redist runtimes due to different build toolchains.
> Manual steps follow; I will work on extending build system later.
> 1. remove unneeded OTP libraries/apps
> - remove all but following from $COUCH_TOP/lib
> couch-*
> crypto-*
> debugger-*
> erlang-oauth*
> erts-*
> etap*
> ibrowse-*
> inets-*
> kernel-*
> mochiweb-*
> public_key-*
> reltool-*
> runtime_tools-*
> sasl-*
> ssl-*
> stdlib-*
> xmerl-*
> from %COUCH% do:
> cd lib
> mkdir ..\stash ..\trash
> for /d %i in (couch-* crypto-* debugger-* erlang-oauth* erts-* etap* ibrowse-* inets-* kernel-* mochiweb-* public_key-* reltool-* runtime_tools-* sasl-* ssl-* stdlib-* xmerl-*) do @echo %i && move "%i" ..\stash\
> for /d %i in (*) do @move "%i" ..\trash\
> for /d %i in  (..\stash\*) do @move "%i"
> :: if you are brave rd /s/q ..\stash ..\trash
> 2. from %COUCH% run this:
> cd erts* && rd /s/q include lib src

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira