diff --git a/bin/sync-aur b/bin/sync-aur index 72a4cd81..80358ba0 100755 --- a/bin/sync-aur +++ b/bin/sync-aur @@ -48,26 +48,50 @@ FAILED=0 # Function to sync a package from AUR sync_package() { local package="$1" - + print_info "Syncing $package from AUR..." - + + # Query AUR API to get PackageBase (handles split packages) + local api_response=$(curl -s "https://aur.archlinux.org/rpc/v5/info?arg[]=${package}") + local pkgbase=$(echo "$api_response" | grep -o '"PackageBase":"[^"]*"' | head -1 | cut -d'"' -f4) + + # If API query failed or package not found, try direct clone + if [[ -z "$pkgbase" ]]; then + pkgbase="$package" + fi + cd "$TEMP_DIR" - rm -rf "$package" - - if git clone "https://aur.archlinux.org/${package}.git" 2>/dev/null; then - # Create target directory if it doesn't exist - mkdir -p "$PKGBUILDS_DIR/$package" - - # Copy files (not .git directory) - cp -r "$package"/* "$PKGBUILDS_DIR/$package/" 2>/dev/null || true - cp -r "$package"/.* "$PKGBUILDS_DIR/$package/" 2>/dev/null || true - + rm -rf "$pkgbase" "$package" + + # Clone the base package + local clone_output=$(git clone "https://aur.archlinux.org/${pkgbase}.git" 2>&1) + if echo "$clone_output" | grep -q "Cloning into"; then + # Verify PKGBUILD exists + if [[ ! -f "$pkgbase/PKGBUILD" ]]; then + print_warning "Failed: $pkgbase has no PKGBUILD" + ((FAILED++)) + return + fi + + # Remove existing directory to avoid nesting issues + rm -rf "$PKGBUILDS_DIR/$package" + + # If this is a split package (pkgbase != package), copy with the package name + if [[ "$pkgbase" != "$package" ]]; then + print_info " Split package detected: $package from $pkgbase" + cp -r "$pkgbase" "$package" + mv "$package" "$PKGBUILDS_DIR/" + else + # Move the cloned directory directly + mv "$pkgbase" "$PKGBUILDS_DIR/" + fi + # Remove .git from destination rm -rf "$PKGBUILDS_DIR/$package/.git" - + ((SYNCED++)) else - print_warning "Failed to clone $package (may not exist in AUR)" + print_warning "Failed to clone $pkgbase (may not exist in AUR)" ((FAILED++)) fi } @@ -84,12 +108,12 @@ else [[ -z "$line" ]] && continue package=$(echo "$line" | awk '{print $1}') - + # Skip GitHub repos (contain /) if [[ "$package" == *"/"* ]]; then continue fi - + sync_package "$package" done < <(grep -v "^#" "$PACKAGES_FILE" | grep -v "^$") fi diff --git a/build/build.sh b/build/build.sh index 6ab250f3..bd3508cb 100755 --- a/build/build.sh +++ b/build/build.sh @@ -116,21 +116,38 @@ build_package() { # Build package without signing (signing is done separately) MAKEPKG_FLAGS="-scf --noconfirm" - + if makepkg $MAKEPKG_FLAGS; then + # Collect all newly built package files before copying + local built_pkgs=() for pkg_file in *.pkg.tar.*; do - [[ -f "$pkg_file" ]] && cp "$pkg_file" "$BUILD_OUTPUT_DIR/" + if [[ -f "$pkg_file" ]]; then + built_pkgs+=("$pkg_file") + cp "$pkg_file" "$BUILD_OUTPUT_DIR/" + fi done - cd "$BUILD_OUTPUT_DIR" + if [[ ${#built_pkgs[@]} -gt 0 ]]; then + cd "$BUILD_OUTPUT_DIR" - # Find ALL package files (handles split packages) - local new_pkgs=($(ls -t ${pkg}-*.pkg.tar.* 2>/dev/null | grep -v '\.sig$' | grep -v 'omarchy-build\.db')) + # Add all newly built packages to repository (handles split packages) + local repo_pkgs=() + for pkg_file in "${built_pkgs[@]}"; do + # Skip .sig files and database files + if [[ ! "$pkg_file" =~ \.sig$ ]] && [[ ! "$pkg_file" =~ omarchy-build\.db ]]; then + repo_pkgs+=("$pkg_file") + fi + done - if [[ ${#new_pkgs[@]} -gt 0 ]]; then - repo-add omarchy-build.db.tar.zst "${new_pkgs[@]}" >/dev/null 2>&1 - ln -sf omarchy-build.db.tar.zst omarchy-build.db - sudo pacman -Sy >/dev/null 2>&1 + if [[ ${#repo_pkgs[@]} -gt 0 ]]; then + repo-add omarchy-build.db.tar.zst "${repo_pkgs[@]}" >/dev/null 2>&1 + ln -sf omarchy-build.db.tar.zst omarchy-build.db + sudo pacman -Sy >/dev/null 2>&1 + + # Install split packages to make them available as dependencies + # This handles cases like dotnet-core-bin which creates multiple packages + sudo pacman -U --noconfirm "${repo_pkgs[@]}" >/dev/null 2>&1 || true + fi fi cd /src/$pkg @@ -147,27 +164,65 @@ build_package() { fi } +# Build a map of split packages to their parent PKGBUILD +# Format: split_pkg_map[package-name]=parent-pkgbuild-dir +build_split_package_map() { + declare -gA split_pkg_map + + # Scan all PKGBUILDs + for pkgdir in /pkgbuilds/*/; do + [[ ! -d "$pkgdir" ]] && continue + local parent=$(basename "$pkgdir") + local pkgbuild="${pkgdir}PKGBUILD" + [[ ! -f "$pkgbuild" ]] && continue + + # Extract pkgname array (split packages) + local split_packages=$(bash -c "source '$pkgbuild' 2>/dev/null; echo \"\${pkgname[@]}\"") + + # If pkgname is an array with multiple values, map each to the parent + for split_pkg in $split_packages; do + if [[ "$split_pkg" != "$parent" ]]; then + split_pkg_map[$split_pkg]=$parent + fi + done + done +} + # Get package dependencies from PKGBUILD get_package_deps() { local pkg="$1" local pkgbuild="/pkgbuilds/$pkg/PKGBUILD" - + if [[ ! -f "$pkgbuild" ]]; then return fi - - # Extract depends and makedepends, filter for packages in our pkgbuilds/ - ( + + # Extract depends and makedepends from top-level arrays + local all_deps=$( source "$pkgbuild" 2>/dev/null echo "${depends[@]} ${makedepends[@]}" - ) | tr ' ' '\n' | while read -r dep; do + ) + + # Special case: dotnet-core-8.0-bin needs dotnet-core-bin + # (its split packages depend on dotnet-host and netstandard-targeting-pack from dotnet-core-bin) + if [[ "$pkg" == "dotnet-core-8.0-bin" ]]; then + all_deps="$all_deps dotnet-core-bin" + fi + + # Process each dependency - use process substitution to avoid subshell + while read -r dep; do # Strip version constraints (e.g., 'hyprshade>=1.0' -> 'hyprshade') dep=$(echo "$dep" | sed 's/[<>=].*$//') + [[ -z "$dep" ]] && continue + # Check if this dependency exists in our pkgbuilds if [[ -d "/pkgbuilds/$dep" ]]; then echo "$dep" + # Check if it's a split package + elif [[ -n "${split_pkg_map[$dep]}" ]]; then + echo "${split_pkg_map[$dep]}" fi - done + done < <(echo "$all_deps" | tr ' ' '\n') } # Simple dependency-aware build order @@ -205,20 +260,48 @@ build_order() { printf '%s\n' "${result[@]}" } +# Check if package is compatible with target architecture +check_arch_compatible() { + local pkg="$1" + local target_arch="$2" + local pkgbuild="/pkgbuilds/$pkg/PKGBUILD" + + [[ ! -f "$pkgbuild" ]] && return 1 + + # Get arch array from PKGBUILD + local pkg_archs=$(cd "/pkgbuilds/$pkg" && bash -c 'source PKGBUILD 2>/dev/null; echo "${arch[@]}"' 2>/dev/null) + + # If arch is empty or extraction failed, skip package + [[ -z "$pkg_archs" ]] && return 1 + + # Check if 'any' architecture (works on all platforms) + if [[ "$pkg_archs" =~ "any" ]]; then + return 0 + fi + + # Check if target arch is in the list + if [[ "$pkg_archs" =~ $target_arch ]]; then + return 0 + fi + + # Not compatible + return 1 +} + # Check which packages need building (version check only) check_needs_build() { local pkg="$1" local pkgbuild="/pkgbuilds/$pkg/PKGBUILD" - + [[ ! -f "$pkgbuild" ]] && return 1 - + # Get PKGBUILD version (including epoch if present) local pkgbuild_version=$(cd "/pkgbuilds/$pkg" && bash -c 'source PKGBUILD; if [[ -n "$epoch" ]]; then echo "${epoch}:${pkgver}-${pkgrel}"; else echo "${pkgver}-${pkgrel}"; fi' 2>/dev/null) [[ -z "$pkgbuild_version" ]] && return 1 - + # Check if already built local local_version=$(get_local_version "$pkg") - + if [[ "$local_version" == "$pkgbuild_version" ]]; then return 1 # Already up to date else @@ -231,6 +314,11 @@ cd /src TOTAL_COUNT=0 +# Build split package mapping before dependency resolution +echo "==> Building split package mapping..." +build_split_package_map +echo "==> Split package mapping complete (${#split_pkg_map[@]} mappings)" + echo "==> Checking which packages need building..." # First pass: determine which packages need building @@ -253,12 +341,19 @@ if [[ -n "$PACKAGES" ]]; then fi done else - # Build all packages that need updates + # Build all packages that need updates and are compatible with target arch for pkgdir in /pkgbuilds/*/; do [[ ! -d "$pkgdir" ]] && continue pkg=$(basename "$pkgdir") [[ ! -f "$pkgdir/PKGBUILD" ]] && continue - + + # Check architecture compatibility first + if ! check_arch_compatible "$pkg" "$ARCH"; then + echo " ⏭ $pkg - not available for $ARCH" + SKIPPED_PACKAGES="$SKIPPED_PACKAGES $pkg" + continue + fi + if check_needs_build "$pkg"; then PACKAGES_TO_BUILD+=("$pkg") else @@ -272,6 +367,46 @@ if [[ ${#PACKAGES_TO_BUILD[@]} -eq 0 ]]; then echo "==> All packages are up to date!" else echo "==> ${#PACKAGES_TO_BUILD[@]} package(s) need building: ${PACKAGES_TO_BUILD[@]}" + + # Expand PACKAGES_TO_BUILD to include dependencies that also need building + echo "==> Resolving dependencies..." + declare -A seen_packages + declare -a packages_to_check=("${PACKAGES_TO_BUILD[@]}") + + while [[ ${#packages_to_check[@]} -gt 0 ]]; do + current_pkg="${packages_to_check[0]}" + packages_to_check=("${packages_to_check[@]:1}") + + # Skip if already processed + [[ -n "${seen_packages[$current_pkg]}" ]] && continue + seen_packages[$current_pkg]=1 + + # Get dependencies for this package + while IFS= read -r dep; do + [[ -z "$dep" ]] && continue + [[ -n "${seen_packages[$dep]}" ]] && continue + + # Check if this dependency needs building + if check_needs_build "$dep"; then + # Add to build list if not already there + already_in_list=0 + for existing_pkg in "${PACKAGES_TO_BUILD[@]}"; do + if [[ "$existing_pkg" == "$dep" ]]; then + already_in_list=1 + break + fi + done + + if [[ $already_in_list -eq 0 ]]; then + echo " -> Adding dependency: $dep" + PACKAGES_TO_BUILD+=("$dep") + packages_to_check+=("$dep") + fi + fi + done < <(get_package_deps "$current_pkg") + done + + echo "==> ${#PACKAGES_TO_BUILD[@]} package(s) to build (including dependencies): ${PACKAGES_TO_BUILD[@]}" echo "==> Determining build order based on dependencies..." # Second pass: order only the packages that need building @@ -352,6 +487,18 @@ else for pkg in "${ORDERED_PACKAGES[@]}"; do ((TOTAL_COUNT++)) build_package "$pkg" + + # Clean up build artifacts to prevent memory exhaustion + # This is critical for long batch builds with many packages + echo " -> Cleaning up build artifacts..." + cd /src + rm -rf "$pkg" 2>/dev/null || true + + # Clean temporary files (but keep package caches) + find /tmp -type f -name "*.tar.*" -o -name "*.zip" -o -name "*.log" 2>/dev/null | xargs rm -f 2>/dev/null || true + + # Force memory sync + sync done fi diff --git a/pkgbuilds/aquamarine-git/.SRCINFO b/pkgbuilds/aquamarine-git/.SRCINFO new file mode 100644 index 00000000..bab0de57 --- /dev/null +++ b/pkgbuilds/aquamarine-git/.SRCINFO @@ -0,0 +1,33 @@ +pkgbase = aquamarine-git + pkgdesc = Aquamarine is a very light linux rendering backend library + pkgver = 0.8.0.r3.gc8282f4 + pkgrel = 1 + url = https://github.com/hyprwm/aquamarine + arch = x86_64 + arch = aarch64 + license = BSD-3-Clause + makedepends = cmake + makedepends = git + makedepends = ninja + depends = gcc-libs + depends = glibc + depends = hyprutils-git + depends = hyprwayland-scanner-git + depends = libdisplay-info + depends = libdrm + depends = libglvnd + depends = libinput + depends = mesa + depends = opengl-driver + depends = pixman + depends = pugixml + depends = seatd + depends = systemd-libs + depends = wayland + depends = wayland-protocols + provides = aquamarine=0.8.0 + conflicts = aquamarine + source = aquamarine::git+https://github.com/hyprwm/aquamarine.git + sha256sums = SKIP + +pkgname = aquamarine-git diff --git a/pkgbuilds/aquamarine-git/.gitignore b/pkgbuilds/aquamarine-git/.gitignore new file mode 100644 index 00000000..05c6d4d4 --- /dev/null +++ b/pkgbuilds/aquamarine-git/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!.SRCINFO +!PKGBUILD diff --git a/pkgbuilds/aquamarine-git/PKGBUILD b/pkgbuilds/aquamarine-git/PKGBUILD new file mode 100644 index 00000000..355b2b93 --- /dev/null +++ b/pkgbuilds/aquamarine-git/PKGBUILD @@ -0,0 +1,66 @@ +# Maintainer: dawfukfr +# Maintainer: alba4k +# Contributor: Caleb Maclennan + +_pkgname="aquamarine" +pkgname="$_pkgname-git" +pkgver=0.8.0.r3.gc8282f4 +pkgrel=1 +pkgdesc="Aquamarine is a very light linux rendering backend library" +arch=('x86_64' 'aarch64') +url="https://github.com/hyprwm/$_pkgname" +license=('BSD-3-Clause') + +depends=( + gcc-libs + glibc + hyprutils + hyprwayland-scanner + libdisplay-info + libdrm + libglvnd + libinput + mesa + opengl-driver + pixman + pugixml + seatd + systemd-libs + wayland + wayland-protocols +) +makedepends=( + cmake + git + ninja +) + +provides=("$_pkgname=${pkgver%%.r*}") +conflicts=("$_pkgname") + +_pkgsrc=$_pkgname +source=("$_pkgsrc::git+$url.git") +sha256sums=('SKIP') + +pkgver() { + cd "$_pkgsrc" + git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +build() { + local cmake_options=( + -B build + -S "$_pkgsrc" + -G Ninja + -W no-dev + -D CMAKE_BUILD_TYPE=None + -D CMAKE_INSTALL_PREFIX=/usr + ) + cmake "${cmake_options[@]}" + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + install -Dm644 "$_pkgsrc/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/pkgbuilds/dotnet-core-bin/.SRCINFO b/pkgbuilds/dotnet-core-bin/.SRCINFO new file mode 100644 index 00000000..1a91f2f8 --- /dev/null +++ b/pkgbuilds/dotnet-core-bin/.SRCINFO @@ -0,0 +1,87 @@ +pkgbase = dotnet-core-bin + pkgver = 9.0.10.sdk306 + pkgrel = 1 + url = https://www.microsoft.com/net/core + arch = x86_64 + arch = armv7h + arch = aarch64 + license = MIT + options = staticlibs + source = dotnet.sh + sha512sums = 768151c7179fb6a126b3de9cae01e363e8894f6fab384b1e2c5066c2adca4578638983b1b62aea10dd18045e6d6e8f8ea13280481134de94f004a118919b2c06 + source_x86_64 = https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.306/dotnet-sdk-9.0.306-linux-x64.tar.gz + sha512sums_x86_64 = bbb6bdc3c8048e7cc189759b406257839e7d4bd6b8b1ba4bcdaeea8f92340e6855231043dd73f902130ca5357af72b810bb51a4da4d1315a2927ff85f831f1d5 + source_armv7h = https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.306/dotnet-sdk-9.0.306-linux-arm.tar.gz + sha512sums_armv7h = 45f65947801961f8dc93c7ab7d28906eb34b0bd943e155fd7113bd9603304bb98cd1eab80c6bab5bf365aa9512c6796f1e820bd5c54226529a4f9f96cffeb31f + source_aarch64 = https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.306/dotnet-sdk-9.0.306-linux-arm64.tar.gz + sha512sums_aarch64 = 72667eb4167308fec780a9fbb59a16087d1015afa09ce771a04e21663782cabbd59c395587af6835dcc1f34e2e677c765e44dcc68a446d2caa4ed4a4a0e329ee + +pkgname = dotnet-host-bin + pkgdesc = A generic driver for the .NET Core Command Line Interface (binary) + depends = gcc-libs + depends = glibc + provides = dotnet-host + provides = dotnet-host=9.0.10 + conflicts = dotnet-host + +pkgname = aspnet-runtime-bin + pkgdesc = The ASP.NET Core runtime (binary) + depends = dotnet-runtime-bin + provides = aspnet-runtime=9.0.10 + provides = aspnet-runtime-9.0 + conflicts = aspnet-runtime=9.0.10 + conflicts = aspnet-runtime-9.0 + +pkgname = dotnet-runtime-bin + pkgdesc = The .NET Core runtime (binary) + depends = dotnet-host>=9.0.10 + depends = gcc-libs + depends = glibc + depends = icu + depends = libunwind + depends = zlib + depends = openssl + optdepends = lttng-ust: CoreCLR tracing + provides = dotnet-runtime=9.0.10 + provides = dotnet-runtime-9.0 + conflicts = dotnet-runtime=9.0.10 + conflicts = dotnet-runtime-9.0 + +pkgname = dotnet-sdk-bin + pkgdesc = The .NET Core SDK (binary) + depends = glibc + depends = gcc-libs + depends = dotnet-runtime-bin + depends = dotnet-targeting-pack-bin + depends = netstandard-targeting-pack-bin + depends = aspnet-runtime-bin + depends = aspnet-targeting-pack-bin + provides = dotnet-sdk-bin + provides = dotnet-sdk=9.0.10.sdk306 + provides = dotnet-sdk-9.0=9.0.10.sdk306 + conflicts = dotnet-sdk-bin + conflicts = dotnet-sdk=9.0.10.sdk306 + conflicts = dotnet-sdk-9.0 + +pkgname = netstandard-targeting-pack-bin + pkgdesc = The .NET Standard targeting pack (binary) + provides = netstandard-targeting-pack-2.1 + provides = netstandard-targeting-pack + conflicts = netstandard-targeting-pack-2.1 + conflicts = netstandard-targeting-pack + +pkgname = dotnet-targeting-pack-bin + pkgdesc = The .NET Core targeting pack (binary) + depends = netstandard-targeting-pack-bin + provides = dotnet-targeting-pack=9.0.10 + provides = dotnet-targeting-pack-9.0 + conflicts = dotnet-targeting-pack=9.0.10 + conflicts = dotnet-targeting-pack-9.0 + +pkgname = aspnet-targeting-pack-bin + pkgdesc = The ASP.NET Core targeting pack (binary) + depends = dotnet-targeting-pack-bin + provides = aspnet-targeting-pack=9.0.10 + provides = aspnet-targeting-pack-9.0 + conflicts = aspnet-targeting-pack=9.0.10 + conflicts = aspnet-targeting-pack-9.0 diff --git a/pkgbuilds/dotnet-core-bin/.gitignore b/pkgbuilds/dotnet-core-bin/.gitignore new file mode 100644 index 00000000..2feed020 --- /dev/null +++ b/pkgbuilds/dotnet-core-bin/.gitignore @@ -0,0 +1,6 @@ +src/ +pkg/ +dotnet-*.tar.gz +dotnet-*.tar.zst +aspnet-*.tar.zst +netstandard-*.tar.zst \ No newline at end of file diff --git a/pkgbuilds/dotnet-core-bin/PKGBUILD b/pkgbuilds/dotnet-core-bin/PKGBUILD new file mode 100644 index 00000000..e589a65d --- /dev/null +++ b/pkgbuilds/dotnet-core-bin/PKGBUILD @@ -0,0 +1,133 @@ +# Maintainer: Attila Greguss +# Co-Maintainer: Nate Plumm + +pkgbase=dotnet-core-bin +pkgname=( + 'dotnet-host-bin' + 'dotnet-runtime-8.0-bin' + 'aspnet-runtime-8.0-bin' + 'dotnet-sdk-8.0-bin' + 'netstandard-targeting-pack-bin' + 'dotnet-targeting-pack-8.0-bin' + 'aspnet-targeting-pack-8.0-bin' + ) +pkgver=8.0.21.sdk415 +_runtimever=8.0.21 +_sdkver=8.0.415 +_short_ver=8.0 +pkgrel=1 +arch=('x86_64' 'armv7h' 'aarch64') +url='https://www.microsoft.com/net/core' +license=('MIT') +options=('staticlibs') +source=('dotnet.sh') +source_armv7h=("https://builds.dotnet.microsoft.com/dotnet/Sdk/${_sdkver}/dotnet-sdk-${_sdkver}-linux-arm.tar.gz") +source_aarch64=("https://builds.dotnet.microsoft.com/dotnet/Sdk/${_sdkver}/dotnet-sdk-${_sdkver}-linux-arm64.tar.gz") +source_x86_64=("https://builds.dotnet.microsoft.com/dotnet/Sdk/${_sdkver}/dotnet-sdk-${_sdkver}-linux-x64.tar.gz") +sha512sums=('768151c7179fb6a126b3de9cae01e363e8894f6fab384b1e2c5066c2adca4578638983b1b62aea10dd18045e6d6e8f8ea13280481134de94f004a118919b2c06') +sha512sums_armv7h=('SKIP') +sha512sums_aarch64=('SKIP') +sha512sums_x86_64=('SKIP') + +package_dotnet-host-bin() { + pkgdesc='A generic driver for the .NET Core Command Line Interface (binary)' + provides=("dotnet-host" "dotnet-host=${_runtimever}") + depends=( + 'gcc-libs' + 'glibc' + ) + conflicts=('dotnet-host') + + install -dm 755 "${pkgdir}"/usr/{bin,lib,share/{dotnet,licenses/dotnet-host}} + cp -dr --no-preserve='ownership' dotnet host "${pkgdir}"/usr/share/dotnet/ + cp -dr --no-preserve='ownership' LICENSE.txt ThirdPartyNotices.txt "${pkgdir}"/usr/share/licenses/dotnet-host + ln -sf /usr/share/dotnet/dotnet "${pkgdir}"/usr/bin/dotnet + ln -sf /usr/share/dotnet/host/fxr/"${_runtimever}"/libhostfxr.so "${pkgdir}"/usr/lib/libhostfxr.so + install -Dm 644 "${srcdir}"/dotnet.sh -t "${pkgdir}"/etc/profile.d/ +} + +package_dotnet-runtime-8.0-bin() { + pkgdesc='The .NET Core 8.0 runtime (binary)' + depends=( + "dotnet-host>=${_runtimever}" + 'gcc-libs' + 'glibc' + 'icu' + 'libunwind' + 'zlib' + 'openssl' + ) + optdepends=('lttng-ust: CoreCLR tracing') + provides=("dotnet-runtime=${_runtimever}" "dotnet-runtime-${_short_ver}" "dotnet-runtime-bin") + conflicts=("dotnet-runtime=${_runtimever}" "dotnet-runtime-${_short_ver}") + + install -dm 755 "${pkgdir}"/usr/share/{dotnet/shared,licenses} + cp -dr --no-preserve='ownership' shared/Microsoft.NETCore.App "${pkgdir}"/usr/share/dotnet/shared/ + ln -s dotnet-host-bin "${pkgdir}"/usr/share/licenses/dotnet-runtime-8.0-bin +} + +package_aspnet-runtime-8.0-bin() { + pkgdesc='The ASP.NET Core 8.0 runtime (binary)' + depends=('dotnet-runtime-8.0-bin') + provides=("aspnet-runtime=${_runtimever}" "aspnet-runtime-${_short_ver}" "aspnet-runtime-bin") + conflicts=("aspnet-runtime=${_runtimever}" "aspnet-runtime-${_short_ver}") + + install -dm 755 "${pkgdir}"/usr/share/{dotnet/shared,licenses} + cp -dr --no-preserve='ownership' shared/Microsoft.AspNetCore.App "${pkgdir}"/usr/share/dotnet/shared/ + ln -s dotnet-host-bin "${pkgdir}"/usr/share/licenses/aspnet-runtime-8.0-bin +} + +package_dotnet-sdk-8.0-bin() { + pkgdesc='The .NET Core 8.0 SDK (binary)' + depends=( + 'glibc' + 'gcc-libs' + 'dotnet-runtime-8.0-bin' + 'dotnet-targeting-pack-8.0-bin' + 'netstandard-targeting-pack-bin' + 'aspnet-runtime-8.0-bin' + 'aspnet-targeting-pack-8.0-bin' + ) + provides=("dotnet-sdk-bin" "dotnet-sdk=${pkgver}" "dotnet-sdk-${_short_ver}=${pkgver}") + conflicts=("dotnet-sdk-bin" "dotnet-sdk=${pkgver}" "dotnet-sdk-${_short_ver}") + + install -dm 755 "${pkgdir}"/usr/share/{dotnet,licenses} + cp -dr --no-preserve='ownership' sdk sdk-manifests templates "${pkgdir}"/usr/share/dotnet/ + ln -s dotnet-host-bin "${pkgdir}"/usr/share/licenses/dotnet-sdk-8.0-bin +} + +package_netstandard-targeting-pack-bin() { + pkgdesc='The .NET Standard targeting pack (binary)' + provides=('netstandard-targeting-pack-2.1' 'netstandard-targeting-pack') + conflicts=('netstandard-targeting-pack-2.1' 'netstandard-targeting-pack') + + install -dm 755 "${pkgdir}"/usr/share/{dotnet,dotnet/packs,licenses} + cp -dr --no-preserve='ownership' packs/NETStandard.Library.Ref "${pkgdir}"/usr/share/dotnet/packs/ + ln -s dotnet-host-bin "${pkgdir}"/usr/share/licenses/netstandard-targeting-pack +} + +package_dotnet-targeting-pack-8.0-bin() { + pkgdesc='The .NET Core 8.0 targeting pack (binary)' + depends=(netstandard-targeting-pack-bin) + provides=(dotnet-targeting-pack=${_runtimever} dotnet-targeting-pack-${_short_ver} dotnet-targeting-pack-bin) + conflicts=(dotnet-targeting-pack=${_runtimever} dotnet-targeting-pack-${_short_ver}) + + if [ $CARCH = 'x86_64' ]; then msarch=x64; + elif [ $CARCH = 'armv7h' ]; then msarch=arm; + elif [ $CARCH = 'aarch64' ]; then msarch=arm64; fi + + install -dm 755 "${pkgdir}"/usr/share/{dotnet,dotnet/packs,licenses} + cp -dr --no-preserve='ownership' packs/Microsoft.NETCore.App.{Host.linux-${msarch},Ref} "${pkgdir}"/usr/share/dotnet/packs/ + ln -s dotnet-host-bin "${pkgdir}"/usr/share/licenses/dotnet-targeting-pack-8.0-bin +} + +package_aspnet-targeting-pack-8.0-bin() { + pkgdesc='The ASP.NET Core 8.0 targeting pack (binary)' + depends=(dotnet-targeting-pack-8.0-bin) + provides=(aspnet-targeting-pack=${_runtimever} aspnet-targeting-pack-${_short_ver} aspnet-targeting-pack-bin) + conflicts=(aspnet-targeting-pack=${_runtimever} aspnet-targeting-pack-${_short_ver}) + + install -dm 755 "${pkgdir}"/usr/share/{dotnet,dotnet/packs,licenses} + cp -dr --no-preserve='ownership' packs/Microsoft.AspNetCore.App.Ref "${pkgdir}"/usr/share/dotnet/packs/ + ln -s dotnet-host-bin "${pkgdir}"/usr/share/licenses/aspnet-targeting-pack-8.0-bin +} \ No newline at end of file diff --git a/pkgbuilds/dotnet-core-bin/dotnet.sh b/pkgbuilds/dotnet-core-bin/dotnet.sh new file mode 100755 index 00000000..48b6ee69 --- /dev/null +++ b/pkgbuilds/dotnet-core-bin/dotnet.sh @@ -0,0 +1,19 @@ +# Set location for AppHost lookup +[ -z "$DOTNET_ROOT" ] && export DOTNET_ROOT=/usr/share/dotnet + +# Add dotnet directory to PATH, according to docs it must be added, plus VSCode C# Dev Kit doesn't work without this. +# See https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#set-environment-variables-system-wide +case "$PATH" in + *"$DOTNET_ROOT"* ) true ;; + * ) PATH="$PATH:$DOTNET_ROOT" ;; +esac + +# Add dotnet tools directory to PATH +[ -z "$DOTNET_TOOLS_PATH" ] && export DOTNET_TOOLS_PATH="$HOME/.dotnet/tools" +case "$PATH" in + *"$DOTNET_TOOLS_PATH"* ) true ;; + * ) PATH="$PATH:$DOTNET_TOOLS_PATH" ;; +esac + +# Extract self-contained executables under HOME to avoid multi-user issues from using the default '/var/tmp' +[ -z "$DOTNET_BUNDLE_EXTRACT_BASE_DIR" ] && export DOTNET_BUNDLE_EXTRACT_BASE_DIR="${XDG_CACHE_HOME:-"$HOME"/.cache}/dotnet_bundle_extract" diff --git a/pkgbuilds/fcitx5/PKGBUILD b/pkgbuilds/fcitx5/PKGBUILD index 441a0477..09bf2722 100644 --- a/pkgbuilds/fcitx5/PKGBUILD +++ b/pkgbuilds/fcitx5/PKGBUILD @@ -6,7 +6,7 @@ pkgver=5.1.16 _dictver=20121020 pkgrel=1 pkgdesc="Next generation of fcitx" -arch=('x86_64') +arch=('x86_64' 'aarch64') url="https://github.com/fcitx/fcitx5" license=('LGPL-2.1-or-later AND Unicode-DFS-2016') conflicts=('fcitx') diff --git a/pkgbuilds/fpm/.SRCINFO b/pkgbuilds/fpm/.SRCINFO new file mode 100644 index 00000000..49b9f070 --- /dev/null +++ b/pkgbuilds/fpm/.SRCINFO @@ -0,0 +1,21 @@ +pkgbase = fpm + pkgdesc = Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity. + pkgver = 1.17.0 + pkgrel = 1 + url = https://github.com/jordansissel/fpm + arch = any + license = MIT + depends = ruby + depends = ruby-cabin + depends = ruby-backports + depends = ruby-arr-pm + depends = ruby-clamp + depends = ruby-rexml + depends = ruby-pleaserun + depends = ruby-stud + optdepends = squashfs-tools: Support for snaps + options = !emptydirs + source = fpm-1.17.0.tar.gz::https://github.com/jordansissel/fpm/archive/v1.17.0.tar.gz + sha256sums = 006abf20b88261a96a64adf473d78f1bd4361265d909b2357cb506629258dd06 + +pkgname = fpm diff --git a/pkgbuilds/fpm/.gitignore b/pkgbuilds/fpm/.gitignore new file mode 100644 index 00000000..d62bca88 --- /dev/null +++ b/pkgbuilds/fpm/.gitignore @@ -0,0 +1,7 @@ +src +pkg +dmarc-cat +*.tar.xz +*.tar.gz +*.tar.zst +*.log diff --git a/pkgbuilds/fpm/PKGBUILD b/pkgbuilds/fpm/PKGBUILD new file mode 100644 index 00000000..57af86a1 --- /dev/null +++ b/pkgbuilds/fpm/PKGBUILD @@ -0,0 +1,34 @@ +# Maintainer: Mark Weiman + +_gemname=fpm +pkgname=$_gemname +pkgver=1.17.0 +pkgrel=1 +pkgdesc='Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.' +arch=(any) +url="https://github.com/jordansissel/${_gemname}" +license=('MIT') +depends=(ruby + ruby-cabin + ruby-backports + ruby-arr-pm + ruby-clamp + ruby-rexml + ruby-pleaserun + ruby-stud) +optdepends=('squashfs-tools: Support for snaps') +options=(!emptydirs) +source=("$pkgname-$pkgver.tar.gz::https://github.com/jordansissel/fpm/archive/v${pkgver}.tar.gz") +sha256sums=('006abf20b88261a96a64adf473d78f1bd4361265d909b2357cb506629258dd06') + +build() { + cd $srcdir/$_gemname-$pkgver + make gem +} + +package() { + local _gemdir="$(ruby -e'puts Gem.default_dir')" + gem install --ignore-dependencies --no-user-install --no-document -i "$pkgdir/$_gemdir" -n "$pkgdir/usr/bin" $srcdir/$_gemname-$pkgver/$_gemname-$pkgver.gem + rm "$pkgdir/$_gemdir/cache/$_gemname-$pkgver.gem" + install -D -m644 "$pkgdir/$_gemdir/gems/$_gemname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/pkgbuilds/ghostty-git/PKGBUILD b/pkgbuilds/ghostty-git/PKGBUILD new file mode 100644 index 00000000..bf162d66 --- /dev/null +++ b/pkgbuilds/ghostty-git/PKGBUILD @@ -0,0 +1,91 @@ +# Maintainer: Gregory Anders +# Maintainer: Caleb Maclennan +# Contributor: kaij + +_pkgbase=ghostty +pkgname=($_pkgbase-git $_pkgbase-shell-integration-git $_pkgbase-terminfo-git) +pkgrel=1 +pkgver=1.1.2.r1500.gf1f9d5e +pkgdesc="Fast, native, feature-rich terminal emulator pushing modern features" +arch=(x86_64 aarch64 i686) +url="https://github.com/ghostty-org/$_pkgbase" +license=(MIT) +depends=(bzip2 + fontconfig libfontconfig.so + freetype2 libfreetype.so + gcc-libs # ld-linux-x86-64.so + glibc # libc.so libm.so + glib2 libglib-2.0.so libgio-2.0.so libgobject-2.0.so + gtk4 libgtk-4.so + gtk4-layer-shell + libx11 # libX11.so + harfbuzz libharfbuzz.so + libadwaita libadwaita-1.so + libpng + oniguruma # libonig.so + pixman + wayland libwayland-client.so + zlib) +makedepends=(blueprint-compiler + git + pandoc-cli + zig) +source=("git+$url.git") +sha256sums=('SKIP') + +prepare() { + cd "$_pkgbase" + ZIG_GLOBAL_CACHE_DIR="$srcdir/zig-global-cache/" ./nix/build-support/fetch-zig-cache.sh +} + +pkgver() { + cd "$_pkgbase" + git describe --long --tags --abbrev=7 --match="v*" HEAD | + sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +build() { + cd "$_pkgbase" + DESTDIR=build zig build \ + --summary all \ + --prefix "/usr" \ + --system "$srcdir/zig-global-cache/p" \ + -Doptimize=ReleaseFast \ + -Dgtk-wayland=true \ + -Dgtk-x11=true \ + -Dcpu=baseline \ + -Dpie=true \ + -Demit-docs \ + -Dversion-string="${pkgver%.r*}-r${pkgver#*.r}-$pkgrel-arch" +} + +package_ghostty-git() { + depends+=("${_pkgbase}"-shell-integration-git "${_pkgbase}"-terminfo-git) + provides=("${pkgname%-git}=$pkgver") + conflicts=(${pkgname%-git}) + cd "$_pkgbase" + cp -a build/* "$pkgdir/" + install -Dm0644 -t "${pkgdir}/usr/share/licenses/$pkgname/" LICENSE + rm -r "$pkgdir"/usr/share/terminfo + rm -r "$pkgdir"/usr/share/ghostty/shell-integration +} + +package_ghostty-shell-integration-git() { + pkgdesc='Shell integration scripts for ghostty' + depends=() + provides=("${pkgname%-git}=$pkgver") + conflicts=(${pkgname%-git}) + cd "$_pkgbase" + mkdir -p "$pkgdir/usr/share/ghostty/shell-integration" + cp -r build/usr/share/ghostty/shell-integration/* "$pkgdir/usr/share/ghostty/shell-integration/" +} + +package_ghostty-terminfo-git() { + pkgdesc='Terminfo for ghostty' + depends=() + provides=("${pkgname%-git}=$pkgver") + conflicts=(${pkgname%-git}) + cd "$_pkgbase" + mkdir -p "$pkgdir/usr/share/terminfo" + cp -r build/usr/share/terminfo/* "$pkgdir/usr/share/terminfo/" +} diff --git a/pkgbuilds/hyprcursor-git/.SRCINFO b/pkgbuilds/hyprcursor-git/.SRCINFO new file mode 100644 index 00000000..f7e44c5b --- /dev/null +++ b/pkgbuilds/hyprcursor-git/.SRCINFO @@ -0,0 +1,23 @@ +pkgbase = hyprcursor-git + pkgdesc = The hyprland cursor format, library and utilities + pkgver = 0.1.12.r1.g2fd3642 + pkgrel = 1 + url = https://github.com/hyprwm/hyprcursor + arch = x86_64 + arch = aarch64 + license = BSD-3-Clause + makedepends = git + makedepends = cmake + makedepends = ninja + depends = cairo + depends = hyprlang-git + depends = librsvg + depends = libzip + depends = tomlplusplus + provides = hyprcursor=0.1.12.r1.g2fd3642 + provides = libhyprcursor.so + conflicts = hyprcursor + source = hyprcursor::git+https://github.com/hyprwm/hyprcursor.git + sha256sums = SKIP + +pkgname = hyprcursor-git diff --git a/pkgbuilds/hyprcursor-git/.gitignore b/pkgbuilds/hyprcursor-git/.gitignore new file mode 100644 index 00000000..05c6d4d4 --- /dev/null +++ b/pkgbuilds/hyprcursor-git/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!.SRCINFO +!PKGBUILD diff --git a/pkgbuilds/hyprcursor-git/PKGBUILD b/pkgbuilds/hyprcursor-git/PKGBUILD new file mode 100644 index 00000000..c8e72535 --- /dev/null +++ b/pkgbuilds/hyprcursor-git/PKGBUILD @@ -0,0 +1,52 @@ +# Maintainer: alba4k + +_pkgname="hyprcursor" +pkgname="$_pkgname-git" +pkgver=0.1.12.r1.g2fd3642 +pkgrel=2 +pkgdesc="The hyprland cursor format, library and utilities" +arch=('x86_64' 'aarch64') +url="https://github.com/hyprwm/hyprcursor" +license=('BSD-3-Clause') +depends=( + cairo + hyprlang + librsvg + libzip + tomlplusplus +) +makedepends=( + git + cmake + ninja +) + +conflicts=("$_pkgname") +provides=("$_pkgname=${pkgver}" "libhyprcursor.so=0-64") + +_pkgsrc=$_pkgname +source=("$_pkgsrc::git+$url.git") +sha256sums=('SKIP') + +pkgver() { + cd "$_pkgsrc" + git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +build() { + local cmake_options=( + -B build + -S "$_pkgsrc" + -G Ninja + -W no-dev + -D CMAKE_BUILD_TYPE=None + -D CMAKE_INSTALL_PREFIX=/usr + ) + cmake "${cmake_options[@]}" + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + install -Dm644 "$_pkgsrc/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/pkgbuilds/hyprgraphics-git/.SRCINFO b/pkgbuilds/hyprgraphics-git/.SRCINFO new file mode 100644 index 00000000..626d8961 --- /dev/null +++ b/pkgbuilds/hyprgraphics-git/.SRCINFO @@ -0,0 +1,28 @@ +pkgbase = hyprgraphics-git + pkgdesc = Hyprland graphics / resource utilities + pkgver = 0.1.5.r2.g157cc52 + pkgrel = 1 + url = https://github.com/hyprwm/hyprgraphics + arch = x86_64 + arch = aarch64 + license = BSD-3-Clause + makedepends = cmake + makedepends = git + makedepends = ninja + depends = cairo + depends = file + depends = hyprutils-git + depends = libjpeg + depends = libjxl + depends = libpng + depends = librsvg + depends = libwebp + depends = pango + depends = pixman + provides = hyprgraphics=0.1.5 + provides = libhyprgraphics.so + conflicts = hyprgraphics + source = hyprgraphics::git+https://github.com/hyprwm/hyprgraphics.git + sha256sums = SKIP + +pkgname = hyprgraphics-git diff --git a/pkgbuilds/hyprgraphics-git/.gitignore b/pkgbuilds/hyprgraphics-git/.gitignore new file mode 100644 index 00000000..05c6d4d4 --- /dev/null +++ b/pkgbuilds/hyprgraphics-git/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!.SRCINFO +!PKGBUILD diff --git a/pkgbuilds/hyprgraphics-git/PKGBUILD b/pkgbuilds/hyprgraphics-git/PKGBUILD new file mode 100644 index 00000000..51d5ed13 --- /dev/null +++ b/pkgbuilds/hyprgraphics-git/PKGBUILD @@ -0,0 +1,58 @@ +# Maintainer: alba4k + +_pkgname="hyprgraphics" +pkgname="$_pkgname-git" +pkgver=0.1.5.r2.g157cc52 +pkgrel=2 +pkgdesc="Hyprland graphics / resource utilities" +arch=('x86_64' 'aarch64') +url="https://github.com/hyprwm/hyprgraphics" +license=('BSD-3-Clause') + +depends=( + cairo + file + hyprutils + libjpeg + libjxl + libpng + librsvg + libwebp + pango + pixman +) +makedepends=( + cmake + git + ninja +) + +provides=("$_pkgname=${pkgver%%.r*}" "libhyprgraphics.so=1-64") +conflicts=("$_pkgname") + +_pkgsrc=$_pkgname +source=("$_pkgsrc::git+$url.git") +sha256sums=('SKIP') + +pkgver() { + cd "$_pkgsrc" + git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +build() { + local cmake_options=( + -B build + -S "$_pkgsrc" + -G Ninja + -W no-dev + -D CMAKE_BUILD_TYPE=None + -D CMAKE_INSTALL_PREFIX=/usr + ) + cmake "${cmake_options[@]}" + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + install -Dm644 "$_pkgsrc/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/pkgbuilds/hyprland/PKGBUILD b/pkgbuilds/hyprland/PKGBUILD new file mode 100644 index 00000000..71c37953 --- /dev/null +++ b/pkgbuilds/hyprland/PKGBUILD @@ -0,0 +1,155 @@ +# Maintainer: Omarchy +# Based on official Arch Linux hyprland package +# Modified for ARM with GCC 14 compatibility patches + +pkgname=hyprland +pkgver=0.51.1 +pkgrel=2 +pkgdesc='A highly customizable dynamic tiling Wayland compositor (ARM with GCC 14 patches)' +arch=('aarch64') +url='https://github.com/hyprwm/Hyprland' +license=('BSD-3-Clause') +depends=( + aquamarine + cairo + gcc-libs + glib2 + glslang + hyprcursor + hyprgraphics + hyprlang + hyprutils + libdisplay-info + libdrm + libglvnd + libinput + libliftoff + libx11 + libxcb + libxcomposite + libxcursor + libxfixes + libxkbcommon + libxrender + mesa + pango + pixman + re2 + seatd + systemd-libs + tomlplusplus + wayland + wayland-protocols + xcb-proto + xcb-util + xcb-util-errors + xcb-util-keysyms + xcb-util-renderutil + xcb-util-wm + xorg-xwayland +) +makedepends=( + cmake + meson + ninja + glaze + hyprland-protocols + vulkan-headers + xorgproto +) +source=( + "https://github.com/hyprwm/Hyprland/releases/download/v${pkgver}/source-v${pkgver}.tar.gz" +) +sha256sums=( + 'f562b8d1efc9934abd9678e3a4d7bb5a56adc6ef89c4679aba269de470e66131' +) + +prepare() { + cd "hyprland-source" + + # Apply Arch Linux build modifications + msg2 "Applying Arch Linux build configuration..." + + # Add CMAKE_SKIP_RPATH=ON to release target (matches Arch PKGBUILD) + sed -i -e '/^release:/{n;s/-D/-DCMAKE_SKIP_RPATH=ON -D/}' Makefile + + # Remove version script (workaround for Arch Linux issue #15) + rm -fv scripts/generateVersion.sh + + # Apply GCC 14 compatibility patch (#embed requires GCC 15+) + msg2 "Applying GCC 14 compatibility patch for #embed directive..." + + if [[ ! -f "example/hyprland.conf" ]]; then + error "example/hyprland.conf not found" + return 1 + fi + + # Generate GCC 14 compatible defaultConfig.hpp + cp src/config/defaultConfig.hpp src/config/defaultConfig.hpp.orig + + cat > src/config/defaultConfig.hpp << 'HEADER_EOF' +#pragma once + +#include + +inline constexpr std::string_view AUTOGENERATED_PREFIX = R"#( +# ####################################################################################### +# AUTOGENERATED HYPRLAND CONFIG. +# EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS. +# ####################################################################################### + +autogenerated = 1 # remove this line to remove the warning + +)#"; + +// GCC 14 compatibility: Replaced #embed with inline string +// #embed requires GCC 15+ (C++26 feature not available in GCC 14.2.1 on ARM) +// This approach matches Hyprland 0.49.0 methodology +inline const std::string EXAMPLE_CONFIG = R"#( +HEADER_EOF + + # Append the config content + cat example/hyprland.conf >> src/config/defaultConfig.hpp + + # Close the raw string literal + cat >> src/config/defaultConfig.hpp << 'FOOTER_EOF' +)#"; +FOOTER_EOF + + msg2 "Applying GCC 14 compatibility fixes for string concatenation and C++23 APIs..." + + # Fix string concatenation template deduction in hyprctl/main.cpp + cp hyprctl/main.cpp hyprctl/main.cpp.orig + + # Fix pattern 1: getRuntimeDir() + "/" + instanceSignature + "/.socket.sock" + sed -i 's|std::string socketPath = getRuntimeDir() + "/" + instanceSignature + "/.socket.sock";|std::string socketPath = getRuntimeDir();\n socketPath += "/";\n socketPath += instanceSignature;\n socketPath += "/.socket.sock";|' hyprctl/main.cpp + + # Fix pattern 2: getRuntimeDir() + "/" + instanceSignature + "/" + filename + sed -i 's|std::string socketPath = getRuntimeDir() + "/" + instanceSignature + "/" + filename;|std::string socketPath = getRuntimeDir();\n socketPath += "/";\n socketPath += instanceSignature;\n socketPath += "/";\n socketPath += filename;|' hyprctl/main.cpp + + # Fix pattern 3: fullRequest = fullArgs + "/" + fullRequest + sed -i 's|fullRequest = fullArgs + "/" + fullRequest;|fullArgs += "/";\n fullArgs += fullRequest;\n fullRequest = fullArgs;|' hyprctl/main.cpp + + # Fix ternary operator type deduction in src/xwayland/XWM.hpp + cp src/xwayland/XWM.hpp src/xwayland/XWM.hpp.orig + sed -i 's|return m_connection ? \*m_connection : nullptr;|return m_connection ? *m_connection : static_cast(nullptr);|' src/xwayland/XWM.hpp + + # Fix C++23 insert_range in src/helpers/Monitor.cpp + cp src/helpers/Monitor.cpp src/helpers/Monitor.cpp.orig + sed -i 's#requestedModes\.insert_range(requestedModes\.end(), sortedModes | std::views::reverse);#std::ranges::copy(sortedModes | std::views::reverse, std::back_inserter(requestedModes));#' src/helpers/Monitor.cpp + + msg2 "GCC 14 compatibility patches applied" +} + +build() { + cd "hyprland-source" + make release PREFIX=/usr +} + +package() { + cd "hyprland-source" + make install PREFIX=/usr DESTDIR="$pkgdir" + + # License + install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/pkgbuilds/hyprlang-git/.SRCINFO b/pkgbuilds/hyprlang-git/.SRCINFO new file mode 100644 index 00000000..a013a7db --- /dev/null +++ b/pkgbuilds/hyprlang-git/.SRCINFO @@ -0,0 +1,22 @@ +pkgbase = hyprlang-git + pkgdesc = The official implementation library for the hypr config language + pkgver = 0.6.0.r10.g72df386 + pkgrel = 1 + url = https://github.com/hyprwm/hyprlang + arch = x86_64 + arch = aarch64 + license = LGPL-3.0-or-later + makedepends = cmake + makedepends = git + makedepends = ninja + makedepends = pixman + depends = gcc-libs + depends = glibc + depends = hyprutils-git + provides = hyprlang=0.6.0 + provides = libhyprlang.so + conflicts = hyprlang + source = hyprlang::git+https://github.com/hyprwm/hyprlang.git + sha256sums = SKIP + +pkgname = hyprlang-git diff --git a/pkgbuilds/hyprlang-git/.gitignore b/pkgbuilds/hyprlang-git/.gitignore new file mode 100644 index 00000000..05c6d4d4 --- /dev/null +++ b/pkgbuilds/hyprlang-git/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!.SRCINFO +!PKGBUILD diff --git a/pkgbuilds/hyprlang-git/PKGBUILD b/pkgbuilds/hyprlang-git/PKGBUILD new file mode 100644 index 00000000..9dc52a2f --- /dev/null +++ b/pkgbuilds/hyprlang-git/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: zjeffer +# Maintainer: alba4k + +_pkgname="hyprlang" +pkgname="$_pkgname-git" +pkgver=0.6.0.r10.g72df386 +pkgrel=2 +pkgdesc="The official implementation library for the hypr config language" +arch=('x86_64' 'aarch64') +url="https://github.com/hyprwm/hyprlang" +license=('LGPL-3.0-or-later') + +depends=( + gcc-libs + glibc + hyprutils +) +makedepends=( + cmake + git + ninja + pixman +) + +provides=("$_pkgname=${pkgver%%.r*}" "libhyprlang.so=2-64") +conflicts=("$_pkgname") + +_pkgsrc=$_pkgname +source=("$_pkgsrc::git+$url.git") +sha256sums=('SKIP') + +pkgver() { + cd "$_pkgsrc" + git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +build() { + local cmake_options=( + -B build + -S "$_pkgsrc" + -G Ninja + -W no-dev + -D CMAKE_BUILD_TYPE=None + -D CMAKE_INSTALL_PREFIX=/usr + ) + cmake "${cmake_options[@]}" + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + install -Dm644 "$_pkgsrc/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/pkgbuilds/hyprshade/PKGBUILD b/pkgbuilds/hyprshade/PKGBUILD index f07dd2dc..c52d1f28 100644 --- a/pkgbuilds/hyprshade/PKGBUILD +++ b/pkgbuilds/hyprshade/PKGBUILD @@ -11,12 +11,14 @@ _py_deps=( more-itertools ) depends=( - hyprland "${_py_deps[@]/#/python-}" util-linux ) makedepends=(git python-{build,hatchling,installer}) -optdepends=('systemd: activate shader on schedule') +optdepends=( + 'hyprland: required for hyprshade to function' + 'systemd: activate shader on schedule' +) provides=($pkgname) source=("https://files.pythonhosted.org/packages/source/${pkgname::1}/$pkgname/$pkgname-$pkgver.tar.gz" "https://raw.githubusercontent.com/loqusion/$pkgname/$pkgver/examples/config.toml") diff --git a/pkgbuilds/hyprutils-git/.SRCINFO b/pkgbuilds/hyprutils-git/.SRCINFO new file mode 100644 index 00000000..5e3484b9 --- /dev/null +++ b/pkgbuilds/hyprutils-git/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = hyprutils-git + pkgdesc = Hyprland utilities library used across the ecosystem + pkgver = 0.7.0.r0.g05878d9 + pkgrel = 1 + url = https://github.com/hyprwm/hyprutils + arch = x86_64 + arch = aarch64 + license = BSD-3-Clause + makedepends = cmake + makedepends = git + makedepends = ninja + depends = pixman + provides = hyprutils=0.7.0 + provides = libhyprutils.so + conflicts = hyprutils + source = hyprutils::git+https://github.com/hyprwm/hyprutils.git + sha256sums = SKIP + +pkgname = hyprutils-git diff --git a/pkgbuilds/hyprutils-git/.gitignore b/pkgbuilds/hyprutils-git/.gitignore new file mode 100644 index 00000000..05c6d4d4 --- /dev/null +++ b/pkgbuilds/hyprutils-git/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!.SRCINFO +!PKGBUILD diff --git a/pkgbuilds/hyprutils-git/PKGBUILD b/pkgbuilds/hyprutils-git/PKGBUILD new file mode 100644 index 00000000..f5ce688d --- /dev/null +++ b/pkgbuilds/hyprutils-git/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: alba4k + +_pkgname="hyprutils" +pkgname="$_pkgname-git" +pkgver=0.7.0.r0.g05878d9 +pkgrel=2 +pkgdesc="Hyprland utilities library used across the ecosystem" +arch=('x86_64' 'aarch64') +url="https://github.com/hyprwm/hyprutils" +license=('BSD-3-Clause') + +depends=( + pixman +) +makedepends=( + cmake + git + ninja +) + +provides=("$_pkgname=${pkgver%%.r*}" "libhyprutils.so=9-64") +conflicts=("$_pkgname") + +_pkgsrc=$_pkgname +source=("$_pkgsrc::git+$url.git") +sha256sums=('SKIP') + +pkgver() { + cd "$_pkgsrc" + git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +build() { + local cmake_options=( + -B build + -S "$_pkgsrc" + -G Ninja + -W no-dev + -D CMAKE_BUILD_TYPE=None + -D CMAKE_INSTALL_PREFIX=/usr + ) + cmake "${cmake_options[@]}" + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + install -Dm644 "$_pkgsrc/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/pkgbuilds/hyprwayland-scanner-git/.SRCINFO b/pkgbuilds/hyprwayland-scanner-git/.SRCINFO new file mode 100644 index 00000000..b8dd86f1 --- /dev/null +++ b/pkgbuilds/hyprwayland-scanner-git/.SRCINFO @@ -0,0 +1,18 @@ +pkgbase = hyprwayland-scanner-git + pkgdesc = A Hyprland implementation of wayland-scanner, in and for C++ + pkgver = 0.4.4.r2.g206367a + pkgrel = 1 + url = https://github.com/hyprwm/hyprwayland-scanner + arch = x86_64 + arch = aarch64 + license = BSD-3-Clause + makedepends = cmake + makedepends = git + makedepends = ninja + depends = pugixml + provides = hyprwayland-scanner=0.4.4 + conflicts = hyprwayland-scanner + source = hyprwayland-scanner::git+https://github.com/hyprwm/hyprwayland-scanner.git + sha256sums = SKIP + +pkgname = hyprwayland-scanner-git diff --git a/pkgbuilds/hyprwayland-scanner-git/.gitignore b/pkgbuilds/hyprwayland-scanner-git/.gitignore new file mode 100644 index 00000000..05c6d4d4 --- /dev/null +++ b/pkgbuilds/hyprwayland-scanner-git/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!.SRCINFO +!PKGBUILD diff --git a/pkgbuilds/hyprwayland-scanner-git/PKGBUILD b/pkgbuilds/hyprwayland-scanner-git/PKGBUILD new file mode 100644 index 00000000..a7184d2c --- /dev/null +++ b/pkgbuilds/hyprwayland-scanner-git/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: alba4k + +_pkgname="hyprwayland-scanner" +pkgname="$_pkgname-git" +pkgver=0.4.4.r2.g206367a +pkgrel=1 +pkgdesc="A Hyprland implementation of wayland-scanner, in and for C++" +arch=('x86_64' 'aarch64') +url="https://github.com/hyprwm/hyprwayland-scanner" +license=('BSD-3-Clause') + +depends=( + pugixml +) +makedepends=( + cmake + git + ninja +) + +provides=("$_pkgname=${pkgver%%.r*}") +conflicts=("$_pkgname") + +_pkgsrc=$_pkgname +source=("$_pkgsrc::git+$url.git") +sha256sums=('SKIP') + +pkgver() { + cd "$_pkgsrc" + git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +build() { + local cmake_options=( + -B build + -S "$_pkgsrc" + -G Ninja + -W no-dev + -D CMAKE_BUILD_TYPE=None + -D CMAKE_INSTALL_PREFIX=/usr + ) + cmake "${cmake_options[@]}" + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + install -Dm644 "$_pkgsrc/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname/" +} diff --git a/pkgbuilds/obs-studio-git/.SRCINFO b/pkgbuilds/obs-studio-git/.SRCINFO new file mode 100644 index 00000000..748056eb --- /dev/null +++ b/pkgbuilds/obs-studio-git/.SRCINFO @@ -0,0 +1,70 @@ +pkgbase = obs-studio-git + pkgdesc = Free, open source software for live streaming and recording + pkgver = 32.0.1.r0.g0b12296 + pkgrel = 2 + url = https://github.com/obsproject/obs-studio + arch = i686 + arch = x86_64 + license = GPL-2.0-or-later + makedepends = asio + makedepends = cmake + makedepends = extra-cmake-modules + makedepends = ffnvcodec-headers + makedepends = git + makedepends = libfdk-aac + makedepends = luajit + makedepends = ninja + makedepends = nlohmann-json + makedepends = python + makedepends = qt6-wayland + makedepends = simde + makedepends = sndio + makedepends = swig + makedepends = uthash + makedepends = vlc + makedepends = wayland + makedepends = websocketpp + makedepends = x264 + makedepends = xdg-desktop-portal + depends = curl + depends = ffmpeg + depends = jack + depends = jansson + depends = libdatachannel + depends = libpipewire + depends = librist + depends = libvpl + depends = libxcomposite + depends = mbedtls + depends = pciutils + depends = qrcodegencpp-cmake + depends = qt6-svg + depends = rnnoise + depends = speexdsp + depends = at-spi2-core + depends = libxdamage + depends = libxrandr + depends = nspr + depends = nss + optdepends = libfdk-aac: FDK AAC codec support + optdepends = libva-intel-driver: hardware encoding + optdepends = libva-mesa-driver: hardware encoding + optdepends = luajit: scripting support + optdepends = python: scripting support + optdepends = sndio: sndio input client + optdepends = v4l2loopback-dkms: virtual camera support + optdepends = vlc: VLC Media Source + provides = obs-studio=32.0.1.r0 + conflicts = obs-studio + options = !lto + options = !strip + source = obs-studio-git::git+https://github.com/obsproject/obs-studio.git#branch=master + source = git+https://github.com/obsproject/obs-browser.git + source = git+https://github.com/obsproject/obs-websocket.git + source = cef_binary_6533_linux_x86_64_v6.tar.xz::https://cdn-fastly.obsproject.com/downloads/cef_binary_6533_linux_x86_64_v6.tar.xz + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = 7963335519a19ccdc5233f7334c5ab023026e2f3e9a0cc417007c09d86608146 + +pkgname = obs-studio-git diff --git a/pkgbuilds/obs-studio-git/.gitignore b/pkgbuilds/obs-studio-git/.gitignore new file mode 100644 index 00000000..018a3de0 --- /dev/null +++ b/pkgbuilds/obs-studio-git/.gitignore @@ -0,0 +1,4 @@ +* +!PKGBUILD +!.SRCINFO +!.gitignore diff --git a/pkgbuilds/obs-studio-git/PKGBUILD b/pkgbuilds/obs-studio-git/PKGBUILD new file mode 100644 index 00000000..e78879c4 --- /dev/null +++ b/pkgbuilds/obs-studio-git/PKGBUILD @@ -0,0 +1,184 @@ +# Maintainer: Benjamin Klettbach +# Contributor: Jonathan Steel +# Contributor: ArcticVanguard +# Contributor: ledti + +## options +: ${_plugin_aja:=false} + +_pkgname="obs-studio" +pkgname="$_pkgname-git" +pkgver=32.0.1.r0.g0b12296 +pkgrel=2 +pkgdesc="Free, open source software for live streaming and recording" +url="https://github.com/obsproject/obs-studio" +license=("GPL-2.0-or-later") +arch=("i686" "x86_64" "aarch64") + +depends=( + 'curl' + 'ffmpeg' + 'jack' + 'jansson' + 'libdatachannel' + 'libpipewire' + 'librist' + 'libvpl' + 'libxcomposite' + 'mbedtls' + 'pciutils' + 'qrcodegencpp-cmake' + 'qt6-svg' + 'rnnoise' + 'speexdsp' +) +makedepends=( + 'asio' + 'cmake' + 'extra-cmake-modules' + 'ffnvcodec-headers' + 'git' + 'libfdk-aac' + 'luajit' + 'ninja' + 'nlohmann-json' + 'python' + 'qt6-wayland' + 'simde' + 'sndio' + 'swig' + 'uthash' + 'vlc' + 'wayland' + 'websocketpp' + 'x264' + 'xdg-desktop-portal' +) +optdepends=( + 'libfdk-aac: FDK AAC codec support' + 'libva-intel-driver: hardware encoding' + 'libva-mesa-driver: hardware encoding' + 'luajit: scripting support' + 'python: scripting support' + 'sndio: sndio input client' + 'v4l2loopback-dkms: virtual camera support' + 'vlc: VLC Media Source' +) + +if [ "${_plugin_aja::1}" == "t" ]; then + depends+=('libajantv2') # AUR + _plugin_aja='ON' +else + _plugin_aja='OFF' +fi + +provides=("$_pkgname=${pkgver%%.g*}") +conflicts=("$_pkgname") + +options=('!lto' '!strip') + +_source_main() { + source=( + "$pkgname::git+https://github.com/obsproject/obs-studio.git#branch=master" + # "git+https://github.com/obsproject/obs-browser.git" # Disabled - browser not needed + "git+https://github.com/obsproject/obs-websocket.git" + ) + sha256sums=( + 'SKIP' + # 'SKIP' # obs-browser disabled + 'SKIP' + ) +} + +_source_cef() { + depends+=( + 'at-spi2-core' + 'libxdamage' + 'libxrandr' + 'nspr' + 'nss' + ) + + local _response _cef_dl_url _cef_hash _cef_filename + _response=$(curl -Ssf --follow --retry 3 "$url/raw/refs/heads/master/build-aux/modules/99-cef.json") + + _cef_dl_url=$(grep -Pom1 '"url": "\K[^"]+' <<< "$_response") + _cef_hash=$(grep -Pom1 '"sha256": "\K[0-9a-f]+' <<< "$_response") + _cef_filename=$(basename "$_cef_dl_url") + _cef_src=$(sed -E 's&(_v[0-9]+)?\..*$&&' <<< "$_cef_filename") + + source+=("$_cef_filename"::"$_cef_dl_url") + sha256sums+=("$_cef_hash") +} + +_source_main +# _source_cef # Disabled - browser support not needed for ARM + +pkgver() { + cd "$pkgname" + local _version=$(git tag | grep -Ev '.*[a-z]{2}.*' | sort -rV | head -1) + local _revision=$(git rev-list --count --cherry-pick "$_version"...HEAD) + local _hash=$(git rev-parse --short=7 HEAD) + printf '%s.r%s.g%s' "${_version:?}" "${_revision:?}" "${_hash:?}" +} + +prepare() { + cd "$pkgname" + local gitconf="protocol.file.allow=always" + + git rm -r deps/libdshowcapture/src + # Disable obs-browser submodule entirely for ARM builds + git config submodule.plugins/obs-browser.active false + git config submodule.plugins/obs-websocket.url $srcdir/obs-websocket + git -c $gitconf submodule update + + # fix for Qt 6.10 + sed -e 's&Qt::GuiPrivate&&' \ + -i frontend/cmake/os-freebsd.cmake frontend/cmake/os-linux.cmake + + sed -e '/GuiPrivate/d' \ + -i frontend/plugins/aja-output-ui/CMakeLists.txt \ + frontend/plugins/decklink-output-ui/CMakeLists.txt \ + frontend/plugins/frontend-tools/CMakeLists.txt + + # Disable obs-browser check in CMakeLists for ARM builds + sed -i '/check_obs_browser()/d' plugins/CMakeLists.txt +} + +build() ( + export CFLAGS CXXFLAGS + CFLAGS="${CFLAGS/_FORTIFY_SOURCE=?/_FORTIFY_SOURCE=2}" + CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=?/_FORTIFY_SOURCE=2}" + + local _cmake_options=( + -B build + -S "$pkgname" + -G Ninja + -DCMAKE_BUILD_TYPE=None + -DCMAKE_INSTALL_PREFIX='/usr' + -DCMAKE_INSTALL_LIBDIR='lib' + -DCEF_ROOT_DIR="$srcdir/$_cef_src" + -DOBS_VERSION_OVERRIDE="${pkgver%%.r*}" + -DOBS_COMPILE_DEPRECATION_AS_WARNING=ON + -DENABLE_BROWSER=OFF # Disabled for ARM compatibility + -DENABLE_LIBFDK=ON + -Wno-dev + + -DENABLE_AJA="${_plugin_aja:?}" + -DENABLE_JACK=ON + -DENABLE_NEW_MPEGTS_OUTPUT=ON + -DENABLE_VLC=ON + -DENABLE_VST=ON + -DENABLE_WEBRTC=ON + ) + + cmake "${_cmake_options[@]}" + cmake --build build +) + +package() { + DESTDIR="$pkgdir" cmake --install build + chmod -R u+rwX,go+rX,go-w "$pkgdir" +} + +# vim: ts=2:sw=2:expandtab diff --git a/pkgbuilds/obsidian-appimage/PKGBUILD b/pkgbuilds/obsidian-appimage/PKGBUILD new file mode 100644 index 00000000..1def12a9 --- /dev/null +++ b/pkgbuilds/obsidian-appimage/PKGBUILD @@ -0,0 +1,48 @@ +# Maintainer: Omarchy Team + +pkgname=obsidian-appimage +pkgver=1.9.12 +pkgrel=1 +pkgdesc='A powerful knowledge base that works on top of a local folder of plain text Markdown files (AppImage)' +arch=('x86_64' 'aarch64') +url='https://obsidian.md' +license=('custom:Commercial') +depends=('fuse2' 'zlib') +optdepends=('libappindicator-gtk3: for systray icon support') +conflicts=('obsidian') +provides=('obsidian') +options=(!strip) + +source_x86_64=("https://github.com/obsidianmd/obsidian-releases/releases/download/v${pkgver}/Obsidian-${pkgver}.AppImage" + "obsidian.desktop" + "obsidian.png") +source_aarch64=("https://github.com/obsidianmd/obsidian-releases/releases/download/v${pkgver}/Obsidian-${pkgver}-arm64.AppImage" + "obsidian.desktop" + "obsidian.png") + +sha256sums_x86_64=('SKIP' 'SKIP' 'SKIP') +sha256sums_aarch64=('SKIP' 'SKIP' 'SKIP') + +prepare() { + # Make AppImage executable + chmod +x "${srcdir}/Obsidian-"*.AppImage +} + +package() { + # Install AppImage to /opt + install -Dm755 "${srcdir}/Obsidian-"*.AppImage "${pkgdir}/opt/obsidian/obsidian.AppImage" + + # Create launcher script in /usr/bin + install -dm755 "${pkgdir}/usr/bin" + cat > "${pkgdir}/usr/bin/obsidian" << 'EOF' +#!/bin/bash +exec /opt/obsidian/obsidian.AppImage "$@" +EOF + chmod 755 "${pkgdir}/usr/bin/obsidian" + + # Install desktop file + install -Dm644 "${srcdir}/obsidian.desktop" "${pkgdir}/usr/share/applications/obsidian.desktop" + + # Install icon + install -Dm644 "${srcdir}/obsidian.png" "${pkgdir}/usr/share/icons/hicolor/512x512/apps/obsidian.png" +} diff --git a/pkgbuilds/obsidian-appimage/obsidian.desktop b/pkgbuilds/obsidian-appimage/obsidian.desktop new file mode 100644 index 00000000..e20bdd05 --- /dev/null +++ b/pkgbuilds/obsidian-appimage/obsidian.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Obsidian +Comment=A powerful knowledge base that works on top of a local folder of plain text Markdown files +Exec=/usr/bin/obsidian +Icon=obsidian +Type=Application +Categories=Office;TextEditor;Development; +MimeType=text/markdown;text/x-markdown; +StartupNotify=true +StartupWMClass=obsidian diff --git a/pkgbuilds/obsidian-appimage/obsidian.png b/pkgbuilds/obsidian-appimage/obsidian.png new file mode 100644 index 00000000..b57c173d Binary files /dev/null and b/pkgbuilds/obsidian-appimage/obsidian.png differ diff --git a/pkgbuilds/pandoc-bin/PKGBUILD b/pkgbuilds/pandoc-bin/PKGBUILD new file mode 100644 index 00000000..1ede1c06 --- /dev/null +++ b/pkgbuilds/pandoc-bin/PKGBUILD @@ -0,0 +1,42 @@ +pkgname=pandoc-bin +pkgver=3.8.2.1 +pkgrel=1 +pkgdesc="Conversion between documentation formats" +url="https://pandoc.org" +license=("GPL-2.0-or-later") +arch=('x86_64' 'aarch64') +conflicts=("pandoc-cli") +provides=("pandoc=$pkgver" "pandoc-cli=$pkgver") +optdepends=( + 'pandoc-crossref: for numbering figures, equations, tables and cross-references to them with pandoc-crossref filter' + 'texlive-context: for pdf output using context engine' + 'groff: for pdf output using pdfroff engine' + 'python-weasyprint: for pdf output using weasyprint engine' + 'typst: for pdf output using typst engine' + 'tectonic: for pdf output using tectonic engine' + 'texlive-fontsrecommended: for pdf output using latex or xelatex engines' + 'texlive-latex: for pdf output using pdflatex engine' + 'texlive-xetex: for pdf output using xelatex engine' +) + +# The binary release doesn't have the datafiles, so we need to yoink those out of the source tarball, too. +source=("$pkgname-$pkgver.tar.gz::https://github.com/jgm/pandoc/archive/${pkgver}.tar.gz") +source_x86_64=("https://github.com/jgm/pandoc/releases/download/${pkgver}/pandoc-${pkgver}-linux-amd64.tar.gz") +source_aarch64=("https://github.com/jgm/pandoc/releases/download/${pkgver}/pandoc-${pkgver}-linux-arm64.tar.gz") + +sha256sums=('e3948e106026edbcef4e4d63f92554c814c779fa14696e635fb98e1279d4c175') +sha256sums_x86_64=('b362815e21d8ad3629c124aa92baf54558da086ad72374b4f6fdd97b9f3275b0') +sha256sums_aarch64=('852e898c2490fa840ae75a8b6af8a6c9d6d63b77ef170c32ec3a17958464d929') + +package() { + cd "${srcdir}/pandoc-${pkgver}" + + mkdir -p "${pkgdir}/usr/share/pandoc" + cp -R bin share "${pkgdir}/usr" + cp -R data citeproc "${pkgdir}/usr/share/pandoc/" + cp COPYRIGHT MANUAL.txt "${pkgdir}/usr/share/pandoc/" + bin/pandoc --bash-completion | \ + install -Dm644 /dev/stdin "$pkgdir"/usr/share/bash-completion/completions/pandoc +} + +# vim: set ts=2 sw=2 et diff --git a/pkgbuilds/pinta-git/.SRCINFO b/pkgbuilds/pinta-git/.SRCINFO new file mode 100644 index 00000000..8932ea0f --- /dev/null +++ b/pkgbuilds/pinta-git/.SRCINFO @@ -0,0 +1,20 @@ +pkgbase = pinta-git + pkgdesc = Drawing/editing program modeled after Paint.NET. It's goal is to provide a simplified alternative to GIMP for casual users + pkgver = r3610.b79bd6a5 + pkgrel = 1 + url = https://pinta-project.com + arch = any + license = MIT + makedepends = autoconf-archive + makedepends = git + makedepends = intltool + makedepends = dotnet-sdk + depends = libadwaita + depends = dotnet-runtime + depends = webp-pixbuf-loader + provides = pinta + conflicts = pinta + source = git+https://github.com/PintaProject/Pinta.git + sha256sums = SKIP + +pkgname = pinta-git diff --git a/pkgbuilds/pinta-git/PKGBUILD b/pkgbuilds/pinta-git/PKGBUILD new file mode 100644 index 00000000..07de0ffe --- /dev/null +++ b/pkgbuilds/pinta-git/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Fabio 'Lolix' Loli -> https://github.com/FabioLolix +# Contributor: JKA Network +# Contributor: Javier Steinaker + +pkgname=pinta-git +pkgver=r3610.b79bd6a5 +pkgrel=1 +pkgdesc="Drawing/editing program modeled after Paint.NET. It's goal is to provide a simplified alternative to GIMP for casual users" +arch=(any) +url="https://pinta-project.com" +license=(MIT) +depends=(libadwaita dotnet-runtime-8.0-bin webp-pixbuf-loader) +makedepends=(autoconf-archive git intltool dotnet-sdk-8.0-bin) +provides=(pinta) +conflicts=(pinta) +source=("git+https://github.com/PintaProject/Pinta.git") +sha256sums=('SKIP') + +pkgver() { + cd "Pinta" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +prepare() { + cd "Pinta" + ./autogen.sh +} + +build() { + cd "Pinta" + LANG=en_US.UTF-8 ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var + + make +} + +package() { + cd "Pinta" + make DESTDIR="${pkgdir}" install + install -Dm644 -t "${pkgdir}/usr/share/licenses/${pkgname}/" license-*.txt +} diff --git a/pkgbuilds/ruby-arr-pm/.SRCINFO b/pkgbuilds/ruby-arr-pm/.SRCINFO new file mode 100644 index 00000000..703faa8e --- /dev/null +++ b/pkgbuilds/ruby-arr-pm/.SRCINFO @@ -0,0 +1,15 @@ +pkgbase = ruby-arr-pm + pkgdesc = RPM reader and writer library + pkgver = 0.0.12 + pkgrel = 1 + url = https://rubygems.org/gems/arr-pm + arch = any + license = Apache 2 + depends = ruby + depends = ruby-cabin + noextract = arr-pm-0.0.12.gem + options = !emptydirs + source = https://rubygems.org/downloads/arr-pm-0.0.12.gem + sha512sums = f616f29f2c7a5912327aeb2c42be33d014808c6466472314d19a2f1ed50f2317de3e4d61516bacd765c77d3fe5325870eaad2a2e7da675429d554f299ac5daba + +pkgname = ruby-arr-pm diff --git a/pkgbuilds/ruby-arr-pm/.gitignore b/pkgbuilds/ruby-arr-pm/.gitignore new file mode 100644 index 00000000..0e685a29 --- /dev/null +++ b/pkgbuilds/ruby-arr-pm/.gitignore @@ -0,0 +1,5 @@ +src +pkg +*.tar.zst +*.gem + diff --git a/pkgbuilds/ruby-arr-pm/PKGBUILD b/pkgbuilds/ruby-arr-pm/PKGBUILD new file mode 100644 index 00000000..6406a98e --- /dev/null +++ b/pkgbuilds/ruby-arr-pm/PKGBUILD @@ -0,0 +1,23 @@ +# Generated by gem2arch (https://github.com/anatol/gem2arch) +# Maintainer: Artem Vorotnikov + +_gemname=arr-pm +pkgname=ruby-$_gemname +pkgver=0.0.12 +pkgrel=1 +pkgdesc='RPM reader and writer library' +arch=(any) +url='https://rubygems.org/gems/arr-pm' +license=('Apache 2') +depends=(ruby ruby-cabin) +options=(!emptydirs) +source=(https://rubygems.org/downloads/$_gemname-$pkgver.gem) +noextract=($_gemname-$pkgver.gem) +sha512sums=('f616f29f2c7a5912327aeb2c42be33d014808c6466472314d19a2f1ed50f2317de3e4d61516bacd765c77d3fe5325870eaad2a2e7da675429d554f299ac5daba') + +package() { + local _gemdir="$(ruby -e'puts Gem.default_dir')" + gem install --ignore-dependencies --no-user-install -i "$pkgdir/$_gemdir" -n "$pkgdir/usr/bin" $_gemname-$pkgver.gem + rm "$pkgdir/$_gemdir/cache/$_gemname-$pkgver.gem" + install -D -m644 "$pkgdir/$_gemdir/gems/$_gemname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/pkgbuilds/ruby-backports/.SRCINFO b/pkgbuilds/ruby-backports/.SRCINFO new file mode 100644 index 00000000..490e4561 --- /dev/null +++ b/pkgbuilds/ruby-backports/.SRCINFO @@ -0,0 +1,15 @@ +pkgbase = ruby-backports + pkgdesc = Essential backports that enable many of the nice features of Ruby for earlier versions. + pkgver = 3.25.2 + pkgrel = 1 + url = http://github.com/marcandre/backports + arch = any + license = MIT + makedepends = ruby-rdoc + depends = ruby + noextract = backports-3.25.2.gem + options = !emptydirs + source = https://rubygems.org/downloads/backports-3.25.2.gem + sha512sums = 0c212ca09450a438b6f5ff22950afdaf109327c21c865e04ed717cf67b12d920f3d027bc3fc13a84eafe4d7015ab734f1c2cdaef45449599b57d502f4ccce172 + +pkgname = ruby-backports diff --git a/pkgbuilds/ruby-backports/.gitignore b/pkgbuilds/ruby-backports/.gitignore new file mode 100644 index 00000000..018a3de0 --- /dev/null +++ b/pkgbuilds/ruby-backports/.gitignore @@ -0,0 +1,4 @@ +* +!PKGBUILD +!.SRCINFO +!.gitignore diff --git a/pkgbuilds/ruby-backports/PKGBUILD b/pkgbuilds/ruby-backports/PKGBUILD new file mode 100644 index 00000000..31d6e44c --- /dev/null +++ b/pkgbuilds/ruby-backports/PKGBUILD @@ -0,0 +1,24 @@ +# Maintainer: DDoSolitary +# Contributor: Carsten Feuls + +_gemname=backports +pkgname=ruby-$_gemname +pkgver=3.25.2 +pkgrel=1 +pkgdesc='Essential backports that enable many of the nice features of Ruby for earlier versions.' +arch=(any) +url='http://github.com/marcandre/backports' +license=(MIT) +depends=(ruby) +makedepends=(ruby-rdoc) +options=(!emptydirs) +source=(https://rubygems.org/downloads/$_gemname-$pkgver.gem) +noextract=($_gemname-$pkgver.gem) +sha512sums=('0c212ca09450a438b6f5ff22950afdaf109327c21c865e04ed717cf67b12d920f3d027bc3fc13a84eafe4d7015ab734f1c2cdaef45449599b57d502f4ccce172') + +package() { + local _gemdir="$(ruby -e'puts Gem.default_dir')" + gem install --ignore-dependencies --no-user-install -i "$pkgdir/$_gemdir" -n "$pkgdir/usr/bin" $_gemname-$pkgver.gem + rm "$pkgdir/$_gemdir/cache/$_gemname-$pkgver.gem" + install -D -m644 "$pkgdir/$_gemdir/gems/$_gemname-$pkgver/LICENSE.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt" +} diff --git a/pkgbuilds/ruby-cabin/.SRCINFO b/pkgbuilds/ruby-cabin/.SRCINFO new file mode 100644 index 00000000..cc2b6988 --- /dev/null +++ b/pkgbuilds/ruby-cabin/.SRCINFO @@ -0,0 +1,15 @@ +pkgbase = ruby-cabin + pkgdesc = Experiments in structured and contextual logging + pkgver = 0.9.1 + pkgrel = 1 + url = https://github.com/jordansissel/ruby-cabin + arch = any + license = Apache-2.0 + makedepends = rubygems + depends = ruby + noextract = cabin-0.9.1.gem + options = !emptydirs + source = https://rubygems.org/downloads/cabin-0.9.1.gem + sha256sums = dcc9385af8039ba8fb6e33f0a9036e9e9fedec71c842343ce8e6101776e0322d + +pkgname = ruby-cabin diff --git a/pkgbuilds/ruby-cabin/.nvchecker.toml b/pkgbuilds/ruby-cabin/.nvchecker.toml new file mode 100644 index 00000000..3edfc4a7 --- /dev/null +++ b/pkgbuilds/ruby-cabin/.nvchecker.toml @@ -0,0 +1,3 @@ +[ruby-cabin] +source="gems" +gems="cabin" diff --git a/pkgbuilds/ruby-cabin/PKGBUILD b/pkgbuilds/ruby-cabin/PKGBUILD new file mode 100644 index 00000000..0b613c43 --- /dev/null +++ b/pkgbuilds/ruby-cabin/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: envolution +# Contributor: Luís Ferreira < org dot aurorafoss at luis, backwards> +# Contributor: Artem Vorotnikov + +pkgname="ruby-cabin" +#0.9.0 gem never made a tag release on github +#https://github.com/jordansissel/ruby-cabin/issues/51 +pkgver=0.9.1 +pkgrel=1 +pkgdesc='Experiments in structured and contextual logging' +arch=(any) +url='https://github.com/jordansissel/ruby-cabin' +license=('Apache-2.0') +depends=('ruby') +makedepends=('rubygems') +options=(!emptydirs) +source=(https://rubygems.org/downloads/${pkgname#*-}-$pkgver.gem) +noextract=("${pkgname#*-}-$pkgver.gem") +sha256sums=('dcc9385af8039ba8fb6e33f0a9036e9e9fedec71c842343ce8e6101776e0322d') + +package() { + local _gemdir + _gemdir="$(ruby -e'puts Gem.default_dir')" + + gem install --ignore-dependencies --no-user-install -i "$pkgdir/$_gemdir" -n "$pkgdir/usr/bin" "${pkgname#*-}-$pkgver.gem" + find "${pkgdir}" -type f -name '*.gem' -delete + + install -D -m644 "$pkgdir/$_gemdir/gems/${pkgname#*-}-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + + cd "$pkgdir/$_gemdir" + rm -rf cache gems/${pkgname#*-}-${pkgver}/{ext,lib/*/*.so} \ + extensions/*/*/${pkgname#*-}-${pkgver}/{mkmf.log,gem_make.out} +} diff --git a/pkgbuilds/ruby-clamp/.SRCINFO b/pkgbuilds/ruby-clamp/.SRCINFO new file mode 100644 index 00000000..d2aadc8a --- /dev/null +++ b/pkgbuilds/ruby-clamp/.SRCINFO @@ -0,0 +1,14 @@ +pkgbase = ruby-clamp + pkgdesc = a minimal framework for command-line utilities + pkgver = 1.3.3 + pkgrel = 1 + url = http://github.com/mdub/clamp + arch = any + license = MIT + depends = ruby + noextract = clamp-1.3.3.gem + options = !emptydirs + source = https://rubygems.org/downloads/clamp-1.3.3.gem + sha256sums = ab7487e7258098a7327b376cdb3896f3f73c663b8ce80af5cd625c699369f2cf + +pkgname = ruby-clamp diff --git a/pkgbuilds/ruby-clamp/.nvchecker.toml b/pkgbuilds/ruby-clamp/.nvchecker.toml new file mode 100644 index 00000000..61bd563d --- /dev/null +++ b/pkgbuilds/ruby-clamp/.nvchecker.toml @@ -0,0 +1,3 @@ +[ruby-clamp] +source="gems" +gems="clamp" diff --git a/pkgbuilds/ruby-clamp/PKGBUILD b/pkgbuilds/ruby-clamp/PKGBUILD new file mode 100644 index 00000000..665d49b6 --- /dev/null +++ b/pkgbuilds/ruby-clamp/PKGBUILD @@ -0,0 +1,23 @@ +# Maintainer: envolution +# Contributor: Valantin +# Contributor: Artem Vorotnikov + +_gemname=clamp +pkgname="ruby-${_gemname}" +pkgver=1.3.3 +pkgrel=1 +pkgdesc='a minimal framework for command-line utilities' +arch=(any) +url='http://github.com/mdub/clamp' +license=(MIT) +depends=(ruby) +options=(!emptydirs) +source=(https://rubygems.org/downloads/$_gemname-$pkgver.gem) +noextract=($_gemname-$pkgver.gem) +sha256sums=('ab7487e7258098a7327b376cdb3896f3f73c663b8ce80af5cd625c699369f2cf') +package() { + local _gemdir="$(ruby -e'puts Gem.default_dir')" + gem install --ignore-dependencies --no-user-install -i "$pkgdir/$_gemdir" -n "$pkgdir/usr/bin" $_gemname-$pkgver.gem + rm "$pkgdir/$_gemdir/cache/$_gemname-$pkgver.gem" + install -D -m644 "$pkgdir/$_gemdir/gems/$_gemname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/pkgbuilds/ruby-dotenv/.SRCINFO b/pkgbuilds/ruby-dotenv/.SRCINFO new file mode 100644 index 00000000..e8aec3cd --- /dev/null +++ b/pkgbuilds/ruby-dotenv/.SRCINFO @@ -0,0 +1,17 @@ +pkgbase = ruby-dotenv + pkgdesc = Loads environment variables from .env + pkgver = 3.1.8 + pkgrel = 1 + url = https://github.com/bkeepers/dotenv + install = ruby-dotenv.install + arch = any + license = MIT + checkdepends = ruby-rspec + makedepends = git + makedepends = rubygems + depends = ruby + options = !emptydirs + source = git+https://github.com/bkeepers/dotenv.git#tag=v3.1.8 + sha256sums = edf25e082ec35726df6d768a544972b27b9a459cbf57cd234b24e8334ec81bd5 + +pkgname = ruby-dotenv diff --git a/pkgbuilds/ruby-dotenv/.gitignore b/pkgbuilds/ruby-dotenv/.gitignore new file mode 100644 index 00000000..74447d2e --- /dev/null +++ b/pkgbuilds/ruby-dotenv/.gitignore @@ -0,0 +1,6 @@ +* +!.gitignore +!.nvchecker.toml +!.SRCINFO +!PKGBUILD +!ruby-dotenv.install diff --git a/pkgbuilds/ruby-dotenv/.nvchecker.toml b/pkgbuilds/ruby-dotenv/.nvchecker.toml new file mode 100644 index 00000000..6e42e01f --- /dev/null +++ b/pkgbuilds/ruby-dotenv/.nvchecker.toml @@ -0,0 +1,4 @@ +[ruby-dotenv] +source = "gems" +gems = "dotenv" +include_regex = '^\d+\.\d+(?:\.\d+)?$' diff --git a/pkgbuilds/ruby-dotenv/PKGBUILD b/pkgbuilds/ruby-dotenv/PKGBUILD new file mode 100644 index 00000000..8fd9e668 --- /dev/null +++ b/pkgbuilds/ruby-dotenv/PKGBUILD @@ -0,0 +1,101 @@ +# Maintainer: Carl Smedstad +# Maintainer: Anton Kudelin +# Contrubutor: farwayer + +pkgname=ruby-dotenv +_pkgname=${pkgname#ruby-} +pkgver=3.1.8 +pkgrel=1 +pkgdesc="Loads environment variables from .env" +arch=(any) +url="https://github.com/bkeepers/dotenv" +license=(MIT) +depends=(ruby) +makedepends=( + git + rubygems +) +checkdepends=(ruby-rspec) +options=(!emptydirs) +install=ruby-dotenv.install +source=("git+$url.git#tag=v$pkgver") +sha256sums=('edf25e082ec35726df6d768a544972b27b9a459cbf57cd234b24e8334ec81bd5') + +_archive="$_pkgname" + +prepare() { + cd "$_archive" + + # update gemspec/Gemfile to allow newer version of the dependencies + sed --in-place --regexp-extended 's|~>|>=|g' "$_pkgname.gemspec" + + # Add missing require to tests + echo "require 'pathname'" >> spec/spec_helper.rb +} + +build() { + cd "$_archive" + + local gemdir="$(gem env gemdir)" + + gem build "$_pkgname.gemspec" + + gem install \ + --local \ + --verbose \ + --ignore-dependencies \ + --no-user-install \ + --install-dir "tmp_install/$gemdir" \ + --bindir "tmp_install/usr/bin" \ + "$_pkgname-$pkgver.gem" + + # remove unrepreducible files + rm --force --recursive --verbose \ + "tmp_install/$gemdir/cache/" \ + "tmp_install/$gemdir/gems/$_pkgname-$pkgver/vendor/" \ + "tmp_install/$gemdir/doc/$_pkgname-$pkgver/ri/ext/" + + find "tmp_install/$gemdir/gems/" \ + -type f \ + \( \ + -iname "*.o" -o \ + -iname "*.c" -o \ + -iname "*.so" -o \ + -iname "*.time" -o \ + -iname "gem.build_complete" -o \ + -iname "Makefile" \ + \) \ + -delete + + find "tmp_install/$gemdir/extensions/" \ + -type f \ + \( \ + -iname "mkmf.log" -o \ + -iname "gem_make.out" \ + \) \ + -delete +} + +check() { + cd "$_archive" + + # Remove tests that depend on rails + local excluded_tests=( + dotenv/rails_spec.rb + dotenv/log_subscriber_spec.rb + ) + local excluded_tests_pattern="spec/{${excluded_tests[0]}$(printf ',%s' "${excluded_tests[@]:1}")}" + + GEM_HOME="tmp_install/$(gem env gemdir)" rspec \ + --exclude-pattern "$excluded_tests_pattern" +} + +package() { + cd "$_archive" + + cp -a tmp_install/* "$pkgdir" + mv "$pkgdir/usr/bin/dotenv" "$pkgdir/usr/bin/ruby-dotenv" + + install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname" ./*.md + install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE +} diff --git a/pkgbuilds/ruby-dotenv/ruby-dotenv.install b/pkgbuilds/ruby-dotenv/ruby-dotenv.install new file mode 100644 index 00000000..d2a296a7 --- /dev/null +++ b/pkgbuilds/ruby-dotenv/ruby-dotenv.install @@ -0,0 +1,11 @@ +_notice() { + echo -e "\e[1;33m\nExecutable is installed as ruby-dotenv to avoid conflict with python-dotenv.\e[1;39m\n" +} + +post_install() { + _notice +} + +post_upgrade() { + _notice +} diff --git a/pkgbuilds/ruby-insist/.SRCINFO b/pkgbuilds/ruby-insist/.SRCINFO new file mode 100644 index 00000000..039d1320 --- /dev/null +++ b/pkgbuilds/ruby-insist/.SRCINFO @@ -0,0 +1,15 @@ +pkgbase = ruby-insist + pkgdesc = A simple block-driven assertion library for both testing and for production code + pkgver = 1.0.0 + pkgrel = 3 + url = https://github.com/jordansissel/ruby-insist + arch = any + license = apache + makedepends = rubygems + depends = ruby + noextract = insist-1.0.0.gem + source = https://rubygems.org/downloads/insist-1.0.0.gem + sha256sums = 6f6759eee583dc4e00a6cc3f713cfa7c570572958ba1f5d65595046d795b832f + +pkgname = ruby-insist + diff --git a/pkgbuilds/ruby-insist/PKGBUILD b/pkgbuilds/ruby-insist/PKGBUILD new file mode 100644 index 00000000..d6783245 --- /dev/null +++ b/pkgbuilds/ruby-insist/PKGBUILD @@ -0,0 +1,24 @@ +# Maintainer: Olivier Biesmans +_gemname=insist +pkgname=ruby-$_gemname +pkgver=1.0.0 +pkgrel=3 +pkgdesc="A simple block-driven assertion library for both testing and for production code" +arch=(any) +url="https://github.com/jordansissel/ruby-insist" +license=('apache') +depends=(ruby) +makedepends=(rubygems) +source=(https://rubygems.org/downloads/${_gemname}-${pkgver}.gem) +noextract=($_gemname-$pkgver.gem) +sha256sums=(6f6759eee583dc4e00a6cc3f713cfa7c570572958ba1f5d65595046d795b832f) + +package() { + cd "$srcdir" + local _gemdir="$(ruby -r rubygems -e'puts Gem.default_dir')" + + gem install --no-user-install --ignore-dependencies -i "$pkgdir$_gemdir" -n "$pkgdir/usr/bin" \ + "$_gemname-$pkgver.gem" +} + +# vim:set ts=2 sw=2 et: diff --git a/pkgbuilds/ruby-mustache/PKGBUILD b/pkgbuilds/ruby-mustache/PKGBUILD new file mode 100644 index 00000000..fce9cd35 --- /dev/null +++ b/pkgbuilds/ruby-mustache/PKGBUILD @@ -0,0 +1,26 @@ +# Maintainer: Omarchy + +_gemname=mustache +pkgname=ruby-$_gemname +pkgver=1.1.1 +pkgrel=1 +pkgdesc='Logic-less Ruby templates' +arch=(any) +url='https://github.com/mustache/mustache' +license=('MIT') +depends=('ruby') +makedepends=('rubygems') +options=(!emptydirs) +source=("https://rubygems.org/downloads/${_gemname}-${pkgver}.gem") +noextract=("${_gemname}-${pkgver}.gem") +sha256sums=('SKIP') + +package() { + local _gemdir + _gemdir="$(ruby -e'puts Gem.default_dir')" + + gem install --ignore-dependencies --no-user-install -i "$pkgdir/$_gemdir" -n "$pkgdir/usr/bin" "${_gemname}-${pkgver}.gem" + find "${pkgdir}" -type f -name '*.gem' -delete + + install -D -m644 "$pkgdir/$_gemdir/gems/${_gemname}-${pkgver}/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/pkgbuilds/ruby-pleaserun/.SRCINFO b/pkgbuilds/ruby-pleaserun/.SRCINFO new file mode 100644 index 00000000..3e6f66a2 --- /dev/null +++ b/pkgbuilds/ruby-pleaserun/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = ruby-pleaserun + pkgdesc = pleaserun + pkgver = 0.0.33 + pkgrel = 2 + url = https://rubygems.org/gems/pleaserun + arch = any + license = Apache-2.0 + makedepends = ruby-bundler + depends = ruby + depends = ruby-cabin + depends = ruby-clamp + depends = ruby-dotenv + depends = ruby-insist + depends = ruby-mustache + depends = ruby-stud + source = https://rubygems.org/downloads/pleaserun-0.0.33.gem + sha256sums = a61ecd4ac6956dc44a7992ccbd9e4c979d7cd3a25af5ec7cc5b1f17424ffb73f + +pkgname = ruby-pleaserun diff --git a/pkgbuilds/ruby-pleaserun/.nvchecker.toml b/pkgbuilds/ruby-pleaserun/.nvchecker.toml new file mode 100644 index 00000000..4cd7b88d --- /dev/null +++ b/pkgbuilds/ruby-pleaserun/.nvchecker.toml @@ -0,0 +1,3 @@ +[ruby-pleaserun] +source="gems" +gems="pleaserun" diff --git a/pkgbuilds/ruby-pleaserun/PKGBUILD b/pkgbuilds/ruby-pleaserun/PKGBUILD new file mode 100644 index 00000000..e065c70c --- /dev/null +++ b/pkgbuilds/ruby-pleaserun/PKGBUILD @@ -0,0 +1,41 @@ +# Maintainer: envolution +# Contributor: Anton Kudelin +# shellcheck shell=bash disable=SC2034,SC2154 +# Contrubutor: Joel Goguen + +_gemname=pleaserun +pkgname=ruby-$_gemname +pkgver=0.0.33 +pkgrel=2 +pkgdesc="pleaserun" +arch=('any') +depends=('ruby' 'ruby-cabin' 'ruby-clamp' 'ruby-dotenv' + 'ruby-insist' 'ruby-mustache' 'ruby-stud') +makedepends=('ruby-bundler') +url="https://rubygems.org/gems/${_gemname}" +license=('Apache-2.0') +source=("https://rubygems.org/downloads/${_gemname}-${pkgver}.gem") +sha256sums=('a61ecd4ac6956dc44a7992ccbd9e4c979d7cd3a25af5ec7cc5b1f17424ffb73f') + +prepare() { + rm -rf rebuild + mkdir -p "rebuild" + tar zxf data.tar.gz -C rebuild/ + rm -f rebuild/{metadata.gz,checksums.yaml.gz,data.tar.gz} + sed -i 's/"mustache", "0.99.8"/"mustache", ">= 1.0"/' rebuild/$_gemname.gemspec + sed -i 's/"dotenv", "~> 2"/"dotenv"/' rebuild/$_gemname.gemspec +} + +build() { + cd rebuild + gem build $_gemname.gemspec $1 2>/dev/null +} + +package() { + local _gemdir="$(ruby -e'puts Gem.default_dir')" + gem install --ignore-dependencies --no-user-install -i "$pkgdir/$_gemdir" \ + -n "$pkgdir/usr/bin" ${srcdir}/rebuild/${_gemname}-${pkgver}.gem + rm "$pkgdir/$_gemdir/cache/$_gemname-$pkgver.gem" + install -Dm644 rebuild/LICENSE -t ${pkgdir}/usr/share/licenses/${pkgname} +} +# vim:set ts=2 sw=2 et: diff --git a/pkgbuilds/ruby-rexml/.SRCINFO b/pkgbuilds/ruby-rexml/.SRCINFO new file mode 100644 index 00000000..164b22c7 --- /dev/null +++ b/pkgbuilds/ruby-rexml/.SRCINFO @@ -0,0 +1,16 @@ +pkgbase = ruby-rexml + pkgdesc = An XML toolkit for Ruby + pkgver = 3.2.4 + pkgrel = 2 + url = https://github.com/ruby/rexml + arch = any + license = BSD + makedepends = rubygems + makedepends = ruby-rdoc + depends = ruby + options = !emptydirs + source = https://github.com/ruby/rexml/archive/v3.2.4/rexml-3.2.4.tar.gz + sha256sums = 808a138b2118079e5d1a020976f5e843e915d1331721bf05c4a0deaf95296da8 + +pkgname = ruby-rexml + diff --git a/pkgbuilds/ruby-rexml/.gitignore b/pkgbuilds/ruby-rexml/.gitignore new file mode 100644 index 00000000..05c6d4d4 --- /dev/null +++ b/pkgbuilds/ruby-rexml/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!.SRCINFO +!PKGBUILD diff --git a/pkgbuilds/ruby-rexml/PKGBUILD b/pkgbuilds/ruby-rexml/PKGBUILD new file mode 100644 index 00000000..4d308909 --- /dev/null +++ b/pkgbuilds/ruby-rexml/PKGBUILD @@ -0,0 +1,39 @@ +# Maintainer: Mario Finelli + +_gemname=rexml +pkgname=ruby-${_gemname} +pkgver=3.2.4 +pkgrel=2 +pkgdesc="An XML toolkit for Ruby" +arch=(any) +depends=(ruby) +makedepends=(rubygems ruby-rdoc) +url=https://github.com/ruby/rexml +license=(BSD) +options=(!emptydirs) +source=(https://github.com/ruby/rexml/archive/v$pkgver/$_gemname-$pkgver.tar.gz) +sha256sums=('808a138b2118079e5d1a020976f5e843e915d1331721bf05c4a0deaf95296da8') + +build() { + cd $_gemname-$pkgver + gem build ${_gemname}.gemspec +} + +package() { + cd $_gemname-$pkgver + local _gemdir="$(gem env gemdir)" + + gem install \ + --ignore-dependencies \ + --no-user-install \ + -i "$pkgdir/$_gemdir" \ + -n "$pkgdir/usr/bin" \ + $_gemname-$pkgver.gem + + rm "$pkgdir/$_gemdir/cache/$_gemname-$pkgver.gem" + + install -Dm0644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + install -Dm0644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md" +} + +# vim: set ts=2 sw=2 et: diff --git a/pkgbuilds/ruby-rspec/.SRCINFO b/pkgbuilds/ruby-rspec/.SRCINFO new file mode 100644 index 00000000..30da07e3 --- /dev/null +++ b/pkgbuilds/ruby-rspec/.SRCINFO @@ -0,0 +1,18 @@ +pkgbase = ruby-rspec + pkgdesc = rspec-3.3.0 + pkgver = 3.3.0 + pkgrel = 1 + url = http://github.com/rspec + arch = any + license = MIT + depends = ruby + depends = ruby-rspec-core + depends = ruby-rspec-expectations + depends = ruby-rspec-mocks + noextract = rspec-3.3.0.gem + options = !emptydirs + source = https://rubygems.org/downloads/rspec-3.3.0.gem + sha512sums = cafc2bcfae261da8f990a8c6327db88f800d73c9fed2dbf4ca360930376906ae6621349ac9cc92b900e069647eb9d1dde1e41feb6ba25b84d30228ae038efbd4 + +pkgname = ruby-rspec + diff --git a/pkgbuilds/ruby-rspec/PKGBUILD b/pkgbuilds/ruby-rspec/PKGBUILD new file mode 100644 index 00000000..22dff385 --- /dev/null +++ b/pkgbuilds/ruby-rspec/PKGBUILD @@ -0,0 +1,23 @@ +# Generated by gem2arch (https://github.com/anatol/gem2arch) +# Maintainer: Artem Vorotnikov + +_gemname=rspec +pkgname=ruby-$_gemname +pkgver=3.3.0 +pkgrel=1 +pkgdesc='rspec-3.3.0' +arch=(any) +url='http://github.com/rspec' +license=(MIT) +depends=(ruby ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks) +options=(!emptydirs) +source=(https://rubygems.org/downloads/$_gemname-$pkgver.gem) +noextract=($_gemname-$pkgver.gem) +sha512sums=('cafc2bcfae261da8f990a8c6327db88f800d73c9fed2dbf4ca360930376906ae6621349ac9cc92b900e069647eb9d1dde1e41feb6ba25b84d30228ae038efbd4') + +package() { + local _gemdir="$(ruby -e'puts Gem.default_dir')" + gem install --ignore-dependencies --no-user-install -i "$pkgdir/$_gemdir" -n "$pkgdir/usr/bin" $_gemname-$pkgver.gem + rm "$pkgdir/$_gemdir/cache/$_gemname-$pkgver.gem" + install -D -m644 "$pkgdir/$_gemdir/gems/$_gemname-$pkgver/License.txt" "$pkgdir/usr/share/licenses/$pkgname/License.txt" +} diff --git a/pkgbuilds/ruby-stud/.SRCINFO b/pkgbuilds/ruby-stud/.SRCINFO new file mode 100644 index 00000000..8cbdc8b1 --- /dev/null +++ b/pkgbuilds/ruby-stud/.SRCINFO @@ -0,0 +1,18 @@ +pkgbase = ruby-stud + pkgdesc = small reusable bits of code + pkgver = 0.0.23 + pkgrel = 2 + url = https://rubygems.org/gems/stud + arch = any + license = Apache + checkdepends = ruby-rspec + checkdepends = ruby-insist + makedepends = rubygems + depends = ruby + options = !emptydirs + source = ruby-stud-0.0.23::git+https://github.com/jordansissel/ruby-stud.git + sha256sums = SKIP + sha256sums = b71e34262419c888317c6d8f28327298bcaf9664b8bb08eb66a600866ead1276 + +pkgname = ruby-stud + diff --git a/pkgbuilds/ruby-stud/PKGBUILD b/pkgbuilds/ruby-stud/PKGBUILD new file mode 100644 index 00000000..a35e8d47 --- /dev/null +++ b/pkgbuilds/ruby-stud/PKGBUILD @@ -0,0 +1,60 @@ +# Maintainer: Luís Ferreira +# Contributor: Joel Goguen + +pkgname="ruby-stud" +pkgver=0.0.23 +pkgrel=2 +pkgdesc="small reusable bits of code" +arch=('any') +url="https://rubygems.org/gems/${pkgname#*-}" +license=('Apache') +depends=('ruby') +makedepends=('rubygems') +# checkdepends=('ruby-rspec' 'ruby-insist') # Disabled for initial build +source=("${pkgname}-${pkgver}::git+https://github.com/jordansissel/$pkgname.git" + "https://github.com/jordansissel/ruby-stud/pull/33.patch" + ) +sha256sums=('SKIP' + 'b71e34262419c888317c6d8f28327298bcaf9664b8bb08eb66a600866ead1276' + ) +options=(!emptydirs) + +prepare() { + cd "${pkgname}-${pkgver}" + + # exists is deprecated and removed as of Ruby 3.2, see https://github.com/jordansissel/ruby-stud/pull/33 + patch -Np1 -i ../33.patch + + sed 's|~>|>=|g' -i "${pkgname#*-}.gemspec" # we don't do version pinning +} + +build() { + cd "${pkgname}-${pkgver}" + + gem build "${pkgname#*-}.gemspec" +} + +# check() { +# cd "${pkgname}-${pkgver}" +# +# rspec +# } # Disabled for initial build + + +package() { + cd "${pkgname}-${pkgver}" + + local _gemdir + _gemdir="$(gem env gemdir)" + + gem install --ignore-dependencies --no-user-install -i "$pkgdir/$_gemdir" \ + -n "$pkgdir/usr/bin" "${pkgname#*-}-$pkgver.gem" + find "${pkgdir}" -type f -name '*.gem' -delete + + install -Dm 644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}" + install -Dm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" + + cd "$pkgdir/$_gemdir" + rm -rf cache gems/${pkgname#*-}-${pkgver}/{ext,lib/*/*.so} \ + extensions/*/*/${pkgname#*-}-${pkgver}/{mkmf.log,gem_make.out} +} diff --git a/pkgbuilds/signal-desktop-beta/.SRCINFO b/pkgbuilds/signal-desktop-beta/.SRCINFO new file mode 100644 index 00000000..d0f9b76f --- /dev/null +++ b/pkgbuilds/signal-desktop-beta/.SRCINFO @@ -0,0 +1,48 @@ +pkgbase = signal-desktop-beta + pkgdesc = Signal Private Messenger for Linux - Beta version. + pkgver = 7.78.0beta1 + pkgrel = 1 + url = https://signal.org + arch = x86_64 + arch = aarch64 + license = GPL3 + makedepends = git + makedepends = git-lfs + makedepends = libxcrypt-compat + makedepends = node-gyp + makedepends = nodejs-lts-jod + makedepends = python + makedepends = pnpm + depends = gcc-libs + depends = glibc + depends = gtk3 + depends = hicolor-icon-theme + depends = libasound.so + depends = libatk-bridge-2.0.so + depends = libcairo.so + depends = libcups + depends = libdbus-1.so + depends = libdrm + depends = libexpat.so + depends = libgio-2.0.so + depends = libpango-1.0.so + depends = libx11 + depends = libxcb + depends = libxcomposite + depends = libxdamage + depends = libxext + depends = libxfixes + depends = libxkbcommon.so + depends = libxrandr + depends = mesa + depends = nspr + depends = nss + optdepends = xdg-desktop-portal: Screensharing with Wayland + conflicts = signal-desktop-beta-bin + source = signal-desktop-beta-7.78.0beta1.tar.gz::https://github.com/signalapp/Signal-Desktop/archive/v7.78.0-beta.1.tar.gz + source = signal beta.desktop + sha512sums = 70820d414452e369de5c6a67ec0ef51a3333bc0e1978e14c47a1a6eda24252cd3aad7840742a03ff4ff63cd44e5ba5c15d2180dddd8aa08d43e52d039c791531 + sha512sums = 5032201efb1089e2e8f78cf5cc06d458f2b068900a4de74b7c2ef87a0a0e7779cc681df7b95ce2d9af131ef9ea148f3621ee1fa2a9812982cdecc7aba9eeb87c + makedepends_aarch64 = fpm + +pkgname = signal-desktop-beta diff --git a/pkgbuilds/signal-desktop-beta/PKGBUILD b/pkgbuilds/signal-desktop-beta/PKGBUILD new file mode 100644 index 00000000..95ead942 --- /dev/null +++ b/pkgbuilds/signal-desktop-beta/PKGBUILD @@ -0,0 +1,118 @@ +# Maintainer: Eduard Tolosa +# PKGBUILD modified from kpcyrd +# Contributor: Jean Lucas +# This package is just an adaptation of the signal-desktop package +# that is in the official repos in order to provide a beta version +# of signal that does not use precompiled binaries. + +pkgname=signal-desktop-beta +_pkgname=Signal-Desktop +_sticker_creator="sticker-creator" +_desktop_file='signal beta.desktop' +pkgver=7.78.0beta1 +pkgrel=1 +pkgdesc='Signal Private Messenger for Linux - Beta version.' +license=('GPL3') +conflicts=('signal-desktop-beta-bin') +arch=('x86_64' 'aarch64') +url="https://signal.org" +depends=( + 'gcc-libs' + 'glibc' + 'gtk3' + 'hicolor-icon-theme' + 'libasound.so' + 'libatk-bridge-2.0.so' + 'libcairo.so' + 'libcups' + 'libdbus-1.so' + 'libdrm' + 'libexpat.so' + 'libgio-2.0.so' + 'libpango-1.0.so' + 'libx11' + 'libxcb' + 'libxcomposite' + 'libxdamage' + 'libxext' + 'libxfixes' + 'libxkbcommon.so' + 'libxrandr' + 'mesa' + 'nspr' + 'nss' +) +# We need libxcrypt-compat for it to build: https://github.com/electron-userland/electron-builder-binaries/issues/47 +makedepends=( + 'git' + 'git-lfs' + 'libxcrypt-compat' + 'node-gyp' + 'nodejs' # Changed from nodejs-lts-jod which doesn't exist + 'python' + 'pnpm' + 'fpm' # Moved from makedepends_aarch64 for proper dependency resolution +) +optdepends=('xdg-desktop-portal: Screensharing with Wayland') +# makedepends_aarch64=('fpm') # Moved to main makedepends for dependency resolution +source=( + "${pkgname}-${pkgver}.tar.gz::https://github.com/signalapp/${_pkgname}/archive/v${pkgver//beta*}-beta.${pkgver##*beta}.tar.gz" + "${_desktop_file}" + ) +sha512sums=('70820d414452e369de5c6a67ec0ef51a3333bc0e1978e14c47a1a6eda24252cd3aad7840742a03ff4ff63cd44e5ba5c15d2180dddd8aa08d43e52d039c791531' + '5032201efb1089e2e8f78cf5cc06d458f2b068900a4de74b7c2ef87a0a0e7779cc681df7b95ce2d9af131ef9ea148f3621ee1fa2a9812982cdecc7aba9eeb87c') + +prepare() { + cd "${_pkgname}-${pkgver//beta*}-beta.${pkgver##*beta}" + + # git-lfs hook needs to be installed for one of the dependencies + git lfs install + + # Allow higher Node versions + sed 's#"node": "#&>=#' -i package.json + + # Remove Windows-specific dependency that doesn't build on ARM Linux + sed -i '/"@signalapp\/windows-ucv":/d' package.json + sed -i '/"@signalapp\/windows-ucv"/d' package.json + + # Install dependencies for sticker-creator + pnpm --prefix ./sticker-creator/ install + + # Install dependencies for signal-desktop + pnpm install +} + +build() { + cd "${_pkgname}-${pkgver//beta*}-beta.${pkgver##*beta}" + + # Build the sticker creator + USE_SYSTEM_FPM=$([ $(uname -m) == "aarch64" ] && echo true || echo false) bash -c 'pnpm --prefix ./sticker-creator/ run build' + + # Build Signal Desktop Beta + pnpm run generate + pnpm run prepare-beta-build + USE_SYSTEM_FPM=$([ $(uname -m) == "aarch64" ] && echo true || echo false) bash -c 'pnpm run build:esbuild:prod && pnpm run build:release -- --linux dir' +} + +package() { + cd "${_pkgname}-${pkgver//beta*}-beta.${pkgver##*beta}" + + install -d "${pkgdir}/usr/"{lib,bin} + + case "${CARCH}" in + "aarch64") folder="linux-arm64-unpacked" ;; + *) folder="linux-unpacked" ;; + esac + cp -a release/${folder} "${pkgdir}/usr/lib/${pkgname}" + + ln -s "/usr/lib/${pkgname}/${pkgname}" "${pkgdir}/usr/bin/" + + chmod u+s "${pkgdir}/usr/lib/${pkgname}/chrome-sandbox" + + install -Dm 644 "../${_desktop_file}" -t "${pkgdir}/usr/share/applications" + for i in 16 24 32 48 64 128 256 512 1024; do + install -Dm 644 "build/icons/png/${i}x${i}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/${pkgname}.png" + done +} + diff --git a/pkgbuilds/signal-desktop-beta/signal beta.desktop b/pkgbuilds/signal-desktop-beta/signal beta.desktop new file mode 100644 index 00000000..7a4e9517 --- /dev/null +++ b/pkgbuilds/signal-desktop-beta/signal beta.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Type=Application +Name=Signal Beta +Comment=Signal Private Messenger for Linux - Beta version +Icon=signal-desktop-beta +Exec=signal-desktop-beta -- %u +Terminal=false +Categories=Network;InstantMessaging;Chat; +StartupWMClass=signal beta +MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha; +Keywords=sgnl;chat;im;messaging;messenger;sms;security;privat; +X-GNOME-UsesNotifications=true diff --git a/pkgbuilds/tzupdate/PKGBUILD b/pkgbuilds/tzupdate/PKGBUILD index a8d05c73..c9aeb3a2 100644 --- a/pkgbuilds/tzupdate/PKGBUILD +++ b/pkgbuilds/tzupdate/PKGBUILD @@ -5,7 +5,7 @@ pkgver=3.1.0 pkgrel=1 pkgdesc='Set the system timezone based on IP geolocation' url=https://github.com/cdown/tzupdate -arch=('x86_64') +arch=('x86_64' 'aarch64') options=(!lto) license=('MIT') makedepends=('cargo') diff --git a/pkgbuilds/wl-clip-persist/.SRCINFO b/pkgbuilds/wl-clip-persist/.SRCINFO new file mode 100644 index 00000000..1b40037a --- /dev/null +++ b/pkgbuilds/wl-clip-persist/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = wl-clip-persist + pkgdesc = Keep Wayland clipboard even after programs close + pkgver = 0.4.3 + pkgrel = 1 + url = https://github.com/Linus789/wl-clip-persist + arch = x86_64 + arch = aarch64 + arch = i686 + license = MIT + makedepends = cargo + depends = gcc-libs + conflicts = wl-clip-persist-bin + conflicts = wl-clip-persist-git + source = wl-clip-persist-0.4.3.tar.gz::https://github.com/Linus789/wl-clip-persist/archive/v0.4.3.tar.gz + source = wl-clip-persist.service + sha256sums = 83df75502cf5699e71cd022730ae7c87d0cceaea396be83120643e9aa2b96d97 + sha256sums = 1687ab3e37573085ddd74e6cc2c58bd189e2ba62379f7846d07c5f38c21d0518 + +pkgname = wl-clip-persist diff --git a/pkgbuilds/wl-clip-persist/PKGBUILD b/pkgbuilds/wl-clip-persist/PKGBUILD new file mode 100644 index 00000000..76db23c7 --- /dev/null +++ b/pkgbuilds/wl-clip-persist/PKGBUILD @@ -0,0 +1,46 @@ +# Maintaner: Sergey A. + +pkgname=wl-clip-persist +pkgver=0.5.0 +pkgrel=1 +pkgdesc='Keep Wayland clipboard even after programs close' +arch=('x86_64' 'aarch64' 'i686') +url="https://github.com/Linus789/wl-clip-persist" +license=('MIT') +depends=('gcc-libs') +makedepends=('cargo') +conflicts=("${pkgname}-bin" "${pkgname}-git") +source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz" + 'wl-clip-persist.service') +sha256sums=('fdd2506e6556dda943a164d891fe498985838fdd0e94c54e595a8f1cd8c49b66' + '1687ab3e37573085ddd74e6cc2c58bd189e2ba62379f7846d07c5f38c21d0518') + +prepare() { + cd "$pkgname-$pkgver" + + export RUSTUP_TOOLCHAIN=stable + + cargo fetch --locked --target "$CARCH-unknown-linux-gnu" +} + +build() { + cd "$pkgname-$pkgver" + + export RUSTUP_TOOLCHAIN=stable + export CARGO_TARGET_DIR=target + + cargo build --release --frozen +} + +package() { + cd "$pkgname-$pkgver" + + install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin/" + + install -Dm 644 "$srcdir/$pkgname.service" \ + -t "$pkgdir/usr/lib/systemd/user/" + + install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname" + + install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname" +} diff --git a/pkgbuilds/wl-clip-persist/wl-clip-persist.service b/pkgbuilds/wl-clip-persist/wl-clip-persist.service new file mode 100644 index 00000000..09c7679d --- /dev/null +++ b/pkgbuilds/wl-clip-persist/wl-clip-persist.service @@ -0,0 +1,12 @@ +[Unit] +Description = Wayland clipboard persistence daemon +ConditionEnviroment = WAYLAND_DISPLAY + +[Service] +Type = simple +ExecStart = /usr/bin/wl-clip-persist --clipboard regular +Restart = on-failure + +[Install] +WantedBy = default.target + diff --git a/pkgbuilds/wl-screenrec/.SRCINFO b/pkgbuilds/wl-screenrec/.SRCINFO deleted file mode 100644 index a22bce33..00000000 --- a/pkgbuilds/wl-screenrec/.SRCINFO +++ /dev/null @@ -1,23 +0,0 @@ -pkgbase = wl-screenrec - pkgdesc = High performance hardware accelerated wlroots screen recorder - pkgver = 0.2.0 - pkgrel = 2 - url = https://github.com/russelltg/wl-screenrec - arch = i686 - arch = x86_64 - arch = aarch64 - license = APACHE - makedepends = cargo - makedepends = clang - makedepends = rust - makedepends = vulkan-headers - depends = ffmpeg - depends = libva-driver - depends = gcc-libs - depends = glibc - provides = wl-screenrec - conflicts = wl-screenrec-git - source = https://github.com/russelltg/wl-screenrec/archive/refs/tags/v0.2.0.tar.gz - sha256sums = 214cbd9c74a57f980eacb6623743dea94f20b2f3fcea4705cec2b865b5f84fbb - -pkgname = wl-screenrec diff --git a/pkgbuilds/wl-screenrec/.gitignore b/pkgbuilds/wl-screenrec/.gitignore deleted file mode 100644 index 05a3cc3e..00000000 --- a/pkgbuilds/wl-screenrec/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -pkg/ -wl-screenrec/ -*.pkg.tar* diff --git a/pkgbuilds/wl-screenrec/PKGBUILD b/pkgbuilds/wl-screenrec/PKGBUILD deleted file mode 100644 index b6055327..00000000 --- a/pkgbuilds/wl-screenrec/PKGBUILD +++ /dev/null @@ -1,42 +0,0 @@ -pkgname=wl-screenrec -pkgver=0.2.0 -pkgrel=3 -pkgdesc="High performance hardware accelerated wlroots screen recorder" -arch=('i686' 'x86_64' 'aarch64') -url="https://github.com/russelltg/wl-screenrec" -license=('APACHE') -provides=("wl-screenrec") -makedepends=('cargo' 'clang' 'rust' 'vulkan-headers') -depends=('ffmpeg' 'libva-driver' 'gcc-libs' 'glibc') -conflicts=('wl-screenrec-git') -source=("https://github.com/russelltg/wl-screenrec/archive/refs/tags/v${pkgver}.tar.gz") -sha256sums=('214cbd9c74a57f980eacb6623743dea94f20b2f3fcea4705cec2b865b5f84fbb') - -prepare() { - cd "$pkgname-$pkgver" - export RUSTUP_TOOLCHAIN=stable - cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" -} - -build() { - cd "$pkgname-$pkgver" - export RUSTUP_TOOLCHAIN=stable - export CARGO_TARGET_DIR=target - cargo build --frozen --release --all-features - - ./target/release/wl-screenrec --generate-completions bash > wl-screenrec.bash - ./target/release/wl-screenrec --generate-completions zsh > wl-screenrec.zsh - ./target/release/wl-screenrec --generate-completions fish > wl-screenrec.fish -} - -package() { - cd "$pkgname-$pkgver" - install -Dm755 "target/release/wl-screenrec" "$pkgdir/usr/bin/wl-screenrec" - - install -Dm644 "README.md" "$pkgdir/usr/share/doc/${pkgname}/README.md" - install -Dm644 "LICENSE" "$pkgdir/usr/share/licenses/${pkgname}/LICENSE" - - install -Dm644 "wl-screenrec.bash" "$pkgdir/usr/share/bash-completion/completions/wl-screenrec" - install -Dm644 "wl-screenrec.zsh" "$pkgdir/usr/share/zsh/site-functions/_wl-screenrec" - install -Dm644 "wl-screenrec.fish" "$pkgdir/usr/share/fish/vendor_completions.d/wl-screenrec.fish" -} diff --git a/pkgbuilds/yaru-icon-theme/.SRCINFO b/pkgbuilds/yaru-icon-theme/.SRCINFO new file mode 100644 index 00000000..03874f43 --- /dev/null +++ b/pkgbuilds/yaru-icon-theme/.SRCINFO @@ -0,0 +1,50 @@ +pkgbase = yaru + pkgdesc = Yaru default ubuntu theme + pkgver = 25.10.2 + pkgrel = 1 + url = https://github.com/ubuntu/yaru + arch = any + license = GPL3 + makedepends = meson + makedepends = sassc + makedepends = git + source = https://github.com/ubuntu/yaru/archive/25.10.2.tar.gz + sha256sums = 43556fbd33e22c7b0deab066cda62aae93e176cc6eadc9e84e82249d390b50e9 + +pkgname = yaru-sound-theme + pkgdesc = Yaru default ubuntu sound theme + +pkgname = yaru-gtk-theme + pkgdesc = Yaru default ubuntu gtk theme + depends = gtk3 + depends = gdk-pixbuf2 + depends = gtk-engine-murrine + depends = gnome-themes-extra + +pkgname = yaru-gtksourceview-theme + pkgdesc = Yaru default ubuntu gtksourceview theme + +pkgname = yaru-gnome-shell-theme + pkgdesc = Yaru default ubuntu gnome shell theme + depends = gnome-shell + +pkgname = yaru-xfwm4-theme + pkgdesc = Yaru default ubuntu xfwm4 theme + +pkgname = yaru-unity-theme + pkgdesc = Yaru default ubuntu unity theme + +pkgname = yaru-metacity-theme + pkgdesc = Yaru default ubuntu metacity theme + depends = metacity + +pkgname = yaru-icon-theme + pkgdesc = Yaru default ubuntu icon theme + depends = hicolor-icon-theme + depends = gtk-update-icon-cache + depends = librsvg + +pkgname = yaru-session + pkgdesc = Yaru session + depends = gnome-shell + depends = yaru-gnome-shell-theme diff --git a/pkgbuilds/yaru-icon-theme/.gitignore b/pkgbuilds/yaru-icon-theme/.gitignore new file mode 100644 index 00000000..0809c48f --- /dev/null +++ b/pkgbuilds/yaru-icon-theme/.gitignore @@ -0,0 +1,4 @@ +pkg +src +*.tar.gz +*.tar.zst \ No newline at end of file diff --git a/pkgbuilds/yaru-icon-theme/PKGBUILD b/pkgbuilds/yaru-icon-theme/PKGBUILD new file mode 100644 index 00000000..02bbb5b3 --- /dev/null +++ b/pkgbuilds/yaru-icon-theme/PKGBUILD @@ -0,0 +1,135 @@ +# Maintainer: drakkan +# Maintainer: Chris Billington +pkgbase=yaru +pkgname=('yaru-sound-theme' + 'yaru-gtk-theme' + 'yaru-gtksourceview-theme' + 'yaru-gnome-shell-theme' + 'yaru-xfwm4-theme' + 'yaru-unity-theme' + 'yaru-metacity-theme' + 'yaru-icon-theme' + 'yaru-session') +pkgver=25.10.2 +pkgrel=1 +pkgdesc="Yaru default ubuntu theme" +arch=(any) +url="https://github.com/ubuntu/yaru" +license=('GPL3') + +makedepends=('meson' 'sassc' 'git') + +source=("https://github.com/ubuntu/yaru/archive/${pkgver}.tar.gz") +sha256sums=('43556fbd33e22c7b0deab066cda62aae93e176cc6eadc9e84e82249d390b50e9') + +build() { + arch-meson $pkgbase-$pkgver build + meson configure build -Dubuntu-unity=true -Dxfwm4=true + ninja -C build +} + +_delete_all_from_pkgdir_except() { + if [[ "$1" != "sound-theme" ]]; then + rm -r "${pkgdir}"/usr/share/sounds + fi + if [[ "$1" != "gtk-theme" ]]; then + rm -r "${pkgdir}"/usr/share/themes/Yaru{,-*}/{gtk-*,index.theme} + fi + if [[ "$1" != "gtksourceview-theme" ]]; then + rm -r "${pkgdir}"/usr/share/gtksourceview-* + rm -r "${pkgdir}"/usr/share/*-gtksourceview-* + fi + if [[ "$1" != "gnome-shell-theme" ]]; then + rm "${pkgdir}"/usr/share/themes/Yaru{,-*}/gnome-shell + rm -r "${pkgdir}"/usr/share/gnome-shell/theme/Yaru{,-*} + fi + if [[ "$1" != "xfwm4-theme" ]]; then + rm -r "${pkgdir}"/usr/share/themes/Yaru{,-*}/xfwm4 + fi + if [[ "$1" != "unity-theme" ]]; then + rm -r "${pkgdir}"/usr/share/themes/Yaru{,-*}/unity + fi + if [[ "$1" != "metacity-theme" ]]; then + rm -r "${pkgdir}"/usr/share/themes/Yaru{,-*}/metacity-1 + fi + if [[ "$1" != "icon-theme" ]]; then + rm -r "${pkgdir}"/usr/share/icons + fi + if [[ "$1" != "session" ]]; then + rm -r "${pkgdir}"/usr/share/{glib-2.0,xsessions,wayland-sessions} + rm -r "${pkgdir}"/usr/share/gnome-shell/{extensions,modes} + fi + # Delete remaining empty directories: + find "${pkgdir}" -type d -empty -delete +} + +package_yaru-sound-theme() { + pkgdesc="Yaru default ubuntu sound theme" + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "sound-theme" +} + +package_yaru-gtk-theme() { + pkgdesc="Yaru default ubuntu gtk theme" + depends=("gtk3" "gdk-pixbuf2" "gtk-engine-murrine" "gnome-themes-extra") + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "gtk-theme" +} + +package_yaru-gtksourceview-theme() { + pkgdesc="Yaru default ubuntu gtksourceview theme" + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "gtksourceview-theme" +} + +package_yaru-gnome-shell-theme() { + pkgdesc="Yaru default ubuntu gnome shell theme" + depends=("gnome-shell") + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "gnome-shell-theme" +} + +package_yaru-xfwm4-theme() { + pkgdesc="Yaru default ubuntu xfwm4 theme" + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "xfwm4-theme" +} + +package_yaru-unity-theme() { + pkgdesc="Yaru default ubuntu unity theme" + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "unity-theme" +} + +package_yaru-metacity-theme() { + pkgdesc="Yaru default ubuntu metacity theme" + depends=(metacity) + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "metacity-theme" +} + +package_yaru-icon-theme() { + pkgdesc="Yaru default ubuntu icon theme" + depends=("hicolor-icon-theme" "gtk-update-icon-cache" "librsvg") + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "icon-theme" +} + +package_yaru-session() { + pkgdesc="Yaru session" + depends=("gnome-shell" "yaru-gnome-shell-theme") + + DESTDIR="$pkgdir" ninja -C build install 2>&1 >> install.log + _delete_all_from_pkgdir_except "session" +} + + +# vim: ts=2 sw=2 et: