source: branches/fc19-dev/server/fedora/Makefile @ 2424

Last change on this file since 2424 was 2423, checked in by tboning, 11 years ago
Stop scriptsifying rubygems Rubygems was scriptsified to add the 'thread' gem, which was needed for Rails 2.3.8 compatibility. Scripts-on-F19 drops Rails 2.3.8, and therefore this compatibility gem.
File size: 7.5 KB
RevLine 
[1]1# Makefile for building scripts.mit.edu Fedora packages
2# Copyright (C) 2006  Jeff Arnold <jbarnold@mit.edu>
3#                and  Joe Presbrey <presbrey@mit.edu>
4#
5# This program is free software; you can redistribute it and/or
6# modify it under the terms of the GNU General Public License
7# as published by the Free Software Foundation; either version 2
8# of the License, or (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
18#
19# See /COPYRIGHT in this repository for more information.
20
[2423]21upstream_yum    = krb5 krb5.i686 httpd openssh
[2246]22hackage         = cgi-3001.1.8.2 unix-handle-0.0.0
23upstream_hackage = ghc-cgi ghc-unix-handle
[2092]24upstream        = openafs $(upstream_yum) $(upstream_hackage) moira zephyr zephyr.i686 python-zephyr python-afs athena-aclocal discuss
[2363]25oursrc          = execsys tokensys accountadm httpdmods logview sql-signup nss_nonlocal nss_nonlocal.i686 whoisd athrun php_scripts scripts-wizard scripts-base scripts-static-cat fuse-better-mousetrapfs scripts-munin-plugins
[1]26allsrc          = $(upstream) $(oursrc)
27oursrcdir       = ${PWD}/../common/oursrc
28patches         = ${PWD}/../common/patches
29specs           = ${PWD}/specs
30
[353]31topdir          = ${HOME}/rpmbuild
32tmp_build       = $(topdir)/BUILD
33tmp_specs       = $(topdir)/SPECS
34tmp_src         = $(topdir)/SOURCES
35out_rpms        = $(topdir)/RPMS
36out_srpms       = $(topdir)/SRPMS
37out_sbin        = $(topdir)/sbin
[1]38
39dload           = ${PWD}/.dload
[260]40server_url      = "http://web.mit.edu/scripts/src"
[1]41server_arch     = "fedora.stable"
[2383]42openafs_url     = "http://www.openafs.org/dl/openafs/1.6.2/openafs-1.6.2-1.src.rpm"
[2213]43zephyr_url      = "http://zephyr.1ts.org/files/zephyr-3.0.2.tar.gz"
[1]44
[1693]45PKG             = $(patsubst %.i686,%,$@)
[1334]46
[1]47.PHONY: minimal-clean
48
49info:
[2104]50        @echo "The following packages are available:"
51        @echo "$(allsrc)"
52        @echo "Run 'make all' to build all packages."
[1]53
54minimal-clean:
55        rm -rf $(topdir) $(dload)
56
57clean: minimal-clean
58        rm -rf $(out_rpms) $(out_srpms) $(out_sbin)
[1693]59        rm -f download_stamp
[1]60
61mkdir-tree:
[2104]62        rpmdev-setuptree
[407]63        mkdir -p $(out_sbin)
64        ln -sTf $(topdir) rpmbuild
[1]65
[796]66download: download_stamp
[1693]67download_stamp:
[2104]68        mkdir -p $(dload)
[796]69        #wget -qO- -nv $(server_url)/$(server_arch) | xargs make
[1498]70        cd $(dload) && yumdownloader --disablerepo=scripts --source $(upstream_yum)
[796]71        wget -P $(dload) $(openafs_url)
[1693]72        wget -P $(dload) $(zephyr_url)
[1396]73        cd $(tmp_src) && wget -nd -r -l1 -np -A.orig.tar.gz http://debathena.mit.edu/apt/pool/debathena/d/debathena-moira/
[1590]74        cabal update
[2201]75        cabal fetch --no-dependencies $(hackage)
[1590]76        cp -a $(hackage:%=~/.cabal/packages/*/*/*/%.tar.gz) $(tmp_src)
[1693]77        spectool -g -R $(specs)/python-zephyr.spec
[2092]78        spectool -g -R $(specs)/python-afs.spec
[796]79        touch download_stamp
[1]80
[2066]81        cd $(tmp_src) && wget -nd -r -l1 -np -A.tar.gz http://debathena.mit.edu/apt/pool/debathena/d/debathena-aclocal/
82        cd $(tmp_src) && wget -nd -r -l1 -np -A.orig.tar.gz http://debathena.mit.edu/apt/pool/debathena/d/debathena-discuss/
83        cp $(oursrcdir)/discuss/* $(tmp_src)
[760]84%.src.rpm:
85        wget -q -nv -N -B $(server_url) -nd -nH -P $(dload) $(server_url)/$*.src.rpm
86
[1]87copy-patches: mkdir-tree
[2104]88        cp $(patches)/*.patch $(tmp_src)
[1]89
90install-srpms: mkdir-tree download
[2104]91        rpm $(rpm_args) -i $(dload)/*.src.rpm 2>/dev/null
[1]92
93copy-specs: mkdir-tree
94        cp ${specs}/*.spec $(tmp_specs)
95
[2066]96# Remove old .orig files so we're not mislead
[1]97patch-specs: install-srpms
[2104]98        @set -ex; \
99        cd ${tmp_specs}; \
[1]100        list=`ls ${specs}/*.spec.patch`; \
[2066]101        rm -f *.orig; \
102        rm -f *.spec.~*~; \
[1]103        for i in $$list; do \
[2066]104                patch -bV numbered < $$i; \
[917]105        done; \
106        list2=`svn ls ${oursrcdir}`; \
107        for i in $$list2; do \
108                base=`basename $$i`; \
[2102]109                [ -e ${tmp_specs}/$$base.spec ] || continue; \
[917]110                version=`svnversion ${oursrcdir}/$$i`; \
111                version=$${version//:/_}; \
112                echo "$$i version $$version"; \
113                sed --in-place \
114                        -e "s/SVNVERSION_TO_UPDATE/$${version}/" \
115                ${tmp_specs}/$$base.spec; \
[2104]116        done
[1]117
118# 1. use the package's Makefile to delete leftover files and run autoconf
119# 2. create a tarball (we want it to contain the autoconf output)
[763]120tarballs: mkdir-tree
[2104]121        @set -ex; \
122        cd ${oursrcdir}; \
[31]123        list=`find -mindepth 1 -maxdepth 1 -type d | grep -v ".svn"`; \
[1]124        for i in $$list; do \
125                pushd $$i; \
[119]126                if [ -x ./mrproper ]; then \
127                        ./mrproper; \
[2103]128                        if [ -e configure.in ] || [ -e configure.ac ]; then \
129                                autoconf; \
130                        fi; \
[119]131                fi; \
[1]132                popd; \
133                tar -czf $(tmp_src)/$$i.tar.gz $$i; \
[2104]134        done
[1]135
[763]136#setup: install-srpms copy-patches copy-specs patch-specs tarballs
[839]137setup: copy-patches copy-specs patch-specs tarballs
[1]138
139oursrc:
140        make $(oursrc)
141
[763]142upstream: mkdir-tree download
[1]143        make $(upstream)
144
145all:
146        make $(allsrc)
147
[1522]148$(oursrc): rpmbuild_args += --define 'scriptsversion $(shell svnversion ${oursrcdir}/$** | tr ':' '_' | sed -e 's/-.*/0.uncommitted/')'
[928]149
[1693]150$(filter %.i686,$(oursrc)): %.i686: setup
[11]151        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
[1334]152        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
[2404]153        /usr/bin/mock -r scripts-fc19-i386 --arch=i686 ${rpmbuild_args} --define="_lib lib" -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
[1]154
[1693]155$(filter-out %.i686,$(oursrc)): %: setup
[750]156        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
[1334]157        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
[2404]158        /usr/bin/mock -r scripts-fc19-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
[750]159
[1340]160$(upstream) openafs-kernel: rpmbuild_args += --define 'scriptsversion $(shell svnversion ${patches} | tr ':' '_')'
[928]161
[1693]162$(filter %.i686,$(upstream)): %.i686: setup patch-specs
[1334]163        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
[2404]164        /usr/bin/mock -r scripts-fc19-i386 --arch=i686 ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
[760]165
[1693]166$(filter-out %.i686,$(upstream)): %: setup patch-specs
[1334]167        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
[2404]168        /usr/bin/mock -r scripts-fc19-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
[1334]169
[103]170openafs-kernel: setup
[79]171        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
[1334]172        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/openafs*.spec
[2404]173        /usr/bin/mock -r scripts-fc19-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/openafs*.src.rpm | head -1`
[79]174
[796]175#sort -n sorts "2.6.25-1" later than "2.6.25.1-1", so it's Wrong
176#kernvers = $(shell rpm -q --qf "%{Version}-%{Release}\n" --whatprovides kernel | sort -n | tail -n1)
177kernvers = $(shell uname -r | sed "s/\(.*\)[.].*/\1/")
[516]178kvariants = ''
[1334]179openafs_rpmbuild_args = --define "fedorakmod 1" --define "kvariants $(kvariants)" --define "kernvers $(kernvers)"
[2376]180openafs: rpmbuild_args += $(openafs_rpmbuild_args) --define "build_userspace 1" --define "build_modules 0"
[507]181openafs-kernel: rpmbuild_args += $(openafs_rpmbuild_args) --define "build_userspace 0" --define "build_modules 1"
182
[177]183frob-openafs:
[2104]184        @set -ex; \
185        if [ ! -d "/etc/openafs/" ]; then \
[177]186        echo "/etc/openafs does not exist"; \
187        exit 1; \
188        else \
189        ln -nfs /etc/openafs/* /usr/vice/etc/; \
190        fi
191
[1693]192# XXX: We need to figure out what's going on with compat-readline43
193#       rpm -ivh http://kojipkgs.fedoraproject.org/packages/compat-readline43/4.3/3/i386/compat-readline43-4.3-3.i386.rpm
[858]194#       rpm -ivh http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/Fedora/RPMS/compat-readline43-4.3-3.i386.rpm
[760]195
196fedora:
197        make upstream
198        rpm -ivh $(out_rpms)/`uname -m`/openafs-devel*.rpm
199        make oursrc
Note: See TracBrowser for help on using the repository browser.