1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-24 21:42:51 -05:00

Merge branch 'master' of github.com:bbedward/DankMaterialShell

This commit is contained in:
bbedward
2025-10-09 20:38:26 -04:00

View File

@@ -1,23 +1,8 @@
# Modular spec for DMS - stable and git builds # Spec for DMS - uses rpkg macros for both stable and git builds
#
# Build types controlled by %git_build macro:
# - git_build=1 (default): Build from latest git commit (dms-git package)
# - git_build=0: Build from tagged release (dms package)
%global debug_package %{nil} %global debug_package %{nil}
# Set build type - override with --define 'git_build 0' for stable releases
%{!?git_build: %global git_build 1}
%if %{git_build}
# Git build - use rpkg git macros
%global version {{{ git_dir_version }}} %global version {{{ git_dir_version }}}
%global pkg_summary DankMaterialShell - Material 3 inspired shell for Wayland compositors (git development version)
%else
# Stable build - use tagged version
%global version 1.0.0
%global pkg_summary DankMaterialShell - Material 3 inspired shell for Wayland compositors %global pkg_summary DankMaterialShell - Material 3 inspired shell for Wayland compositors
%endif
Name: dms Name: dms
Version: %{version} Version: %{version}
@@ -26,32 +11,15 @@ Summary: %{pkg_summary}
License: GPL-3.0-only License: GPL-3.0-only
URL: https://github.com/AvengeMedia/DankMaterialShell URL: https://github.com/AvengeMedia/DankMaterialShell
%if %{git_build}
VCS: {{{ git_dir_vcs }}} VCS: {{{ git_dir_vcs }}}
Source0: {{{ git_dir_pack }}} Source0: {{{ git_dir_pack }}}
%else
Source0: https://github.com/AvengeMedia/DankMaterialShell/archive/refs/tags/v%{version}.tar.gz#/dms-%{version}.tar.gz
%endif
# dms CLI tool sources # dms CLI tool sources - compiled from danklinux
%if %{git_build}
# Git build: Compile from danklinux source
Source1: https://github.com/AvengeMedia/danklinux/archive/refs/heads/master.tar.gz#/danklinux-master.tar.gz Source1: https://github.com/AvengeMedia/danklinux/archive/refs/heads/master.tar.gz#/danklinux-master.tar.gz
# Vendored Go dependencies for danklinux (Copr has no network access)
Source2: danklinux-vendor.tar.gz
BuildRequires: git-core BuildRequires: git-core
BuildRequires: golang >= 1.21 BuildRequires: golang >= 1.21
%else BuildRequires: rpkg
# Stable build: Use pre-built binaries from DankMaterialShell releases
Source1: https://github.com/AvengeMedia/DankMaterialShell/releases/download/v%{version}/dms-amd64.gz
Source2: https://github.com/AvengeMedia/DankMaterialShell/releases/download/v%{version}/dms-amd64.gz.sha256
Source3: https://github.com/AvengeMedia/DankMaterialShell/releases/download/v%{version}/dms-arm64.gz
Source4: https://github.com/AvengeMedia/DankMaterialShell/releases/download/v%{version}/dms-arm64.gz.sha256
BuildRequires: gzip
%endif
# Core requirements - Shell and fonts # Core requirements - Shell and fonts
Requires: (quickshell or quickshell-git) Requires: (quickshell or quickshell-git)
@@ -74,11 +42,7 @@ Recommends: gammastep
Recommends: qt6ct Recommends: qt6ct
# Auto-require the CLI sub-package # Auto-require the CLI sub-package
%if %{git_build}
Requires: dms-cli = %{version}-%{release} Requires: dms-cli = %{version}-%{release}
%else
Requires: dms-cli = %{version}-%{release}
%endif
%description %description
DankMaterialShell (DMS) is a modern Wayland desktop shell built with Quickshell DankMaterialShell (DMS) is a modern Wayland desktop shell built with Quickshell
@@ -89,75 +53,36 @@ Includes auto-theming for GTK/Qt apps with matugen, 20+ customizable widgets,
process monitoring, notification center, clipboard history, dock, control center, process monitoring, notification center, clipboard history, dock, control center,
lock screen, and comprehensive plugin system. lock screen, and comprehensive plugin system.
%if %{git_build}
This is the development version built from the latest git commit.
%endif
%package -n dms-cli %package -n dms-cli
Summary: DankMaterialShell CLI tool Summary: DankMaterialShell CLI tool
License: GPL-3.0-only License: GPL-3.0-only
%if %{git_build}
URL: https://github.com/AvengeMedia/danklinux URL: https://github.com/AvengeMedia/danklinux
%else
URL: https://github.com/AvengeMedia/DankMaterialShell
%endif
%description -n dms-cli %description -n dms-cli
Command-line interface for DankMaterialShell configuration and management. Command-line interface for DankMaterialShell configuration and management.
Provides native DBus bindings, NetworkManager integration, and system utilities. Provides native DBus bindings, NetworkManager integration, and system utilities.
%if %{git_build}
Built from danklinux repository master branch (development version).
%endif
%prep %prep
%if %{git_build}
{{{ git_dir_setup_macro }}} {{{ git_dir_setup_macro }}}
# Extract danklinux for building dms CLI # Extract danklinux for building dms CLI
tar -xzf %{SOURCE1} -C %{_builddir} tar -xzf %{SOURCE1} -C %{_builddir}
tar -xzf %{SOURCE2} -C %{_builddir}/danklinux-master/
%else
%autosetup -n DankMaterialShell-%{version}
# Extract and verify the appropriate dms binary based on architecture
%ifarch x86_64
echo "$(cat %{SOURCE2} | cut -d' ' -f1) %{SOURCE1}" | sha256sum -c - || { echo "Checksum mismatch!"; exit 1; }
gunzip -c %{SOURCE1} > dms
%endif
%ifarch aarch64
echo "$(cat %{SOURCE4} | cut -d' ' -f1) %{SOURCE3}" | sha256sum -c - || { echo "Checksum mismatch!"; exit 1; }
gunzip -c %{SOURCE3} > dms
%endif
chmod +x dms
%endif
%build %build
%if %{git_build} # Compile dms CLI from danklinux source
# Git build: Compile dms CLI from source
pushd %{_builddir}/danklinux-master pushd %{_builddir}/danklinux-master
export CGO_CPPFLAGS="${CPPFLAGS}" export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}" export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}" export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}" export CGO_LDFLAGS="${LDFLAGS}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=vendor -modcacherw" export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
go build -mod=vendor -o dms ./cmd/dms go build -o dms ./cmd/dms
popd popd
%else
# Stable build: Use pre-built binary
%endif
%install %install
# Install dms-cli binary # Install dms-cli binary
%if %{git_build}
# Git: Install built binary
install -Dm755 %{_builddir}/danklinux-master/dms %{buildroot}%{_bindir}/dms-cli install -Dm755 %{_builddir}/danklinux-master/dms %{buildroot}%{_bindir}/dms-cli
%else
# Stable: Install pre-built binary
install -Dm755 dms %{buildroot}%{_bindir}/dms-cli
%endif
# Install shell files to XDG config location # Install shell files to XDG config location
install -dm755 %{buildroot}%{_sysconfdir}/xdg/quickshell/dms install -dm755 %{buildroot}%{_sysconfdir}/xdg/quickshell/dms
@@ -168,11 +93,6 @@ rm -rf %{buildroot}%{_sysconfdir}/xdg/quickshell/dms/.git*
rm -f %{buildroot}%{_sysconfdir}/xdg/quickshell/dms/.gitignore rm -f %{buildroot}%{_sysconfdir}/xdg/quickshell/dms/.gitignore
rm -rf %{buildroot}%{_sysconfdir}/xdg/quickshell/dms/.github rm -rf %{buildroot}%{_sysconfdir}/xdg/quickshell/dms/.github
%if ! %{git_build}
# Stable: Remove the dms binary from the config directory (if copied)
rm -f %{buildroot}%{_sysconfdir}/xdg/quickshell/dms/dms
%endif
%files %files
%license LICENSE %license LICENSE
%doc README.md CONTRIBUTING.md %doc README.md CONTRIBUTING.md
@@ -182,9 +102,4 @@ rm -f %{buildroot}%{_sysconfdir}/xdg/quickshell/dms/dms
%{_bindir}/dms-cli %{_bindir}/dms-cli
%changelog %changelog
%if %{git_build}
{{{ git_dir_changelog }}} {{{ git_dir_changelog }}}
%else
* Thu Oct 09 2025 AvengeMedia <support@avengemedia.net> - 1.0.0-1
- Initial stable release
%endif