Am 24.04.2009 23:54, schrieb Kevin Fenzi:
Greetings. I know some of you have run into this situation: If you have a package where there is no *.spec file present and you try to run any of the fedora cvs Makefile.common targets, nothing happens and the command just hangs. Turns out it's doing a grep of the spec file to figure out if the package is noarch or not. When there is no spec file the grep hangs. Here's a very hacky patch that should at least error out in this case. Makefile hackers welcome to provide a better one. kevin -- Index: Makefile.common =================================================================== RCS file: /cvs/extras/common/Makefile.common,v retrieving revision 1.127 diff -u -r1.127 Makefile.common --- Makefile.common 15 Apr 2009 04:57:41 -0000 1.127 +++ Makefile.common 24 Apr 2009 21:15:03 -0000 @@ -35,6 +35,9 @@ BUILD_FLAGS ?= $(KOJI_FLAGS) +ifndef $(SPECFILE) +SPECFILE = "NO_SPEC_FILE_FOUND" +endif LOCALARCH := $(if $(shell grep -i '^BuildArch:.*noarch' $(SPECFILE)), noarch, $(shell uname -m)) ## a base directory where we'll put as much temporary working stuff as we can
Looks like this is the week of Makefile.common patches, I have another one: >cvs diff -u Makefile.common Index: Makefile.common =================================================================== RCS file: /cvs/extras/devel/common/Makefile.common,v retrieving revision 1.127 diff -u -r1.127 Makefile.common --- Makefile.common 15 Apr 2009 04:57:41 -0000 1.127 +++ Makefile.common 27 Apr 2009 14:14:00 -0000 @@ -26,6 +26,10 @@ #BRANCH:=$(shell cvs rlog rpms/$(NAME)/F-11/$(SPECFILE) >/dev/null 2>&1 && echo "F-12" || echo "devel") #endif BRANCHINFO = $(shell grep ^$(BRANCH): $(COMMON_DIR)/branches | cut -d: --output-delimiter=" " -f2-) +ifeq (,$(BRANCHINFO)) +BRANCH:=$(shell pwd | awk -F '/' '{ print $$(NF-1) }' ) +BRANCHINFO = $(shell grep ^$(BRANCH): $(COMMON_DIR)/branches | cut -d: --output-delimiter=" " -f2-) +endif TARGET := $(word 1, $(BRANCHINFO)) DIST = $(word 2, $(BRANCHINFO)) DISTVAR = $(word 3, $(BRANCHINFO)) This should fix builds from a single-distribution CVS tree which you can check out p.e. with 'cvs co F-11'. This broke one year ago with Makefile.common cvs release 1.95 as those changes didn't consider the different directory layout for the single-distribution CVS tree (p.e. it is .../vim/F-11 for the complete checkout but .../F-11/vim when you check out just one single distribution) Karsten -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list