/ linuxy / scripts / sign-package.sh
Swadhin Biswas Ci/improve release notes (#41) Β· 8/28/2026
04d550f
84 lines Β· 1.9 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/bash
# Linuxy DEB Package Signing Script
# Open Source Project - Community Maintained

set -e

PACKAGE_NAME="linuxy"
VERSION="0.1.0"
MAINTAINER="Swadhin Biswas"
EMAIL="[email protected]"

echo "πŸ” Linuxy Package Signing Script"
echo "================================"
echo ""

# Check if GPG is installed
if ! command -v gpg &> /dev/null; then
    echo "❌ GPG is not installed. Please install it first:"
    echo "   sudo apt install gnupg"
    exit 1
fi

# Check if GPG key exists
GPG_KEY=$(gpg --list-secret-keys --keyid-format LONG | grep "^sec" | head -1 | awk '{print $2}')

if [ -z "$GPG_KEY" ]; then
    echo "⚠️  No GPG signing key found. Creating one..."
    echo ""
    
    # Create GPG key batch file
    cat > gpg_key_batch <<EOF
%echo Generating GPG key for Linuxy
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: $MAINTAINER
Name-Email: $EMAIL
Expire-Date: 0
%no-protection
%commit
%echo Done
EOF
    
    gpg --batch --gen-key gpg_key_batch
    rm gpg_key_batch
    
    GPG_KEY=$(gpg --list-secret-keys --keyid-format LONG | grep "^sec" | head -1 | awk '{print $2}')
    echo "βœ… GPG key created: $GPG_KEY"
fi

echo "βœ… Using GPG key: $GPG_KEY"
echo ""

# Find the DEB file
DEB_FILE=$(find src-tauri/target/release/bundle/deb -name "*.deb" 2>/dev/null | head -1)

if [ -z "$DEB_FILE" ]; then
    echo "❌ No DEB package found. Please build first:"
    echo "   bun run tauri build"
    exit 1
fi

echo "πŸ“¦ Found package: $DEB_FILE"
echo ""

# Sign the package
echo "πŸ” Signing package..."
dpkg-sig --sign builder -k $GPG_KEY "$DEB_FILE"

if [ $? -eq 0 ]; then
    echo "βœ… Package signed successfully!"
    echo ""
    echo "πŸ“ Verify signature with:"
    echo "   dpkg-sig --verify $DEB_FILE"
else
    echo "❌ Failed to sign package"
    echo "πŸ’‘ Install dpkg-sig: sudo apt install dpkg-sig"
    exit 1
fi

echo ""
echo "✨ Done! The signed package is ready for distribution."