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

Last change on this file since 1839 was 1826, checked in by achernya, 13 years ago
Get ghc packages to build on F15 Regenerated the .spec files with cabal2spec for the Haskell packages that are needed by Scripts, including bumping the versions to the latest ones.
File size: 8.4 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
[1807]21upstream_yum    = krb5 krb5.i686 httpd openssh
[1826]22hackage         = MonadCatchIO-mtl-0.3.0.2 cgi-3001.1.8.2 unix-handle-0.0.0
[1590]23upstream_hackage = ghc-MonadCatchIO-mtl ghc-cgi ghc-unix-handle
[1809]24upstream        = openafs $(upstream_yum) $(upstream_hackage) moira zephyr zephyr.i686 python-zephyr
[1693]25oursrc          = execsys tokensys accountadm httpdmods logview sql-signup nss_nonlocal nss_nonlocal.i686 whoisd athrun php_scripts scripts-wizard scripts-base scripts-static-cat
[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"
[1826]42openafs_url     = "http://dl.openafs.org/dl/openafs/1.4.14/openafs-1.4.14-1.1.1.src.rpm"
43#openafs_url    = "http://web.mit.edu/~scripts/rpm-fc13/openafs-1.4.12.1-1.0.pre3.src.rpm"
[1807]44zephyr_url      = "http://zephyr.1ts.org/export/HEAD/distribution/zephyr-3.0.1.tar.gz"
[1]45
[1693]46PKG             = $(patsubst %.i686,%,$@)
[1334]47
[1]48.PHONY: minimal-clean
49
50info:
51        @echo "The following packages are available:"; \
52        echo "$(allsrc)"; \
53        echo "Run 'make all' to build all packages."
54
55minimal-clean:
56        rm -rf $(topdir) $(dload)
57
58clean: minimal-clean
59        rm -rf $(out_rpms) $(out_srpms) $(out_sbin)
[1693]60        rm -f download_stamp
[1]61
62mkdir-tree:
[407]63        @rpmdev-setuptree
64        mkdir -p $(out_sbin)
65        ln -sTf $(topdir) rpmbuild
[1]66
[796]67download: download_stamp
[1693]68download_stamp:
[760]69        @mkdir -p $(dload); \
[796]70        #wget -qO- -nv $(server_url)/$(server_arch) | xargs make
[1498]71        cd $(dload) && yumdownloader --disablerepo=scripts --source $(upstream_yum)
[796]72        wget -P $(dload) $(openafs_url)
[1693]73        wget -P $(dload) $(zephyr_url)
[1396]74        cd $(tmp_src) && wget -nd -r -l1 -np -A.orig.tar.gz http://debathena.mit.edu/apt/pool/debathena/d/debathena-moira/
[1590]75        cabal update
76        cabal fetch $(hackage)
77        cp -a $(hackage:%=~/.cabal/packages/*/*/*/%.tar.gz) $(tmp_src)
[1693]78        spectool -g -R $(specs)/python-zephyr.spec
[796]79        touch download_stamp
[1]80
[760]81%.src.rpm:
82        wget -q -nv -N -B $(server_url) -nd -nH -P $(dload) $(server_url)/$*.src.rpm
83
[1]84copy-patches: mkdir-tree
[59]85        @cp $(patches)/*.patch $(tmp_src); \
[796]86        cd $(tmp_src);
[1]87
88install-srpms: mkdir-tree download
89        rpm $(rpm_args) -i $(dload)/*.src.rpm 2>/dev/null;
90
91copy-specs: mkdir-tree
92        cp ${specs}/*.spec $(tmp_specs)
93
94patch-specs: install-srpms
95        @cd ${tmp_specs}; \
96        list=`ls ${specs}/*.spec.patch`; \
97        for i in $$list; do \
98                patch < $$i; \
[917]99        done; \
100        list2=`svn ls ${oursrcdir}`; \
101        for i in $$list2; do \
102                base=`basename $$i`; \
103                version=`svnversion ${oursrcdir}/$$i`; \
104                version=$${version//:/_}; \
105                echo "$$i version $$version"; \
106                sed --in-place \
107                        -e "s/SVNVERSION_TO_UPDATE/$${version}/" \
108                ${tmp_specs}/$$base.spec; \
[1]109        done;
110
111# 1. use the package's Makefile to delete leftover files and run autoconf
112# 2. create a tarball (we want it to contain the autoconf output)
[763]113tarballs: mkdir-tree
[1]114        @cd ${oursrcdir}; \
[31]115        list=`find -mindepth 1 -maxdepth 1 -type d | grep -v ".svn"`; \
[1]116        for i in $$list; do \
117                pushd $$i; \
[119]118                if [ -x ./mrproper ]; then \
119                        ./mrproper; \
120                        autoconf; \
121                fi; \
[1]122                popd; \
123                tar -czf $(tmp_src)/$$i.tar.gz $$i; \
124        done;
125
[763]126#setup: install-srpms copy-patches copy-specs patch-specs tarballs
[839]127setup: copy-patches copy-specs patch-specs tarballs
[1]128
129oursrc:
130        make $(oursrc)
131
[763]132upstream: mkdir-tree download
[1]133        make $(upstream)
134
135all:
136        make $(allsrc)
137
[1522]138$(oursrc): rpmbuild_args += --define 'scriptsversion $(shell svnversion ${oursrcdir}/$** | tr ':' '_' | sed -e 's/-.*/0.uncommitted/')'
[928]139
[1693]140$(filter %.i686,$(oursrc)): %.i686: setup
[11]141        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
[1334]142        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
[1804]143        /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`
[1]144
[1693]145$(filter-out %.i686,$(oursrc)): %: setup
[750]146        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
[1334]147        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
[1804]148        /usr/bin/mock -r scripts-fc15-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
[750]149
[1340]150$(upstream) openafs-kernel: rpmbuild_args += --define 'scriptsversion $(shell svnversion ${patches} | tr ':' '_')'
[928]151
[1693]152$(filter %.i686,$(upstream)): %.i686: setup patch-specs
[1334]153        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
[1804]154        /usr/bin/mock -r scripts-fc15-i386 --arch=i686 ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
[760]155
[1693]156$(filter-out %.i686,$(upstream)): %: setup patch-specs
[1334]157        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/${PKG}.spec
[1804]158        /usr/bin/mock -r scripts-fc15-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/${PKG}-[0-9]*.src.rpm | head -1`
[1334]159
[103]160openafs-kernel: setup
[79]161        PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
[1334]162        rpmbuild ${rpmbuild_args} -bs ${tmp_specs}/openafs*.spec
[1804]163        /usr/bin/mock -r scripts-fc15-`uname -m` ${rpmbuild_args} -v --rebuild `ls -t ${out_srpms}/openafs*.src.rpm | head -1`
[79]164
[796]165#sort -n sorts "2.6.25-1" later than "2.6.25.1-1", so it's Wrong
166#kernvers = $(shell rpm -q --qf "%{Version}-%{Release}\n" --whatprovides kernel | sort -n | tail -n1)
167kernvers = $(shell uname -r | sed "s/\(.*\)[.].*/\1/")
[516]168kvariants = ''
[1334]169openafs_rpmbuild_args = --define "fedorakmod 1" --define "kvariants $(kvariants)" --define "kernvers $(kernvers)"
[507]170openafs: rpmbuild_args += $(openafs_rpmbuild_args)
171openafs-kernel: rpmbuild_args += $(openafs_rpmbuild_args) --define "build_userspace 0" --define "build_modules 1"
172
[177]173frob-openafs:
174        @if [ ! -d "/etc/openafs/" ]; then \
175        echo "/etc/openafs does not exist"; \
176        exit 1; \
177        else \
178        ln -nfs /etc/openafs/* /usr/vice/etc/; \
179        fi
180
[68]181# The following packages are needed for our packages
[1693]182basic-deps      = kernel-devel rpm-build rpmdevtools mock gcc autoconf patch krb5-workstation glibc-devel.i686 glibc-devel libtool libgcc.i686
183oursrc-deps     = hesinfo openldap-clients openldap-devel.i686 php-devel
[437]184httpdmods-deps  = httpd-devel
185httpd-deps      = xmlto db4-devel expat-devel zlib-devel libselinux-devel apr-devel apr-util-devel pcre-devel openssl-devel distcache-devel
[1693]186krb5-deps       = bison ncurses-devel texinfo keyutils-libs-devel texinfo-tex texlive-latex libss-devel rsh
[437]187openafs-deps    = pam-devel automake
[1693]188moira-deps      = e2fsprogs-devel
189zephyr-deps     = hesiod-devel libss-devel krb5-devel readline-devel
[1259]190openssh-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
191php-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
[1590]192haskell-deps    = cabal-install
[36]193install-deps:
[1693]194        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)
195# XXX: We need to figure out what's going on with compat-readline43
196#       rpm -ivh http://kojipkgs.fedoraproject.org/packages/compat-readline43/4.3/3/i386/compat-readline43-4.3-3.i386.rpm
[858]197#       rpm -ivh http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/Fedora/RPMS/compat-readline43-4.3-3.i386.rpm
[760]198
199fedora:
200        make install-deps
201        make upstream
202        rpm -ivh $(out_rpms)/`uname -m`/openafs-devel*.rpm
203        make oursrc
Note: See TracBrowser for help on using the repository browser.