summaryrefslogtreecommitdiffstats
path: root/packages/net-im/discord/discord-1.0.161.exheres-0
blob: 403a5caf5f2798e2991000c329931c66b20a1db6 (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
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# Copyright 2026 Gurov <thuggerthugger1@duck.com>
# Distributed under the terms of the GNU General Public License v2

require freedesktop-desktop freedesktop-mime gtk-icon-cache

SUMMARY="Voice, video, and text chat client"
HOMEPAGE="https://discord.com/"

DISCORD_BASE="https://stable.dl2.discordapp.net/distro/app/stable/linux/x64/${PV}"
UPDATE_DISABLER_COMMIT="2f26748a667045d26bc19841f1a731b4be7a7514"
DISCORD_MODULES=(
    discord_desktop_core discord_erlpack discord_spellcheck discord_utils
    discord_voice discord_zstd discord_rpc discord_game_utils discord_krisp
)

DOWNLOADS="
    ${DISCORD_BASE}/full.distro -> ${PNV}.distro
    https://github.com/flathub/com.discordapp.Discord/raw/${UPDATE_DISABLER_COMMIT}/disable-breaking-updates.py
        -> ${PN}-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py
"
for module in "${DISCORD_MODULES[@]}"; do
    DOWNLOADS+=" ${DISCORD_BASE}/${module}/1/full.distro -> ${PNV}-${module}.distro "
done

LICENCES="all-rights-reserved"
SLOT="0"
PLATFORMS="~amd64"
RESTRICT="mirror strip test"

DEPENDENCIES="
    build:
        app-arch/brotli
        app-arch/zip

    run:
        dev-lang/python:*[>=3]
        dev-libs/at-spi2-core
        dev-libs/expat
        dev-libs/glib:2
        dev-libs/nspr
        dev-libs/nss
        media-libs/fontconfig
        net-print/cups
        sys-apps/dbus
        sys-apps/util-linux
        sys-libs/wayland
        sys-sound/alsa-lib
        x11-dri/libdrm
        x11-dri/mesa
        x11-libs/cairo
        x11-libs/gdk-pixbuf:2.0
        x11-libs/gtk+:3
        x11-libs/libX11
        x11-libs/libXcomposite
        x11-libs/libXdamage
        x11-libs/libXext
        x11-libs/libXfixes
        x11-libs/libXrandr
        x11-libs/libxcb
        x11-libs/libxkbcommon
        x11-libs/libxshmfence
        x11-libs/pango
"

WORK="${WORKBASE}/discord"

pkg_setup() {
    exdirectory --allow /opt
}

src_unpack() {
    edo mkdir -p "${WORK}"
    edo brotli -d "${FETCHEDDIR}/${PNV}.distro" -o "${WORKBASE}/${PNV}.tar"
    edo tar -xf "${WORKBASE}/${PNV}.tar" -C "${WORK}"
    edo rm "${WORKBASE}/${PNV}.tar"

    local module
    for module in "${DISCORD_MODULES[@]}"; do
        edo mkdir -p "${WORKBASE}/${module}"
        edo brotli -d "${FETCHEDDIR}/${PNV}-${module}.distro" -o "${WORKBASE}/${module}.tar"
        edo tar -xf "${WORKBASE}/${module}.tar" -C "${WORKBASE}/${module}"
        edo pushd "${WORKBASE}/${module}/files"
        edo zip -qr "${WORK}/files/resources/bootstrap/${module}.zip" .
        edo popd
        edo rm -r "${WORKBASE}/${module}" "${WORKBASE}/${module}.tar"
    done
}

src_prepare() {
    edo cp "${FILES}/manifest.json" "${WORK}/files/resources/bootstrap/manifest.json"
}

src_install() {
    edo mkdir -p "${IMAGE}/opt/discord"
    edo cp -r "${WORK}/files/." "${IMAGE}/opt/discord/"
    edo chmod 4755 "${IMAGE}/opt/discord/chrome-sandbox"

    insinto /opt/discord
    newins "${FETCHEDDIR}/${PN}-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py" disable-breaking-updates.py
    edo chmod 755 "${IMAGE}/opt/discord/disable-breaking-updates.py"

    insinto /usr/share/icons/hicolor/256x256/apps
    newins "${WORK}/files/discord.png" discord.png
    insinto /usr/share/applications
    doins "${FILES}/discord.desktop"
    exeinto /usr/$(exhost --target)/bin
    newexe "${FILES}/discord-launcher" discord
}

pkg_postinst() {
    freedesktop-mime_pkg_postinst
    freedesktop-desktop_pkg_postinst
    gtk-icon-cache_pkg_postinst
}

pkg_postrm() {
    freedesktop-mime_pkg_postrm
    freedesktop-desktop_pkg_postrm
    gtk-icon-cache_pkg_postrm
}