On Sun, 20 Aug 2006, Pascal Bleser <pascal.bleser@skynet.be> wrote:-
David Bolt wrote:
<Snip>
Just as examples, the thread about "Packaging style guidelines" showed me that I really should use %{optflags}[2] or %{buildroot}.
Indeed. %{optflags} is actually a *must* as it passes some compiler flags for additional security.
There's another lesson for me today. I'd taken it as a should, not a must. Just as well I'd already gone through (almost) all my spec files and made sure it was included. <Snip>
It's complex. Just saying that it isn't won't make it any less complex. This is not the Matrix. Looking at the RPM database and thinking "you.. are.. now.. simple" won't bend it.
And I don't think spoons would help here either :)
That's the only thing that's annoying me. Apart from that, I've always tried to help and will certainly keep on doing so.
[0] And don't expect to stop learning at any point this side of my grave. I'm presently trying to figure out how to make a base RPM that is architecture specific, at the same time as making a development RPM that isn't.
Stop trying ;)
The BuildArch is global. It is not possible to have a subpackage with a different BuildArch than the main package.
I was guessing as such. No matter what I tried ended up with either a noarch base package, which was no good since it contained an x86_64 binary, or an x86_64 sub-package that just includes a few include.h files. All this started over someone asking in alt.os.linux.suse for a CSS editor and cssed being suggested. I'd grabbed the source and tried building the package, which of course failed. As I usually build things initially on a 64bit 10.0 system and the spec was hard coded to build for an i386, I had to start hacking the spec file just to make it build. It's because of this that I've been practising "bang-head-against-wall" trying to get it working. Now I know it can't be done, I can give up on that part and actually finish converting the spec file to be SUSE compliant.
[1] Which is why there was a "rm -rf %{buildroot}" in the install section. IIRC, I picked that up from a Mandrake/Mandriva spec file I was converting, and just carried it across to other files that I wrote from scratch. My lesson for today is "Don't Do That Again(tm)." It also looks like your guess of 60% of spec files being wrong isn't just applicable to SUSE packages, but may also apply to other RPM based distributions as well.
Yes, totally. For further details, bug Marcus Rueckert (aka darix) about it, he has further details on why it can cause a race condition (he explained it to me once, but I admit I forgot the details ;)).
Looks like I may have to do that, unless he reads this list. Google doesn't seem to show any reasons not to do so and, where it shows either snippets of spec files, or the complete file, it seems that every single one includes it in the %install section.
Not needing to do it because rpmbuild already does it is reason enough to me anyway.
Also saves some more typing.
[2] something I hadn't been doing, nor need to when I use %configure.
Well... actually, %configure only sets CFLAGS/CXXFLAGS to %optflags if you haven't set CFLAGS/CXXFLAGS yourself.
If you do this: %build export CFLAGS="-O2" %configure then %configure will *not* override CFLAGS to %optflags (instead, the build will use -O2).
That was something else I didn't know. I'll have to run through all my spec files but I don't recall any that explicitly set CFLAGS to anything other than $RPM_OPT_FLAGS or, as is the case now, %{optflags}.
So in some cases where you have to pass additional compiler flags, do it like this (e.g. an additional include flag): export CFLAGS="%{optflags} -I/usr/include/mysql" export CXXFLAGS="%{optflags} -I/usr/include/mysql" %configure
I'll have to try and remember that for when it's needed. Regards, David Bolt -- Member of Team Acorn checking nodes at 50 Mnodes/s: http://www.distributed.net/ AMD1800 1Gb WinXP/SUSE 9.3 | AMD2400 256Mb SuSE 9.0 | A3010 4Mb RISCOS 3.11 AMD2400(32) 768Mb SUSE 10.0 | Falcon 14Mb TOS 4.02 | A4000 4Mb RISCOS 3.11 AMD2600(64) 512Mb SUSE 10.0 | | RPC600 129Mb RISCOS 3.6 --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org