source: branches/fc15-dev/server/fedora/Makefile @ 1913

Last change on this file since 1913 was 1913, checked in by achernya, 13 years ago
Update OpenAFS from 1.4.14 to 1.6.0pre6 kaduk finished porting the openafs-scripts patch to 1.6.0, which was then lightly modified be me to get it to compile -- mostly fixing typos. The openafs.spec.patch was also fixed, including another chmod +x hack on some libraries to get rpm to properly process them for Provides directives. Interestingly, these libraries had the correct mode in 1.4.14. The patches that were added to get 1.4.14 to compile have also been removed, as 1.6.0pre6 compiles on kernel 2.6.38 unmodified. openafs-numsysnames is getting removed because 32 is now the default. openafs-localcsdb is getting removed because the change was included in kaduk's patchset.
File size: 8.7 KB
Line 
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
21upstream_yum    = krb5 krb5.i686 httpd openssh
22hackage         = MonadCatchIO-mtl-0.3.0.2 cgi-3001.1.8.2 unix-handle-0.0.0
23upstream_hackage = ghc-MonadCatchIO-mtl ghc-cgi ghc-unix-handle
24upstream        = openafs $(upstream_yum) $(upstream_hackage) moira zephyr zephyr.i686 python-zephyr athena-aclocal discuss
25oursrc          = execsys tokensys accountadm httpdmods logview sql-signup nss_nonlocal nss_nonlocal.i686 whoisd athrun php_scripts scripts-wizard scripts-base scripts-static-cat
26allsrc          = $(upstream) $(oursrc)
27oursrcdir       = ${PWD}/../common/oursrc
28patches         = ${PWD}/../common/patches
29specs           = ${PWD}/specs
30
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
38
39dload           = ${PWD}/.dload
40server_url      = "http://web.mit.edu/scripts/src"
41server_arch     = "fedora.stable"
42openafs_url     = "http://dl.openafs.org/dl/openafs/candidate/1.6.0pre6/openafs-1.6.0-0.pre6.src.rpm"
43zephyr_url      = "http://zephyr.1ts.org/export/HEAD/distribution/zephyr-3.0.1.tar.gz"
44
45PKG             = $(patsubst %.i686,%,$@)
46
47.PHONY: minimal-clean
48
49info:
50        @echo "The following packages are available:"; \
51        echo "$(allsrc)"; \
52        echo "Run 'make all' to build all packages."
53
54minimal-clean:
55        rm -rf $(topdir) $(dload)
56
57clean: minimal-clean
58        rm -rf $(out_rpms) $(out_srpms) $(out_sbin)
59        rm -f download_stamp
60
61mkdir-tree:
62        @rpmdev-setuptree
63        mkdir -p $(out_sbin)
64        ln -sTf $(topdir) rpmbuild
65
66download: download_stamp
67download_stamp:
68        @mkdir -p $(dload); \
69        #wget -qO- -nv $(server_url)/$(server_arch) | xargs make
70        cd $(dload) && yumdownloader --disablerepo=scripts --source $(upstream_yum)
71        wget -P $(dload) $(openafs_url)
72        wget -P $(dload) $(zephyr_url)
73        cd $(tmp_src) && wget -nd -r -l1 -np -A.orig.tar.gz http://debathena.mit.edu/apt/pool/debathena/d/debathena-moira/
74        cabal update
75        cabal fetch $(hackage)
76        cp -a $(hackage:%=~/.cabal/packages/*/*/*/%.tar.gz) $(tmp_src)
77        spectool -g -R $(specs)/python-zephyr.spec
78        touch download_stamp
79
80        cd $(tmp_src) && wget -nd -r -l1 -np -A.tar.gz http://debathena.mit.edu/apt/pool/debathena/d/debathena-aclocal/
81        cd $(tmp_src) && wget -nd -r -l1 -np -A.orig.tar.gz http://debathena.mit.edu/apt/pool/debathena/d/debathena-discuss/
82        cp $(oursrcdir)/discuss/* $(tmp_src)
83%.src.rpm:
84        wget -q -nv -N -B $(server_url) -nd -nH -P $(dload) $(server_url)/$*.src.rpm
85
86copy-patches: mkdir-tree
87        @cp $(patches)/*.patch $(tmp_src); \
88        cd $(tmp_src);
89
90install-srpms: mkdir-tree download
91        rpm $(rpm_args) -i $(dload)/*.src.rpm 2>/dev/null;
92
93copy-specs: mkdir-tree
94        cp ${specs}/*.spec $(tmp_specs)
95
96patch-specs: install-srpms
97        @cd ${tmp_specs}; \
98        list=`ls ${specs}/*.spec.patch`; \
99        for i in $$list; do \
100                patch < $$i; \
101        done; \
102        list2=`svn ls ${oursrcdir}`; \
103        for i in $$list2; do \
104                base=`basename $$i`; \
105                version=`svnversion ${oursrcdir}/$$i`; \
106                version=$${version//:/_}; \
107                echo "$$i version $$version"; \
108                sed --in-place \
109                        -e "s/SVNVERSION_TO_UPDATE/$${version}/" \
110                ${tmp_specs}/$$base.spec; \
111        done;
112
113# 1. use the package's Makefile to delete leftover files and run autoconf
114# 2. create a tarball (we want it to contain the autoconf output)
115tarballs: mkdir-tree
116        @cd ${oursrcdir}; \
117        list=`find -mindepth 1 -maxdepth 1 -type d | grep -v ".svn"`; \
118        for i in $$list; do \
119                pushd $$i; \
120                if [ -x ./mrproper ]; then \
121                        ./mrproper; \
122                        autoconf; \
123                fi; \
124                popd; \
125                tar -czf $(tmp_src)/$$i.tar.gz $$i; \
126        done;
127
128#setup: install-srpms copy-patches copy-specs patch-specs tarballs
129setup: copy-patches copy-specs patch-specs tarballs
130
131oursrc:
132        make $(oursrc)
133
134upstream: mkdir-tree download
135        make $(upstream)
136
137all:
138        make $(allsrc)
139
140$(oursrc): rpmbuild_args += --define 'scriptsversion $(shell svnversion ${oursrcdir}/$** | tr ':' '_' | sed -e 's/-.*/0.uncommitted/')'
141
142$(filter %.i686,$(oursrc)): %.i686: setup
143        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
144        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
145        /usr/bin/mock -r scripts-fc15-i386 --arch=i686 ${rpmbuild_args} --define="_lib lib" -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
146
147$(filter-out %.i686,$(oursrc)): %: setup
148        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
149        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
150        /usr/bin/mock -r scripts-fc15-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
151
152$(upstream) openafs-kernel: rpmbuild_args += --define 'scriptsversion $(shell svnversion ${patches} | tr ':' '_')'
153
154$(filter %.i686,$(upstream)): %.i686: setup patch-specs
155        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
156        /usr/bin/mock -r scripts-fc15-i386 --arch=i686 ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
157
158$(filter-out %.i686,$(upstream)): %: setup patch-specs
159        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
160        /usr/bin/mock -r scripts-fc15-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
161
162openafs-kernel: setup
163        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
164        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/openafs*.spec
165        /usr/bin/mock -r scripts-fc15-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/openafs*.src.rpm | head -1`
166
167#sort -n sorts "2.6.25-1" later than "2.6.25.1-1", so it's Wrong
168#kernvers = $(shell rpm -q --qf "%{Version}-%{Release}\n" --whatprovides kernel | sort -n | tail -n1)
169kernvers = $(shell uname -r | sed "s/\(.*\)[.].*/\1/")
170kvariants = ''
171openafs_rpmbuild_args = --define "fedorakmod 1" --define "kvariants $(kvariants)" --define "kernvers $(kernvers)"
172openafs: rpmbuild_args += $(openafs_rpmbuild_args)
173openafs-kernel: rpmbuild_args += $(openafs_rpmbuild_args) --define "build_userspace 0" --define "build_modules 1"
174
175frob-openafs:
176        @if [ ! -d "/etc/openafs/" ]; then \
177        echo "/etc/openafs does not exist"; \
178        exit 1; \
179        else \
180        ln -nfs /etc/openafs/* /usr/vice/etc/; \
181        fi
182
183# The following packages are needed for our packages
184basic-deps      = kernel-devel rpm-build rpmdevtools mock gcc autoconf patch krb5-workstation glibc-devel.i686 glibc-devel libtool libgcc.i686
185oursrc-deps     = hesinfo openldap-clients openldap-devel.i686 php-devel
186httpdmods-deps  = httpd-devel
187httpd-deps      = xmlto db4-devel expat-devel zlib-devel libselinux-devel apr-devel apr-util-devel pcre-devel openssl-devel distcache-devel
188krb5-deps       = bison ncurses-devel texinfo keyutils-libs-devel texinfo-tex texlive-latex libss-devel rsh
189openafs-deps    = pam-devel automake
190moira-deps      = e2fsprogs-devel
191zephyr-deps     = hesiod-devel libss-devel krb5-devel readline-devel
192openssh-deps    = gtk2-devel libX11-devel autoconf automake openssl-devel perl zlib-devel audit-libs-devel util-linux groff man pam-devel tcp_wrappers-devel krb5-devel libselinux-devel audit-libs xauth pango-devel cairo-devel libedit-devel nss-devel fipscheck-devel
193php-deps        = bzip2-devel curl-devel gmp-devel libstdc++-devel sqlite-devel gcc-c++ libc-client-devel mysql-devel postgresql-devel unixODBC-devel libxml2-devel net-snmp-devel libxslt-devel libxml2-devel libXpm-devel libjpeg-devel t1lib-devel libmcrypt-devel mhash-devel libtidy-devel freetds-devel aspell-devel recode-devel
194haskell-deps    = cabal-install
195install-deps:
196        yum -y install $(basic-deps) $(oursrc-deps) $(httpdmods-deps) $(httpd-deps) $(krb5-deps) $(openafs-deps) $(moira-deps) $(zephyr-deps) $(openssh-deps) $(php-deps) $(haskell-deps)
197# XXX: We need to figure out what's going on with compat-readline43
198#       rpm -ivh http://kojipkgs.fedoraproject.org/packages/compat-readline43/4.3/3/i386/compat-readline43-4.3-3.i386.rpm
199#       rpm -ivh http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/Fedora/RPMS/compat-readline43-4.3-3.i386.rpm
200
201fedora:
202        make install-deps
203        make upstream
204        rpm -ivh $(out_rpms)/`uname -m`/openafs-devel*.rpm
205        make oursrc
Note: See TracBrowser for help on using the repository browser.