summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 35f331a72362747d09b6b9377bc9c7315904f61d (plain)
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
# Maintainer: Your Name <your@email.com>

pkgname=rufus-linux-bin
pkgver=3.20.1929
pkgrel=1
pkgdesc="A Linux-native replica of the Rufus USB flashing utility (prebuilt AppImage)"
arch=('x86_64')
url="https://github.com/kajano-source/rufus-linux"
license=('GPL3')
depends=(
    'util-linux'
    'parted'
    'dosfstools'
    'ntfs-3g'
    'exfatprogs'
    'e2fsprogs'
    'polkit'
    'fuse2'          # required for AppImage runtime
)
provides=('rufus-linux')
conflicts=('rufus-linux')
source=("Rufus-$pkgver.AppImage::https://github.com/kajano-source/rufus-linux/releases/download/v$pkgver/Rufus-$pkgver.AppImage"
        "rufus.png::https://github.com/kajano-source/rufus-linux/raw/main/src/icons/rufus.png")
sha256sums=('dcc82c2692813d816ddb9ca9b927b4d2399551b6baec1531338191aa310d614a'
            'SKIP')

package() {
    # Install AppImage
    install -Dm755 "Rufus-$pkgver.AppImage" "$pkgdir/usr/bin/rufus-linux-bin"

    # Create a wrapper that runs the AppImage
    install -Dm755 /dev/stdin "$pkgdir/usr/bin/rufus-linux" << 'EOF'
#!/bin/sh
exec /usr/bin/rufus-linux-bin "$@"
EOF

    # Install desktop entry
    install -Dm644 /dev/stdin "$pkgdir/usr/share/applications/rufus-linux.desktop" << EOF
[Desktop Entry]
Name=Rufus
GenericName=USB Flasher
Comment=Flash ISO images to USB drives
Exec=rufus-linux %U
Icon=rufus-linux
Terminal=false
Type=Application
Categories=Utility;
Keywords=usb;flash;iso;bootable;
EOF

    # Install icon
    install -Dm644 "rufus.png" "$pkgdir/usr/share/icons/hicolor/512x512/apps/rufus-linux.png"

    # Install polkit policy
    install -Dm644 /dev/stdin "$pkgdir/usr/share/polkit-1/actions/com.rufus-linux.policy" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
  <action id="com.rufus-linux.flash">
    <description>Flash ISO to USB</description>
    <message>Authentication is required to write to a USB device</message>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>
</policyconfig>
EOF
}