File: rpmdist

package info (click to toggle)
mol 0.9.71.dfsg-5
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,612 kB
  • ctags: 12,442
  • sloc: ansic: 65,368; asm: 3,437; makefile: 793; sh: 710; yacc: 706; lex: 501; perl: 160; cpp: 121; pascal: 18
file content (100 lines) | stat: -rwxr-xr-x 2,272 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/bin/bash

[ $# -lt 2 ] && {
    echo "Usage: rpmdist [all|mol|mol-kmods] VERSION [RELEASE]"
}

VERSION=$2
RELEASE=1

ARCHIVE=mol-$VERSION.tar.gz

[ -f mol-$VERSION.tgz ]	&& ARCHIVE=mol-$VERSION.tgz

[ $# == 3 ] && RELEASE=$3

RPM=rpm
[ -x /usr/bin/rpmbuild ] && RPM=/usr/bin/rpmbuild


###############################################
# Generate mol rpm
###############################################

function mol_rpm() 
{
    SPECFILE=/tmp/mol.spec
    rm -f $SPECFILE
    {   
	echo "%define version $VERSION"
	echo "%define release $RELEASE" 
	cat scripts/mol.spec.stub 
    } > $SPECFILE

    cp -f $ARCHIVE `echo $REDHAT/SOURCES/$ARCHIVE | sed -e s/tar.gz/tgz/`
    $RPM -ba $SPECFILE || exit $?
}

###############################################
# Generate mol-kmods rpm
###############################################

function mol_kmods_rpm() 
{
    SPECFILE=/tmp/mol-kmods.spec

    rm -f $SPECFILE
    {   
	echo "%define version $VERSION"
	echo "%define release $RELEASE" 
	cat scripts/mol-kmods.spec.stub 
    } > $SPECFILE

    # Rename directory in tar archive and delete
    # certain unnecessary files to reduce the size of the source RPM

    A=`pwd`/$ARCHIVE
    pushd /tmp
    rm -rf mol.rpmbuild
    mkdir mol.rpmbuild
    cd mol.rpmbuild || exit 1
    tar -xzf $A
    cd mol-$VERSION || exit 1
    rm -rf mollib
    cd ../
    mv mol-$VERSION mol-kmods-$VERSION
    KARCHIVE=mol-kmods-$VERSION.tgz
    tar -czf $KARCHIVE mol-kmods-$VERSION
    cp -f $KARCHIVE $REDHAT/SOURCES/$KARCHIVE
    popd 

    [ "$KERNEL_TREES" ] && {
	$RPM -ba $SPECFILE --define "kernel_trees $KERNEL_TREES" || exit $?
    } || {
	$RPM -ba $SPECFILE || exit $?
    }
    rm -rf /tmp/mol.rpmbuild
}


###############################################
# Is there a better way?
###############################################

REDHAT=/usr/src/redhat
[ -d /usr/src/rpm ] && REDHAT=/usr/src/rpm
[ -d /usr/src/RPM ] && REDHAT=/usr/src/RPM
[ -d /usr/src/packages ] && REDHAT=/usr/src/packages
[ -d /usr/src/redhat ] && REDHAT=/usr/src/redhat


###############################################
# Prepare specfile and build package
###############################################

case $1 in 
    mol)	mol_rpm ;;
    *kmods)	mol_kmods_rpm ;;
    *)		mol_rpm ; mol_kmods_rpm ;;
esac