[mod_cluster-issues] [JBoss JIRA] (MODCLUSTER-499) tarballs or git submodules for: openssl, httpd and apr in mod_proxy_cluster repo

Michal Karm Babacek (JIRA) issues at jboss.org
Fri May 13 08:20:01 EDT 2016


    [ https://issues.jboss.org/browse/MODCLUSTER-499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13205252#comment-13205252 ] 

Michal Karm Babacek commented on MODCLUSTER-499:
------------------------------------------------

[~rhusar], taking openssl as an example (exactly the same applies to httpd project), one can either download from an ftp/http mirror, e.g.

 * ftp://ftp.openssl.org/source/  (httpd: https://archive.apache.org/dist/httpd/httpd-2.4.20.tar.gz)

or from the official Github site:

 * either cloning:
 ** https://github.com/openssl/openssl   (https://github.com/apache/httpd)
 * or downloading
 ** https://github.com/openssl/openssl/archive/OpenSSL_1_0_2-stable.zip

I find all the aforementioned sound (but for plain ftp :)). Gotta look into the difference between what they "release" as source code tarballs and what's on the GitHub as a source repository. There is definitely some post-processing going on with at least httpd. So far, I've been using sources cloned directly from GitHub.

Far more important decision is to embrace or reject the idea of git submodules of mod_proxy_cluster dependencies being directly in our mod_proxy_cluster repo. We had had a chat with [~gzaronikas] yesterday and we arrived at the conclusion that git submodules would make the most sense; although I have been having second thoughts since...especially due to the fact that if I have this structure:

{noformat}
mod_proxy_cluster
|
|-- CMakeLists.txt
|-- native
|   |-- CMakeLists.txt
|   |-- advertise  (other files omitted for brevity)
|   |   `-- CMakeLists.txt
|   |-- mod_cluster_slotmem
|   |   `-- CMakeLists.txt
|   |-- mod_manager
|   |   `-- CMakeLists.txt
|   `-- mod_proxy_cluster
|       `-- CMakeLists.txt
|-- openssl (no other files actually present from now on)
|   |-- CMakeLists.txt
|   |-- crypto
|   |   `-- CMakeLists.txt
|   |-- ssl
|   |   `-- CMakeLists.txt
|   `-- apps
|       `-- CMakeLists.txt
|-- apr
|   `-- CMakeLists.txt
|-- apr-util
|   `-- CMakeLists.txt
|-- pcre
|   `-- CMakeLists.txt
|-- iconv
|   `-- CMakeLists.txt
`-- httpd
    `-- CMakeLists.txt
    ...
    ...
{noformat}

it kinda feels easier to use CMake commands in the parent CMakeLists.txt to download sources into the structure in comparison to adding git submodules and copy the nested CMakeLists.txt around...



> tarballs or git submodules for: openssl, httpd and apr in mod_proxy_cluster repo
> --------------------------------------------------------------------------------
>
>                 Key: MODCLUSTER-499
>                 URL: https://issues.jboss.org/browse/MODCLUSTER-499
>             Project: mod_cluster
>          Issue Type: Enhancement
>          Components: Native (httpd modules)
>    Affects Versions: 2.0.0.Alpha1
>            Reporter: Michal Karm Babacek
>            Assignee: Michal Karm Babacek
>
> h3. Task at hand
> * we are gradually getting rid of [the old build system|http://anonsvn.jboss.org/repos/jbossnative/trunk/], moving towards CMake
> * we don't want any auxiliary "util" or "helper" scripts hanging around, we want a pure CMake driven project
> * mod_proxy_cluster depends on:
> ** httpd
> *** apr
> *** apr-util
> *** openssl
> *** pcre
> *** iconv
> * we need to build these from sources
> h3. Solutions
> h4. Parent CMakeLists downloads tarballs
> * we keep openssl and httpd CMakeLists files in the directory structure
> * parent CMakeLists downlaods tarballs before children resolution
> h4. We use git submodules
> * we add the dependencies as git submodules
> * parent CMakeLists does not downlaod anything, it merely checkouts into the desired versions of our dependencies
> * we need to keep our:{noformat}mod_proxy_cluster/openssl/CMakeLists{noformat}, {noformat}mod_proxy_cluster/openssl/crypto/CMakeLists{noformat} etc. *and* submodules; perhaps needs something like {{openssl_build}} (our CMakeLists files) and {{openssl}} (git submodule) directories and {{mod_proxy_cluster/CMakeLists}} taking care of copying prior to children resolution
> Gonna prototype and see what works the best.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the mod_cluster-issues mailing list