Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 487994 - net-im/ejabberd-15.03 version bump
Summary: net-im/ejabberd-15.03 version bump
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: All Linux
: Normal normal with 4 votes (vote)
Assignee: Tim Harder
URL: https://blog.process-one.net/ejabberd...
Whiteboard:
Keywords:
: 537060 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-10-14 10:24 UTC by Dennis Schridde
Modified: 2015-04-12 05:35 UTC (History)
28 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Specify desired commits of dependencies (rebar.config.diff,4.14 KB, patch)
2014-09-29 11:19 UTC, Holger Weiß
Details | Diff
ejabberd-9999-no-docs.patch (ejabberd-9999-no-docs.patch,1.67 KB, patch)
2014-10-03 01:10 UTC, Alexander Turenko
Details | Diff
work-in-progress ebuild (ejabberd-14.12.ebuild,8.26 KB, text/plain)
2014-12-20 22:41 UTC, David Klaftenegger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Schridde 2013-10-14 10:24:29 UTC
ejabebrd 13.10 was just released. It uses a new versioning scheme, but does not bring major changes [1].

From the announcement [2]:
---
[...] It is also the first official stable release of ejabberd Community after ejabberd 2.1.13. [...] ejabberd 2.1.x support is discontinued.
---

Reading the announcement, it seems as if the build process was changed and additional Erlang modules are required.

[1] http://lists.jabber.ru/pipermail/ejabberd/2013-March/007974.html
[2] http://www.ejabberd.im/ejabberd-13.10

Reproducible: Always
Comment 1 Vadim Efimov 2013-10-20 10:07:20 UTC
Also, new ejabberd compiled by "rebar" script, which depends only on erlang itself.
Bad news: for optional features it pull modules from number of git repos in configure/compile time...
I'm now trying to adjust ebuild for it.
Comment 2 Dennis Schridde 2013-11-06 12:53:23 UTC
(In reply to Vadim Efimov from comment #1)
> I'm now trying to adjust ebuild for it.

Have you had any success with this?
Comment 3 Vadim Efimov 2013-12-16 23:17:13 UTC
New version, 13.10
http://blog.process-one.net/ejabberd-community-13-12/

(In reply to Dennis Schridde from comment #2)
> (In reply to Vadim Efimov from comment #1)
> > I'm now trying to adjust ebuild for it.
> 
> Have you had any success with this?

More or less. I'll finish it in holidays, on first week of 2014. I have half writed ebuild, which have all depends, but I didn't figure out yet how to manage this additional repos.
Comment 4 Ronny Boesger 2014-01-23 11:14:07 UTC
Any news on this ?
Comment 5 Vadim Efimov 2014-05-16 19:38:01 UTC
ejabberd Community 14.05 released
http://blog.process-one.net/ejabberd-community-14-05/
Comment 6 klemensbaum 2014-05-19 21:59:37 UTC
Is there any progress on this?

Version 14.05 adds new configuration options to disable insecure SSL protocols and ciphers, so it would be good to have it in the portage tree.
Comment 7 Steve Gillespie 2014-06-04 22:28:31 UTC
I'm working on a -9999 ebuild just now, should be ready in a day or two.  Only a couple of checks left to do.

I'm not sure if we'll ever get the new ejabberd into stable though - given rebar fetches components from a repository, it wouldn't be possible to guarantee two builds are the same.  I've been chatting with the ejabberd guys (mainly getting pointers for the 'new' way of doing things for writing the ebuild), and it's not even as if, for example, the 14.05 rebar will fetch a 14.05 snapshot of the repository for the components (which would seem the most sensible way to provide consistent builds).

If any devs could comment on the guidelines for this, namely if it would be acceptable or not, then I could start work on a 14.05 ebuild to submit.

NB This is my first 'real' ebuild - the rest I've made have been for personal use, but the ejabberd guys have been so helpful and friendly I thought I'd give it a go and help them out with a distro package.
Comment 8 Tim Harder gentoo-dev 2014-06-04 22:37:28 UTC
(In reply to Steve from comment #7)
> I'm not sure if we'll ever get the new ejabberd into stable though - given
> rebar fetches components from a repository, it wouldn't be possible to
> guarantee two builds are the same.  I've been chatting with the ejabberd
> guys (mainly getting pointers for the 'new' way of doing things for writing
> the ebuild), and it's not even as if, for example, the 14.05 rebar will
> fetch a 14.05 snapshot of the repository for the components (which would
> seem the most sensible way to provide consistent builds).
> 
> If any devs could comment on the guidelines for this, namely if it would be
> acceptable or not, then I could start work on a 14.05 ebuild to submit.

I've made ebuilds/tarballs for myself for the past few releases but never put them in the tree for the reason you state above.

Have you explicitly asked upstream to pin 3rd party packages to specific versions for official releases of ejabberd? That would remove most of my hesitation to put it into the official tree since then we could make tarballs for ejabberd including all the deps at versions upstream expects (really ejabberd upstream should be doing this though otherwise it seems 3rd party libs could randomly break for users and they'll get to triage related bugs).
Comment 9 Steve Gillespie 2014-06-05 13:33:12 UTC
(In reply to Tim Harder from comment #8)

> Have you explicitly asked upstream to pin 3rd party packages to specific
> versions for official releases of ejabberd? That would remove most of my
> hesitation to put it into the official tree since then we could make
> tarballs for ejabberd including all the deps at versions upstream expects
> (really ejabberd upstream should be doing this though otherwise it seems 3rd
> party libs could randomly break for users and they'll get to triage related
> bugs).

Not explicitly, but the general feeling is it wouldn't happen.

Another work-around, which I know isn't ideal, is to make our own snapshots of these repositories and host them somewhere.  But that would then also mean patching the rebar script to point to our repositories.

Other than that, if we could get an 'official' -9999 ebuild, even if masked, in portage, then at least we'd have something.
Comment 10 Steve Gillespie 2014-06-05 13:39:12 UTC
I just added an issue for ejabberd on this: https://github.com/processone/ejabberd/issues/233
Comment 11 Steve Gillespie 2014-06-08 09:19:44 UTC
I've finished the -9999 ebuild.  Tested it as much as I can think of in an empty chroot, didn't encounter any problems.  If you do, let me know on github.

https://github.com/sdfg2/sdfg-overlay

The response from the ejabberd guys is that they are aware of the issue, so hopefully it will get resolved.  It sounds like other distro maintainers might have said something too :-)
Comment 12 Marcin Mirosław 2014-07-09 11:45:32 UTC
Hi!
Thanks for your work!
I've installed ejabberd using your ebuild. I noticed that you used USE flag "pgsql", in Gentoo more common is USE flag "postgres".
Next I tried to create tables in postgres, I couldn't find any files under /usr/share/ejabberd/. I have to do unpack phase in ebuild to get sql files from /var/tmp/portage/net-im/ejabberd-9999/work/ejabberd-9999/sql. I suggest to add those scripts in src_install().
Inside ejabberd.yml is wrong path:
captcha_cmd: /usr/lib64/erlang/lib/ejabberd-9999/priv/bin/captcha.sha"
should be:
captcha_cmd: /usr/lib64/erlang/lib/ejabberd-9999/priv/bin/captcha.sh"
Comment 13 Holger Weiß 2014-09-29 11:19:13 UTC
Created attachment 385730 [details, diff]
Specify desired commits of dependencies
Comment 14 Holger Weiß 2014-09-29 11:22:40 UTC
The above patch specifies the commits to use for each dependency in the rebar configuration.  You could apply that to get a reproducible build.

The source tarball of the next ejabberd release will probably have that, too (I'm a contributor to the upstream project).
Comment 15 Alexander Turenko 2014-10-03 01:10:54 UTC
Created attachment 385964 [details, diff]
ejabberd-9999-no-docs.patch

Hi, thanks for ebuild!

The 'dev-tex/hevea' package (dependency for generating ejabberd docs) pull lots of other packages, which in many cases isn’t required on server. I attach patch for ebuild, that remove that dependency (just works for me), but I think 'hevea' dependency possible to make optional via 'doc' USE flag and latter solution would be better.
Comment 16 Alexander Turenko 2014-10-03 01:29:30 UTC
Note for fresh intallation from that ebuild. You need set correct shell for user 'jabber' (/bin/bash in my case), because 'ejabberdctl' script fails in other cases. Now ebuild don’t set it automatically. Related commit: https://github.com/processone/ejabberd/commit/3e232952ea587a4d4c42e37f1a3dbdc3c5750b41

Also 'ejabberdctl' do some manipulation with it’s home directory, so I change it from '/dev/null' (no home dir) to '/var/spool/jabber'. Maybe it isn’t correct, but works for me.
Comment 17 Marc Schiffbauer gentoo-dev 2014-11-24 09:42:42 UTC
Ping? Any ETA for the Bump. I just got some need for that, too;)
Comment 18 Thomas Capricelli 2014-12-10 17:51:30 UTC
On https://www.ejabberd.im/, version 2.1.13 is marked "obsolete" :-(
Comment 19 David Klaftenegger 2014-12-10 18:36:19 UTC
We need a fix for this, and the easiest way to go would be to pin the rebar script upstream to fixed versions, is that right?

So either we convince them to merge the patch proposed on this bug (e.g. someone could create a pull request for it it make it even easier for them), or we find a couple of volunteers who maintain a fork of their github with that one patch added on top at all times, and we base the ebuild off of that version?

Would that work?
Comment 20 Holger Weiß 2014-12-10 19:16:28 UTC
As I said above, the next upstream release tarball will probably specify fixed versions of the dependencies (though the Git repository won't).  I suggested the patch for Gentoo in case you don't want to wait for that, or in case you don't want to build from the tarball for some reason.
Comment 21 David Klaftenegger 2014-12-10 23:29:26 UTC
okay, that wasn't too clear to me. In that case I am directing Marc's question at you and ask "is there an ETA for an upstream tarball that has this patch"?

If we want this version, we should just take the upstream tarball and apply the patch you provided as an epatch then.
Is there another reason anyone is aware of why we cannot just update the existing ebuild with a new version number and this one patch? Otherwise I suggest to try that, I will probably play around with it on one of the coming weekends.
Comment 22 Holger Weiß 2014-12-17 13:49:57 UTC
The 14.12 tarball is now available, and it uses fixed dependency versions:

https://www.process-one.net/en/ejabberd/downloads/

In case you prefer building from Git, the repository now includes a tools/set-dep-versions script which can be used to auto-create such a patch against the rebar.config.script file.

Hope this helps.
Comment 23 David Klaftenegger 2014-12-20 22:41:13 UTC
Created attachment 392110 [details]
work-in-progress ebuild

Hi again!

Note that this ebuild is incomplete:
- mysql support is most certainly broken
- other authentication backends than postgresql are untested
- some comments in the ebuild need to be updated
- there needs to be information about the following changes:
  - user jabber needs a valid home dir and a working shell
  - default directories for spool and logs needs to be configured, as the hardcoded defaults do not exist on gentoo

other than that, this version is now running on my setup.


Thanks also to Holger for telling us about the new tarball and helping me find the correct thing to download, which made updating the ebuild a lot easier.
Comment 24 Tim Harder gentoo-dev 2015-01-19 19:16:39 UTC
*** Bug 537060 has been marked as a duplicate of this bug. ***
Comment 25 Travis Hansen 2015-01-22 06:27:42 UTC
This old ebuild is holding back an update to erlang, which is holding back my ability to properly secure rabbitmq (won't disable insecure ssl versions).

Thanks for your efforts!
Comment 26 Vadim Efimov 2015-02-18 22:36:13 UTC
ejabberd Community 15.02

Here is the detailed changelog:

add Elixir support, allows to write plugins in Elixir
New command to reload configuration without restart
Support old style erlang expressions in YAML configuration
Improved captcha listener parsing when protocol not specified
Fix upgrade of old unbinarized pubsub table from 2.1
Minor updates in the documentation
Other bugfixes

https://blog.process-one.net/ejabberd-community-15-02/
Comment 27 grey_dot 2015-02-21 16:46:50 UTC
HARDER, TIM! TIM THE EBUILD HARDER!! HARDER! Damn, its an awesome name you got. If I had that name I'd consider a porn star career.

On a side note, srsly, 15 months to bump ejabberd? What the hell?
Comment 28 jonas 2015-02-24 09:52:58 UTC
From what I gather by reading the conversatione here, the roadbump that prevented the bump is solved upstreams and this seems to have been forgotten.

Can anyone confirm if there is still upstreams issues that needs to be fixed, or if this is just a case of roll-up-the-sleeves-and-get-it-done?
Comment 29 David Klaftenegger 2015-02-24 15:04:43 UTC
I can confirm that this is just "roll-up-the-sleeves-and-get-it-done".

My work-in-progress ebuild has been in use on my server since christmas with no problems on my end, but it only covers my specific setup.
E.g. I only included support for postgresql, not for mysql as a database backend in the ebuild.

Unfortunately I will not have time to deal with this in the near future, but if this is still around once I find some time I probably will patch it up to be feature-complete. Of course I would not object to someone else doing it instead of me.
Comment 30 Vadim Efimov 2015-02-24 23:16:31 UTC
I look at build process of 15.02 and it still pull from git repos during compile. Good thing - they hardcode exact commits to rebar script. So - it anyway live pakage now. We can package downloaded modules and patch out git pull during compile by palacing ".got" file into "deps" folder and unpack needed modules to it.
Comment 31 Vadim Efimov 2015-03-21 20:39:58 UTC
ejabberd 15.03 released https://blog.process-one.net/ejabberd-15-03/

changelog:

Add support for WebSocket
Flexible session management with multiple backends: Mnesia/SQL/Redis or custom backend for session manager
Security improvement with SCRAM based password encryption in SQL authentication backends.
Package management for ejabberd contributed modules.
Improved Elixir experience
Automatic clustering scripts
Added missing index on database
Important updates on the documentation, with the launch of a new documentation site: docs.ejabberd.im
Several other bugfixes
Comment 32 Thomas Capricelli 2015-03-22 21:35:53 UTC
my ejabberd hasn't been updated since 2013, i start to get nervous about having such an old beast on my server :-(
Comment 33 MeikoDis 2015-03-25 04:16:07 UTC
(In reply to Thomas Capricelli from comment #32)
> my ejabberd hasn't been updated since 2013, i start to get nervous about
> having such an old beast on my server :-(

I also see this point. The maintainer SHOULD add the newer versions to the portage even if it wouldn't become stable.

IMO, solving security issues like broken ciphers and protocols are more important than stability.
Comment 34 Consus 2015-04-03 15:31:56 UTC
Tim, how is the thing going?
Comment 35 Tim Harder gentoo-dev 2015-04-12 05:35:35 UTC
Sorry for the delay, 15.03 now added to the tree. It's still a semi-manual process to generate a proper tarball for Gentoo. It would be really nice if upstream also generated a tarball with all the deps prefetched in it now that they add hashes/tags for version deps... but we can't have everything. ;)

I'm sure there are probably a few bugs in the ebuild since it's been so long, please file new bugs if you run into anything.

Also, note I'm not the primary maintainer anymore (mostly because I rarely have time and/or interest to write many ebuilds these days) but I felt I should kick this out the door before dropping it on someone else.