-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakerpm.sh.in
More file actions
69 lines (58 loc) · 2.37 KB
/
makerpm.sh.in
File metadata and controls
69 lines (58 loc) · 2.37 KB
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
#!/bin/bash
# build-@PACKAGE@-rpm.sh
#
# Script to build both binary and source RPMs for @PACKAGE_NAME@
# using the @PACKAGE@-rpm.spec file in the current directory.
#
# This version:
# - Works without rpmdevtools
# - Prefers a source tarball already present in the current directory
# - Only downloads it if not found locally
#
# Requirements:
# - rpmbuild available
# - gcc and make installed (for building @PACKAGE@)
#
# Usage:
# 1. Place this script and your @PACKAGE@-rpm.spec (and optionally the tarball) in the same directory.
# 2. Make it executable: chmod +x build-@PACKAGE@-rpm.sh
# 3. Run it: ./build-@PACKAGE@-rpm.sh
set -euo pipefail
VERSION=@PACKAGE_VERSION@
SPEC_FILE="@PACKAGE@.spec"
if [[ ! -f "pkg/$SPEC_FILE" ]]; then
echo "Error: $SPEC_FILE not found in the current directory."
echo "Please run this script from the directory containing your $SPEC_FILE"
exit 1
fi
echo "SnapRAID version: $VERSION"
TARBALL="@PACKAGE@-${VERSION}.tar.gz"
SOURCE_URL="https://github.com/amadvance/@PACKAGE@/releases/download/v${VERSION}/${TARBALL}"
# Set up rpmbuild tree manually in ~/rpmbuild if it doesn't exist
RPMBUILD_DIR="$HOME/rpmbuild"
if [[ ! -d "$RPMBUILD_DIR/SPECS" ]]; then
echo "Setting up rpmbuild directory structure in $RPMBUILD_DIR..."
mkdir -p "$RPMBUILD_DIR"/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
else
echo "rpmbuild directory structure already exists in $RPMBUILD_DIR"
fi
# Look for the tarball first in the current directory, then in ~/rpmbuild/SOURCES
if [[ -f "./$TARBALL" ]]; then
echo "Found $TARBALL in the current directory. Copying to ~/rpmbuild/SOURCES..."
cp "./$TARBALL" "$RPMBUILD_DIR/SOURCES/"
elif [[ ! -f "$RPMBUILD_DIR/SOURCES/$TARBALL" ]]; then
echo "Downloading $TARBALL (not found locally or in ~/rpmbuild/SOURCES)..."
curl -L -o "$RPMBUILD_DIR/SOURCES/$TARBALL" "$SOURCE_URL"
else
echo "$TARBALL already present in ~/rpmbuild/SOURCES"
fi
# Copy spec file to SPECS directory (preserving the original filename)
cp "pkg/$SPEC_FILE" "$RPMBUILD_DIR/SPECS/"
echo "Building RPMs using rpmbuild -ba..."
rpmbuild -ba --nodeps --nocheck "$RPMBUILD_DIR/SPECS/$SPEC_FILE"
cp $RPMBUILD_DIR/RPMS/*/@PACKAGE@-${VERSION}*.rpm .
echo "Package created: $RPMBUILD_DIR/RPMS/@PACKAGE@-${VERSION}*.rpm"
echo ""
echo "You can install the RPM with:"
echo " sudo dnf install @PACKAGE@-${VERSION}*.rpm # Fedora"
echo " sudo rpm -ivh @PACKAGE@-${VERSION}*.rpm # Others"