rpmbuild ignoring --macros?

Greg_Swift at aotx.uscourts.gov Greg_Swift at aotx.uscourts.gov
Tue Jan 5 14:14:43 UTC 2010


> (sorry for the barrage of questions - and thanks for the answers)
>
> I've got a macros file that I'd like rpmbuild to use. It seems that
> rpmbuild 4.4.2.3 is ignoring the --macros switch. If I
>
> $ rpmbuild -qa --macros=mymacros myapp.spec
>
> it attempts to build below /usr/src/redhat/BUILD
>
> If I
>
> $ ln -s $(pwd)/mymacros ~/.rpmmacros
> $ rpmbuild -qa myapp.spec
>
> I get the behaviour I'm expecting.
>
> I'd prefer not to have a ~/.rpmmacros and assumed that naming a
> macros file using the --macros switch would be alternative. What am I
missing?
>
> Thanks again.

I just skimmed through the man page for rpmbuild and --macros is not an
option, atleast not on RHEL5 or Fedora8. I dont have access to one of my
newer boxes to check otherwise at the moment.  I also did not see a way of
accessing a file other than the standard ones.

Macro Configuration Files from man page
       /usr/lib/rpm/macros
       /usr/lib/rpm/redhat/macros
       /etc/rpm/macros
       ~/.rpmmacros

If you have a specific set of macros per spec/project you could create a
Makefile.  Here is a small example of one of mine.

PACKAGE := $(shell basename *.spec .spec)
RPMBUILD = rpmbuild --define "_topdir %(pwd)/rpm-build" \
        --define "_builddir %{_topdir}" \
        --define "_rpmdir %(pwd)/rpms" \
        --define "_srcrpmdir %{_rpmdir}" \
        --define "_sourcedir  %{_topdir}"

all: rpms

clean:
        -rm -rf dist/ build/
        -rm -rf *~
        -rm -rf rpm-build/ rpms/

build: clean
        python setup.py build -f

sdist:
        python setup.py sdist

prep_rpmbuild: build sdist
        mkdir -p rpm-build
        mkdir -p rpms
        cp dist/*.gz rpm-build/

rpms: prep_rpmbuild
        ${RPMBUILD} -ba ${PACKAGE}.spec

srpm: prep_rpmbuild
        ${RPMBUILD} -bs ${PACKAGE}.spec

All of those indents should be tabs.  Then you would just go into that
directory and type `make` and you would get your rpms.  This is for a
distutils/setuptools oriented python package, but the concept would hold.

just a thought.

-greg



More information about the Rpm-list mailing list