Jamie, Once you're clear on the methodology, I will volunteer test it for the project in CentOS 6.3 (building it, then deploying it as an RPM package).
On 1/16/2013 12:39 AM, jgoodyear [via Karaf] wrote: > The concept of providing an RPM/Deb release option is perfectly fine > from my POV, this would require opening issues in Jira to add these > release targets. A quick search turns up a Maven rpm plugin > (http://mojo.codehaus.org/rpm-maven-plugin/) that may be used to keep > our release process streamlined. There may be other methodologies > available that we should consider as well > (http://www.rpm.org/max-rpm-snapshot/rpmbuild.8.html). > > A couple of things we'd also have to check is how we can sign these > artifacts in accordance with ASF procedures, update release process to > reflect any new steps, and test our new RPMs. > > One thing I would like to do before hand however is see how other > Apache projects provide RPMs. Far as I can tell RPMs are being > provided by other groups (i.e., HTTPD and Tomcat can be found as RPMs > but the project pages do not have links for obtaining them, OpenOffice > seems to be one of the few to list these other packages > http://www.openoffice.org/download/other.html). We need to check if > there are any guidance from the ASF regarding their standards for > RPM/Deb/DMG/etc package releases. > > Cheers, > Jamie > > On Tue, Jan 15, 2013 at 10:54 PM, Andreas Pieber <[hidden email] > </user/SendEmail.jtp?type=node&node=4027307&i=0>> wrote: > > > TBH I'm still not against the idea of having deb/rpm for Karaf. So the > > release manager would > > > > a) run "mvn release:prepare ... " > > b) scripts/rpmPackaging.sh > > c) deploy the final artifact to a rpm repo? Or simply provide it for > > download with the rest of the distribution in hope someone will pick > > up the package and distribute it to their favorite repos? > > > > Feel free to correct me, but it sounds reasonable to me. BUT the > > decision need to be made by our release managers: > > > > @Jamie: WDYT? > > > > Kind regards, > > Andreas > > > > p.s.: yes, please create an issue with this script anyway. Would make > > it ways easier to find later on. > > > > On Tue, Jan 15, 2013 at 6:37 PM, [hidden email] > </user/SendEmail.jtp?type=node&node=4027307&i=1> <[hidden email] > </user/SendEmail.jtp?type=node&node=4027307&i=2>> wrote: > >> That's simpler than distributing an RPM to the repos, by a long > ways. With that approach, all we'd need would be the spec (build) > script. I append the example at the end of this email. As you can see, > it's not very much. I'm sure it could be better written (I'm no RPM > "maven" {grin}) but it's a place to start. I used the Tanuki Java > wrapper as part of the dependency, because that software is commonly > available for almost any Linux distro. I also included a separate > body of source for the package (shown below as "wrapper-gear") which > is just the files that Karaf creates from its "wrapper: " commands. > These two inclusions allow the RPM to install Karaf as a Linux system > service using the Tanuki wrapper. > >> > >> Graham-- I'll send you a tarball of "wrapper-gear" off-list, just > so you can see what I did. > >> > >> It's this worthy of opening an issue? > >> > >> --- > >> A. Soroka > >> Software & Systems Engineering :: Online Library Environment > >> the University of Virginia Library > >> > >> On Jan 15, 2013, at 12:26 PM, Graham Leggett wrote: > >> > >>> On 15 Jan 2013, at 7:09 PM, [hidden email] > </user/SendEmail.jtp?type=node&node=4027307&i=3> wrote: > >>> > >>>> I have, for local consumption. I based the build on an ActiveMQ > RPM script. It wasn't too difficult and I can send you the example, if > you like. > >>> > >>> If you can, I would hugely appreciate it. > >>> > >>>> There has been discussion before on this list about maintaining a > semi-"blessed" RPM of Karaf directly from the project. I'd be happy to > work on that, if I could get guidance and help integrating it into the > release process. > >>> > >>> I maintain the spec file that is shipped with Apache httpd, the > idea is that you can download a httpd tarball and run "rpmbuild -tb > <tarball>" and it "just works". All that is required is that a file > called <package>.spec exists in the root of the tarball. (It might > also work if the spec file is elsewhere in the tree, but I've not tried). > >>> > >>> I am busy looking at the jpackage version of karaf, and it seems > to have a significantly different structure to that shipped by Apache. > Still need to get my head around it. > >>> > >>> Regards, > >>> Graham > >>> -- > >>> > >> > >> [ajs6f@esbdev2 SPECS]$ cat apache-karaf.spec > >> > >> # turn off Red Hat's jar repacking macro > >> %define __jar_repack %{nil} > >> > >> # > >> # Spec file for packaging Apach Karaf > >> # > >> Summary: Apache Karaf > >> Name: apache-karaf > >> Version: 2.2.7 > >> Release: 1 > >> License: Apache > >> Group: Networking/Daemons > >> Source0: > http://www.apache.org/dyn/closer.cgi/karaf/2.2.7/apache-karaf-2.2.7.tar.gz > >> Source1: wrapper-gear > >> > >> URL: http://karaf.apache.org/ > >> Vendor: Apache Foundation > >> Packager: A. Soroka <[hidden email] > </user/SendEmail.jtp?type=node&node=4027307&i=4>> > >> BuildArch: noarch > >> Requires: java > >> Requires: tanukiwrapper > >> > >> %description > >> Apache Karaf is a small OSGi runtime which provides a lightweight > container into which various components and applications can be deployed. > >> > >> %define karaf_home /usr/share/karaf > >> %define karaf_data /var/cache/karaf > >> %define karaf_config /etc/karaf > >> %define karaf_deploy /var/local/karaf-deploy > >> %define karaf_startuplib /usr/local/lib/karaf > >> %define karaf_systemlib /usr/local/lib/karaf-system > >> %define karaf_logs /var/log/karaf > >> > >> %prep > >> %setup > >> > >> %build > >> # No build needed for a pure-Java application like Karaf > >> /bin/true > >> > >> %install > >> > >> # Add the "karaf" user and group > >> # the "|| :" ("or NOP") on the end allows for the condition that > this user and group already exist > >> /usr/sbin/groupadd --system karaf 2> /dev/null || : > >> /usr/sbin/useradd --comment "Apache Karaf" -g karaf \ > >> --shell /bin/bash --system --home-dir %{karaf_home} karaf 2> > /dev/null || : > >> > >> # We put the various pieces of Karaf into FHS-appropriate places, > then symln them > >> # together in /usr/share/karaf. > >> > >> # First copy all of the Karaf tree into %{karaf_home} (should be > /usr/share/karaf) > >> mkdir -p $RPM_BUILD_ROOT%{karaf_home} > >> mv --verbose * $RPM_BUILD_ROOT%{karaf_home}/ > >> > >> # Now we make the FHS locations for Karaf stuff > >> mkdir -p $RPM_BUILD_ROOT%{karaf_config} > $RPM_BUILD_ROOT%{karaf_deploy} $RPM_BUILD_ROOT%{karaf_deploy} \ > >> $RPM_BUILD_ROOT%{karaf_startuplib} > $RPM_BUILD_ROOT%{karaf_systemlib} $RPM_BUILD_ROOT%{karaf_data} \ > >> $RPM_BUILD_ROOT%{karaf_logs} $RPM_BUILD_ROOT/etc/init.d > >> > >> # Now we move pieces of the tree out of there into FHS-appropriate > spots and re-symln them > >> > >> pushd $RPM_BUILD_ROOT%{karaf_home} > >> mv etc/* $RPM_BUILD_ROOT%{karaf_config} > >> rmdir etc > >> ln -s %{karaf_config} etc > >> mv deploy/* $RPM_BUILD_ROOT%{karaf_deploy} > >> rmdir deploy > >> ln -s %{karaf_deploy} deploy > >> mv lib/* $RPM_BUILD_ROOT%{karaf_startuplib} > >> rmdir lib > >> ln -s %{karaf_startuplib} lib > >> mv system/* $RPM_BUILD_ROOT%{karaf_systemlib} > >> rmdir system > >> ln -s %{karaf_systemlib} system > >> popd > >> > >> # Karaf logs show up in the data dir by default, so we make a symlink > >> ln -s %{karaf_logs} $RPM_BUILD_ROOT%{karaf_data}/log > >> > >> # Tanuki wrapper configuration > >> cp -v %{SOURCE1}/karaf-wrapper.conf > $RPM_BUILD_ROOT/etc/karaf/karaf-wrapper.conf > >> > >> # init.d script > >> cp -v %{SOURCE1}/karaf $RPM_BUILD_ROOT/etc/init.d/karaf > >> > >> # Java to support Wrapper operation > >> cp -v %{SOURCE1}/*.jar $RPM_BUILD_ROOT%{karaf_startuplib} > >> > >> %post > >> # install Karaf service (but don't activate) > >> /sbin/chkconfig --add karaf > >> > >> %preun > >> # turn off Karaf and remove it from the init.d services before > uninstalling > >> if [ $1 = 0 ]; then > >> /etc/init.d/karaf stop > >> /sbin/chkconfig --del karaf > >> fi > >> > >> %files > >> %doc %{karaf_home}/karaf-manual-2.2.7.pdf > >> %doc %{karaf_home}/karaf-manual-2.2.7.html > >> > >> # Karaf startup script (uses Tanuki wrapper) > >> %attr(755, root, root) /etc/init.d/karaf > >> > >> # Karaf configuration > >> %config(noreplace) %attr(775, root, karaf) %{karaf_config} > >> > >> # Karaf bundle cache, ActiveMQ data, etc. This is the real location > of KARAF_DATA > >> %attr(775, karaf, karaf) %{karaf_data} > >> > >> # Karaf hot deploy directory > >> %attr(775, karaf, karaf) %{karaf_deploy} > >> > >> # Karaf logs > >> %attr(775, karaf, karaf) %{karaf_logs} > >> > >> # Karaf startup libraries > >> %attr(755, root, root) %{karaf_startuplib} > >> > >> # Karaf packaged Maven repo. Most of Karaf code is here, not in the > startup libraries > >> %attr(755, root, root) %{karaf_systemlib} > >> > >> # Full of symlinks to files above, plus demos, a README or two, > etc.: this is treated as KARAF_HOME and KARAF_BASE > >> # we have to leave it writeable by the karaf group in order for > user karaf to create the Karaf lockfile > >> # (which should eventually move to KARAF_DATA: see > https://issues.apache.org/jira/browse/KARAF-579) > >> %attr(775, root, karaf) %{karaf_home} > >> > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the > discussion below: > http://karaf.922171.n3.nabble.com/Karaf-RPMs-what-options-are-out-there-tp4027284p4027307.html > > > To start a new topic under Karaf - User, email > ml-node+s922171n930749...@n3.nabble.com > To unsubscribe from Karaf - User, click here > <http://karaf.922171.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=930749&code=bXZhbmdlZXJ0cnV5QGNvbWNhc3QubmV0fDkzMDc0OXwtNjA0ODc4OTY2>. > NAML > <http://karaf.922171.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > > ----- Mike Van (All links open in new tabs) Committer - Kalumet Atraxia Technologies Mike Van's Open Source Technologies Blog -- View this message in context: http://karaf.922171.n3.nabble.com/Karaf-RPMs-what-options-are-out-there-tp4027284p4027350.html Sent from the Karaf - User mailing list archive at Nabble.com.