On Tuesday, 27 July 2004, at 03:26:34 (+0300),
Oded Arbel wrote:

> I really appriciate the effort of supplying valid spec files in the
> CVS - its make life so much easier for distributions and other
> packagers. I wish that more projects will follow.

I'm not so sure I agree.  Many software developers do not know how to
make correct spec files.  I can't even begin to count the number of
projects I've run into where the spec file was out-of-date, incorrect,
or just plain nasty.  I try very hard to make good, clean, portable
spec files, and I've been doing it since around 2000.

> I'm trying to build RPMs from CVS for my system (Mandrake
> 10). actually - I'm writing a script that will allow to build E17
> CVS and install it as RPMs directly. the resulting RPMs will of
> course be useless for anyone not using Mandrake 10, but the source
> RPMs generated will be useful to build the specific CVS snapshot on
> other systems - much more so then checking out of CVS would ever be.

Perhaps, perhaps not.  As I said, building RPM's and SRPM's from CVS
is very easy.  In fact, for the entirety of EFL (save perhaps
emotion), I can build RPM's by running the following in each
directory:

./autogen.sh && make dist && mzbuild

The "mzbuild" command is part of Mezzanine (http://www.kainx.org/mezzanine/)
and makes lots of things about building and maintaining packages a
*lot* simpler.  If you don't have mezz and don't want to use it, this
will do something quite similar to "mzbuild" in the above command:

rpmbuild -ba --define "_sourcedir $PWD" --define "_specdir $PWD" \
    --define "_topdir $PWD" --define "%_srcrpmdir $PWD" \
    --define "_rpmdir $PWD"

(These can all go on one line; I split the line for readability.)

> Now - I'm having some problems with doing so, which makes me think
> your last decleration may not be so true (especially the "easy"
> part). specificly I'm currently stuck with these problems, and I do
> hope someone can comment on how I can resolve this issues:
>
> - edje: autogen.sh does not work. the autogen.sh script looks nothing like the 
> scripts for the other libraries, and bash complains about all the curly 
> braces in the checks in the front. I can't tell what the problem as I'm not 
> familiar with this syntax - I don't even think its valid bash. The m4 
> directory is also missing.

It works quite well for me as of 3 days ago, so I'd be surprised if
it's not valid bash.  More likely a problem with your distro.
Mandrake is notorious for instability.

> - imlib2 does not build - it fails finding any files for the imlib-loader_gif 
> sub-package.

Probably because you don't have libungif-devel installed.

> - imlib2_loaders does not have a spec file - it has a spec.in file. is the 
> spec file supposed to be generated by the configure scripts ? that's kind of 
> useless as configure is supposed to be run from the spec file.

This must've been an oversight on my part.  The spec file I use can be
found via CVS at :pserver:[EMAIL PROTECTED]:/var/cvs in
caos/users/mej/imlib2_loaders/F/imlib2_loaders.spec

> - I failed to build etox, but I don't think its RPM specific. I'll investigate 
> more and write about it later.

Building RPM's from CVS still means that you need all the prereq's.
Although if you use Mezzanine and set your hint-installer variable to
"yum -ty install" it will auto-install all buildreq's for you.

> - In all the libraries, autogen.sh by deafult runs configure (while the 
> comment above it implies that it is commented out, which is not the case). as 
> the order of building RPMs (AFAIU) is - autogen, rpmbuild (which runs 
> configure, make and make install), that step is redundant. I currently solve 
> this by automaticly "fixing" the autogen.sh script in my build process.

autogen.sh is needed to generate the configure script and other such
tools.  If the configure script is already there, as it would be in a
dist tarball, you don't need to run autogen.sh.  Once you've run it in
your directory, and assuming nobody makes any changes to Makefile.am's
or other autoSPLAT files, you can simply run "make dist" followed by
rpmbuild/mzbuild.

> - All the spec files are missing BuildRequires tags that are needed
> to force a build order - other wise users can try to build packages
> out of order and fail. the BuildRequires tag is supposed to help
> users by letting them know what they need before spending a lot of
> times (sometimes a couple of hours) on a build that would fail.

The problem with BuildRequires is that they aren't distro-portable.
And because missing BuildRequires are fatal (rpmbuild will die without
them, even if they're not strictly needed), I use #BuildSuggests
instead, which mezzanine understands and uses but is not fatal to
rpmbuild.

I plan to add file-based dependencies which are more accurate and
don't require distinction between, e.g., libungif-devel
vs. libgif-devel vs. libungif vs. etc.  I just haven't yet.

> I haven't tried to compile all the libraries as I got stuck on
> imlib2 and edje which most other libs depend on.

Your problem seems to be related more to Mandrake 10 than to E. :)

Michael

-- 
Michael Jennings (a.k.a. KainX)  http://www.kainx.org/  <[EMAIL PROTECTED]>
n + 1, Inc., http://www.nplus1.net/       Author, Eterm (www.eterm.org)
-----------------------------------------------------------------------
 "I have gotten into the habit of recording important meetings.  One
  never knows when an inconvenient truth will fall between the cracks
  and vanish."               -- Ambassador Londo Mollari, Babylon Five


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
enlightenment-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to