-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
I am working on packaging logstash for fedora
but the build procedure described here
https://github.com/logstash/logstash/wiki/ Building-and-running-logstash-from-source
seems to be incompatible with Fedora packaging. Is there some other ruby package that I can use as a model for proper fedora packaging?
I am not at all familiar with building/packaging java or ruby programs. I normally work on C++ w/ autoconf.
https://nodeload.github.com/logstash/logstash/tar.gz/v1.1.9
The internal Makefile there runs curl/wget to download more source code, which seems to terribly violate any reasonable packaging system. At a minimum, we need to collect all the source code into SOURCEx lines in a .spec file.
For Fedora, do we need to separately package elastic search and graphtastic, or can we bundle them into this package?
Oh my, that Makefile downloads a prebuilt graphtastic .jar file, so we will also need to fetch and build that package from source.
Hi Carl,
Dne 3.4.2013 22:34, Carl Byington napsal(a):
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
I am working on packaging logstash for fedora
but the build procedure described here
https://github.com/logstash/logstash/wiki/ Building-and-running-logstash-from-source
Is the wiki up-to-date? They refer to "make gem" but I can't see the target in Makefile.
seems to be incompatible with Fedora packaging. Is there some other ruby package that I can use as a model for proper fedora packaging?
I doubt there is any reasonable precedent.
I am not at all familiar with building/packaging java or ruby programs. I normally work on C++ w/ autoconf.
https://nodeload.github.com/logstash/logstash/tar.gz/v1.1.9
The internal Makefile there runs curl/wget to download more source code, which seems to terribly violate any reasonable packaging system. At a minimum, we need to collect all the source code into SOURCEx lines in a .spec file.
For Fedora, do we need to separately package elastic search and graphtastic, or can we bundle them into this package?
No, we definitely cannot bundle anything.
Oh my, that Makefile downloads a prebuilt graphtastic .jar file, so we will also need to fetch and build that package from source.
The best would be, if you could prepare basic .spec file, which might even download stuff from internet and we could remove, step-by-step, the bundled stuff. We need to start from somewhere anyway ;) At the end, it would be best if we can end up with gem for JRuby, which depends on stuff such as elasticsearch.
BTW, we used to think that for JRuby, we introduce macros such as [1], but they seems clumsy, so we did not implemented them yet, but we should work them out definitely.
Vít
[1] https://fedoraproject.org/wiki/User:Bkabrda/Packaging_Ruby_JRuby#Macros
I am not at all familiar with building/packaging java or ruby programs. I normally work on C++ w/ autoconf.
https://nodeload.github.com/logstash/logstash/tar.gz/v1.1.9
The internal Makefile there runs curl/wget to download more source code, which seems to terribly violate any reasonable packaging system. At a minimum, we need to collect all the source code into SOURCEx lines in a .spec file.
For Fedora, do we need to separately package elastic search and graphtastic, or can we bundle them into this package?
No, we definitely cannot bundle anything.
Oh my, that Makefile downloads a prebuilt graphtastic .jar file, so we will also need to fetch and build that package from source.
The best would be, if you could prepare basic .spec file, which might even download stuff from internet and we could remove, step-by-step, the bundled stuff. We need to start from somewhere anyway ;) At the end, it would be best if we can end up with gem for JRuby, which depends on stuff such as elasticsearch.
Ya would recommend adding a few lines like the following to the spec file:
find -name '*.jar' -exec rm -f '{}' ; find -name '*.gem' -exec rm -f '{}' ; # etc...
To automatically remove bundled libs before building.
Of course the build process should skip the remote retrieval of the remote depedencies if possible (or be patched to remove it if not).
-Mo
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thu, 2013-04-04 at 12:28 +0200, Vit Ondruch wrote:
The best would be, if you could prepare basic .spec file, which might even download stuff from internet and we could remove, step-by-step, the bundled stuff.
hg clone http://hg.five-ten-sg.com/logstash cd logstash make
That is my current setup for building on centos6, but I have not tried to run the version that this builds. I might get time to try that tomorrow.
elasticsearch.spec GraphTastic-client.spec jruby.spec logstash.spec
The jruby.spec is a minimal version just to get jruby on centos6. It is already in fedora (but won't build on centos6), and if dist!=.el6 the system version will be used.
I re-wrote the logstash makefile to compensate for unbundling elastic search, graphtastic, and jruby. But it still downloads and bundles a bunch of binary gems.
Dne 11.4.2013 06:38, Carl Byington napsal(a):
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thu, 2013-04-04 at 12:28 +0200, Vit Ondruch wrote:
The best would be, if you could prepare basic .spec file, which might even download stuff from internet and we could remove, step-by-step, the bundled stuff.
hg clone http://hg.five-ten-sg.com/logstash cd logstash
Would be nice if you could replace these two steps with some source tarball.
make
That is my current setup for building on centos6, but I have not tried to run the version that this builds. I might get time to try that tomorrow.
elasticsearch.spec GraphTastic-client.spec jruby.spec logstash.spec
The jruby.spec is a minimal version just to get jruby on centos6. It is already in fedora (but won't build on centos6), and if dist!=.el6 the system version will be used.
There will be missing some dependencies in EPEL for JRuby. You would need to rebuild them as well. But we should concentrate on Fedora first. You should be able to use mock to build your packages for Fedora.
Vít
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Thu, 2013-04-11 at 07:09 +0200, Vit Ondruch wrote:
Would be nice if you could replace these two steps with some source tarball.
http://www.five-ten-sg.com/util/logstash.fedora.tar.gz
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Updated version at: http://www.five-ten-sg.com/util/logstash.fedora.tar.gz
My build fails to run, so I am still working on that.
graphtastic-client, jruby, elasticsearch are unbundled into their own jars. class-path in the logstash jar file points to them, and running with -verbose shows many classes loading. Anyway, something is still wrong there.
As far as the build, there are still issues:
1) the elasticsearch build (using maven) downloads prebuilt .jar files and bundles them.
2) the logstash build still downloads prebuilt gems and bundles them.
Carl,
Could you please provide us with separate SRPMs, it would ease their review. Thank you.
Vít
Dne 11.4.2013 23:16, Carl Byington napsal(a):
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Updated version at: http://www.five-ten-sg.com/util/logstash.fedora.tar.gz
My build fails to run, so I am still working on that.
graphtastic-client, jruby, elasticsearch are unbundled into their own jars. class-path in the logstash jar file points to them, and running with -verbose shows many classes loading. Anyway, something is still wrong there.
As far as the build, there are still issues:
- the elasticsearch build (using maven) downloads prebuilt .jar files
and bundles them.
- the logstash build still downloads prebuilt gems and bundles them.
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (GNU/Linux)
iEYEARECAAYFAlFnJ/wACgkQL6j7milTFsELxACeIjzml3EeJv1MfJdkWl2nE34g XEEAn3mukJELChXCgf5Ceo6OxmdgwN3i =U8KM -----END PGP SIGNATURE-----
ruby-sig mailing list ruby-sig@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/ruby-sig
ruby-sig@lists.fedoraproject.org