From 2e091b008b3e097045b3b48bb39e5642f75965df Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 9 Jul 2010 17:12:53 -0700 Subject: Put ports into the rpm. --- fedora/Makefile | 40 ++++++++++++++++++++++++++++++++++++++-- fedora/glibc.spec.in | 10 ++++++---- 2 files changed, 44 insertions(+), 6 deletions(-) (limited to 'fedora') diff --git a/fedora/Makefile b/fedora/Makefile index 8833c43280..0de99b4c39 100644 --- a/fedora/Makefile +++ b/fedora/Makefile @@ -17,6 +17,15 @@ my-branch := $(call branchname,$(call git,symbolic-ref,HEAD)) upstream-remote := $(call gitconf,branch.$(my-branch).remote) upstream-branch := $(call branchname,$(call gitconf,branch.$(my-branch).follow)) +ports-repo := $(call gitconf,glibc.ports-repo) + +ifndef ports-repo +$(error \ +You need a glibc-ports repository! \ +Get one and do: "git config --add glibc.ports-repo ~/DIR/.git" \ +) +endif + dep-my-branch := $(firstword $(wildcard ../.git/refs/heads/$(my-branch) \ ../.git/packed-refs)) dep-upstream-branch := $(firstword $(wildcard \ @@ -57,15 +66,25 @@ tar-name = $(merge-base-name) upstream-pristine = \ $(GIT) $(describe-merge) --exact-match > /dev/null 2>&1 $(merge-base-id) +GIT-ports = $(GIT) --git-dir=$(ports-repo) +git-ports = $(shell $(GIT-ports) $1 $2) + +ports-pristine = $(GIT-ports) $(describe-merge) --exact-match > /dev/null 2>&1 \ + $(upstream-branch) +ports-base-name := $(call git-ports,$(describe-merge) $(upstream-branch)) + +ports-tar-name := $(patsubst glibc-%,glibc-ports-%,$(ports-base-name)) + glibc.spec: glibc.spec.in $(dep-my-branch) @rm -f $@.new echo '%define glibcsrcdir $(tar-name)' > $@.new - if $(upstream-pristine); then \ + if $(upstream-pristine) && $(ports-pristine); then \ echo '%define glibc_release_url $(releases-url)' >> $@.new; \ else : ; fi; \ $(GIT) show $(my-branch):version.h \ | sed -n '/VERSION/s/^.*"\([^"]*\)"$$/%define glibcversion \1/p' \ >> $@.new + echo '%define glibcportsdir $(ports-tar-name)' >> $@.new echo '### $< follows:' >> $@.new cat $< >> $@.new mv -f $@.new $@ @@ -107,6 +126,7 @@ glibc-$(branch-name).patch: glibc.spec Makefile $(dep-upstream-branch) @mv -f patch.tmp $@ git-describe = $(GIT) describe --long --always +ports-git-describe = $(GIT-ports) describe --long --always define git-tar echo "Creating $@ from `$(git-describe) $1`..."; \ @@ -115,6 +135,13 @@ echo "Creating $@ from `$(git-describe) $1`..."; \ mv -f $@.new $@ endef +define ports-git-tar +echo "Creating $@ from `$(ports-git-describe) $1`..."; \ +(cd ..; $(GIT-ports) archive --format=tar --prefix='$(ports-tar-name)/' $1 $2) \ +| bzip2 -9 > $@.new && \ +mv -f $@.new $@ +endef + $(tar-name)-$(branch-name).tar.bz2: glibc.spec Makefile @$(call git-tar,$(my-branch),$(outside-patch)) @@ -126,9 +153,18 @@ $(tar-name).tar.bz2: $(dep-upstream-branch) Makefile $(call git-tar,$(merge-base-id)); \ fi +$(ports-tar-name).tar.bz2: Makefile + @if $(ports-pristine); then \ + echo 'Fetching from $(releases-url)...'; \ + curl -C - -O $(releases-url)/$@; \ + else \ + $(call ports-git-tar,$(upstream-branch)); \ + fi + archives = $(tar-name).tar.bz2 \ $(tar-name)-$(branch-name).tar.bz2 \ - glibc-$(branch-name).patch + glibc-$(branch-name).patch \ + $(ports-tar-name).tar.bz2 finish_archive: $(archives) diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in index fdba96fb9c..f0950d992a 100644 --- a/fedora/glibc.spec.in +++ b/fedora/glibc.spec.in @@ -30,7 +30,8 @@ License: LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ Group: System Environment/Libraries URL: http://www.gnu.org/software/glibc/ Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.bz2 -Source1: %{glibcsrcdir}-fedora.tar.bz2 +Source1: %{?glibc_release_url}%{glibcportsdir}.tar.bz2 +Source2: %{glibcsrcdir}-fedora.tar.bz2 Patch0: %{name}-fedora.patch Patch1: %{name}-ia64-lib64.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -236,7 +237,8 @@ package or when debugging this package. %endif %prep -%setup -q -n %{glibcsrcdir} -b1 +rm -rf %{glibcportsdir} +%setup -q -n %{glibcsrcdir} -b1 -b2 %patch0 -E -p1 %ifarch ia64 %if "%{_lib}" == "lib64" @@ -338,8 +340,8 @@ mkdir $builddir ; cd $builddir build_CFLAGS="$BuildFlags -g -O3 $*" ../configure CC="$GCC" CXX="$GXX" CFLAGS="$build_CFLAGS" \ --prefix=%{_prefix} \ - --enable-add-ons=nptl$AddOns --without-cvs $EnableKernel \ - --with-headers=%{_prefix}/include --enable-bind-now \ + --enable-add-ons=../%{glibcportsdir},nptl$AddOns \ + --with-headers=%{_prefix}/include $EnableKernel --enable-bind-now \ --with-tls --with-__thread --build %{nptl_target_cpu}-redhat-linux \ --host %{nptl_target_cpu}-redhat-linux \ %ifarch %{multiarcharches} -- cgit v1.2.3