All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johan Oudinet <johan.oudinet@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3] ejabberd: new package
Date: Wed, 6 Aug 2014 12:30:57 +0200	[thread overview]
Message-ID: <CAJtjsKaom+gGDgZuivy2Qgss2wSaALDHXFLtKtf0eL-h2syrsQ@mail.gmail.com> (raw)
In-Reply-To: <20140720113334.717cb707@free-electrons.com>

Hi Thomas, Yann, and all,

Thanks for your comments. I took care of all of them but two:
check-erlang-lib script and <pkg>_PERMISSIONS.
See below for my comments/questions with regards to these two issues.

On Sun, Jul 20, 2014 at 11:33 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> On Fri, 18 Jul 2014 14:33:57 +0200, Johan Oudinet wrote:
>
>> +
>> +# Do AC_ERLANG_CHECK_LIB job without erlang.
>> +define EJABBERD_SET_LIBS_DIR
>> +     for lib in $(EJABBERD_ERLANG_LIBS); do                                  \
>> +       export                                                                \
>> +         erlang_lib_dir_$$lib="`package/ejabberd/check-erlang-lib $$lib`";   \
>> +     done
>> +endef
>
> Do we really need this script? What does it do exactly? Since we
> control the erlang installation in Buildroot, can't we simply hardcode
> the values here?

Unfortunately, we can't hardcode these values because ejabberd's
makefile fetches its dependencies from master branches of git
repositories. So, we don't know which versions have be fetched.
In my opinion, this is a bad idea as it forces developers of such
libraries to make sure their master branch is compatible with every
ejabberd releases that depends on it.
This is a known issue : https://github.com/processone/ejabberd/issues/233
In the meantime, I think we need this script to know which version has
been downloaded by ejabberd's Makefile.

>
>> +
>> +# Set cross-compilation options to the configure called by rebar.
>> +define EJABBERD_FIX_REBAR_CONFIG_SCRIPT
>> +     sed -e "s,./configure,./configure \\    \
>> +     --target=$(GNU_TARGET_NAME) \\          \
>> +     --host=$(GNU_TARGET_NAME) \\            \
>> +     --build=$(GNU_HOST_NAME),"              \
>> +       -i "$(@D)"/rebar.config.script
>> +endef
>
> I don't really follow what's happening here. Since we're using the
> autotools-package infrastructure, aren't we already calling
> the ./configure script with the appropriate options?

The problem comes from ejabberd's makefile. It configures its
dependencies while we run make, instead of doing it when we run
./configure.
So, what happens is the following:
- ./configure -> configure ejabberd (this one is called with the
appropriate options thanks to buildroot)
- make -> download ejabberd's dependencies in sub-folders, run
./configure inside each of these sub-folders, then make.
Thus, the configure script of each ejabberd's dependency is not called
with the appropriate options. Again, the problem is due to ejabberd
build system that mixes build and configure steps.

>> +define EJABBERD_PERMISSIONS
>> +/etc/ejabberd d 750 0 128 - - - - -
>> +/etc/ejabberd/ejabberd.yml-new f 640 0 128 - - - - -
>> +/etc/ejabberd/ejabberd.yml f 640 0 128 - - - - -
>> +/etc/ejabberd/ejabberdctl.cfg-new f 640 0 128 - - - - -
>> +/etc/ejabberd/ejabberdctl.cfg f 640 0 128 - - - - -
>> +/etc/ejabberd/inetrc f 644 0 128 - - - - -
>> +/usr/sbin/ejabberdctl f 550 0 128 - - - - -
>> +/usr/lib/ejabberd/priv/bin/captcha.sh f 750 119 0 - - - - -
>> +/usr/var/lib/ejabberd d 750 119 0 - - - - -
>> +/usr/var/lock/ejabberdctl d 750 119 0 - - - - -
>> +/usr/var/log/ejabberd d 750 119 0 - - - - -
>> +endef
>
> <pkg>_PERMISSIONS should only be used for files that need special
> permissions, the other files should be left with their default
> permissions, owned by root (which is done automatically by Buildroot).

ejabberd is run as the ejabberd user. Thus this user needs to own (or
be in the group of) several files and directories.

>
> Also, /usr/var/lib, /usr/val/lock and /usr/var/log look incorrect.

I've copied the permissions set by the install rule in ejabberd's
makefile. Honestly, I don't know why ejabberd needs such permissions,
but if I let root to be the owner of these files, it does not work.
Do you know a better way of setting ownership? I don't like to have to
set a specific UID and GID for the ejabberd user simply because the
syntax of <pkg>_PERMISSIONS requires an ID instead of a name.

Thanks.

Best,
-- 
Johan

  reply	other threads:[~2014-08-06 10:30 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-18 12:33 [Buildroot] [PATCH v3] ejabberd: new package Johan Oudinet
2014-07-18 21:35 ` Yann E. MORIN
2014-07-18 23:58   ` Johan Oudinet
2014-07-19  9:17     ` Yann E. MORIN
2014-07-20  9:33 ` Thomas Petazzoni
2014-08-06 10:30   ` Johan Oudinet [this message]
2014-08-06 19:40     ` Yann E. MORIN
2014-08-06 20:23 ` Yann E. MORIN
2014-08-11  9:36   ` Johan Oudinet
2014-08-11 10:07     ` Johan Oudinet
2014-08-11 10:13       ` Yann E. MORIN
2014-08-11 10:33     ` Yann E. MORIN
2014-08-11 10:50       ` Yann E. MORIN
2014-08-13 18:48         ` Frank Hunleth
2014-08-13 19:51           ` Yann E. MORIN
2014-08-13 20:44           ` Yann E. MORIN
2014-08-13 21:23             ` Frank Hunleth
2014-08-13 21:49               ` Yann E. MORIN
2014-08-13 22:18                 ` Yann E. MORIN
2014-08-14 12:40                   ` Frank Hunleth
2014-08-14 22:36                     ` Yann E. MORIN
2014-08-11 13:13       ` Johan Oudinet
2014-08-12 15:13         ` Yann E. MORIN
2014-10-11 16:21 ` Yann E. MORIN
2014-10-16 12:38   ` Johan Oudinet
2014-10-17 20:18     ` Yann E. MORIN
2014-10-17 23:06     ` Arnout Vandecappelle
2014-10-18 10:00       ` Yann E. MORIN
2014-10-18 10:31         ` Johan Oudinet
2014-10-27 14:42           ` Johan Oudinet
2014-10-27 14:47             ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAJtjsKaom+gGDgZuivy2Qgss2wSaALDHXFLtKtf0eL-h2syrsQ@mail.gmail.com \
    --to=johan.oudinet@gmail.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.