diff options
64 files changed, 3294 insertions, 2475 deletions
diff --git a/lib/licenses.nix b/lib/licenses.nix index 56299612a0e6..a376a681d58e 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -693,6 +693,11 @@ in mkLicense lset) ({ fullName = "SIL Open Font License 1.1"; }; + oml = { + spdxId = "OML"; + fullName = "Open Market License"; + }; + openldap = { spdxId = "OLDAP-2.8"; fullName = "Open LDAP Public License v2.8"; @@ -824,6 +829,11 @@ in mkLicense lset) ({ fullName = "TCL/TK License"; }; + ucd = { + fullName = "Unicode Character Database License"; + url = "https://fedoraproject.org/wiki/Licensing:UCD"; + }; + ufl = { fullName = "Ubuntu Font License 1.0"; url = "https://ubuntu.com/legal/font-licence"; diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 86d297730ce3..13936b4fd5a5 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -107,6 +107,7 @@ with lib.maintainers; { cinnamon = { members = [ + bobby285271 mkg20001 ]; scope = "Maintain Cinnamon desktop environment and applications made by the LinuxMint team."; diff --git a/pkgs/applications/audio/new-session-manager/default.nix b/pkgs/applications/audio/new-session-manager/default.nix index 78f71ed950f7..287b593d3eb8 100644 --- a/pkgs/applications/audio/new-session-manager/default.nix +++ b/pkgs/applications/audio/new-session-manager/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "new-session-manager"; - version = "1.5.3"; + version = "1.6.0"; src = fetchFromGitHub { owner = "linuxaudio"; repo = "new-session-manager"; rev = "v${version}"; - sha256 = "sha256-dQE7kUoxqDtTrk5euHqpMVeApxniecWZWOARcCl573o="; + sha256 = "sha256-QVykRYXToeVXr7pYQy2afgEAlXrQnm68+xEUZhd+FkY="; }; nativeBuildInputs = [ meson pkg-config ninja ]; diff --git a/pkgs/applications/audio/patchage/default.nix b/pkgs/applications/audio/patchage/default.nix index fffa05915a8e..a8a5bed0e073 100644 --- a/pkgs/applications/audio/patchage/default.nix +++ b/pkgs/applications/audio/patchage/default.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "patchage"; - version = "1.0.4"; + version = "1.0.6"; src = fetchFromGitLab { owner = "drobilla"; repo = pname; rev = "v${version}"; - hash = "sha256-feQXACsn2i2pJXs0EA9tIbtpl9Lxx5K4G7eG5VWuDV0="; + hash = "sha256-LzN6RyF/VT4LUVeR0904BnLuNMFZjFTDu9oDIKYG2Yo="; fetchSubmodules = true; }; diff --git a/pkgs/applications/backup/unifi-protect-backup/default.nix b/pkgs/applications/backup/unifi-protect-backup/default.nix index 07e078b588f5..dbfff51d8fde 100644 --- a/pkgs/applications/backup/unifi-protect-backup/default.nix +++ b/pkgs/applications/backup/unifi-protect-backup/default.nix @@ -2,15 +2,15 @@ python3.pkgs.buildPythonApplication rec { pname = "unifi-protect-backup"; - version = "0.7.1"; + version = "0.7.4"; format = "pyproject"; src = fetchFromGitHub { owner = "ep1cman"; repo = pname; - rev = "v${version}"; - hash = "sha256-HAiyNFWLs1McrlAB48me/iI15LssO8ec7BiWuJbRlbs="; + rev = "refs/tags/v${version}"; + hash = "sha256-4Kpz89yqKmxHmnaPYpvJ2hx46yfcaCYjOioyya+38vE="; }; preBuild = '' diff --git a/pkgs/applications/emulators/yuzu/default.nix b/pkgs/applications/emulators/yuzu/default.nix index 923dc5427997..b4441cddfd8f 100644 --- a/pkgs/applications/emulators/yuzu/default.nix +++ b/pkgs/applications/emulators/yuzu/default.nix @@ -5,23 +5,23 @@ }: let - # Fetched from https://api.yuzu-emu.org/gamedb, last updated 2022-07-14 + # Mirror of https://api.yuzu-emu.org/gamedb, last updated 2022-08-13 # Please make sure to update this when updating yuzu! compat-list = fetchurl { name = "yuzu-compat-list"; - url = "https://web.archive.org/web/20220714160745/https://api.yuzu-emu.org/gamedb"; + url = "https://raw.githubusercontent.com/flathub/org.yuzu_emu.yuzu/d83401d2ee3fd5e1922e31baed1f3bdb1c0f036c/compatibility_list.json"; sha256 = "sha256-anOmO7NscHDsQxT03+YbJEyBkXjhcSVGgKpDwt//GHw="; }; in { mainline = libsForQt5.callPackage ./generic.nix rec { pname = "yuzu-mainline"; - version = "1131"; + version = "1137"; src = fetchFromGitHub { owner = "yuzu-emu"; repo = "yuzu-mainline"; rev = "mainline-0-${version}"; - sha256 = "0lh8s59hrysfjz69yr0f44s3l4aaznmclq0xfnyblsk0cw9ripf6"; + sha256 = "sha256-DLU5hmjTnlpRQ6sbcU7as/KeI9dDJAFUzVLciql5niE="; fetchSubmodules = true; }; @@ -30,13 +30,13 @@ in { early-access = libsForQt5.callPackage ./generic.nix rec { pname = "yuzu-ea"; - version = "2901"; + version = "2907"; src = fetchFromGitHub { owner = "pineappleEA"; repo = "pineapple-src"; rev = "EA-${version}"; - sha256 = "0jymm9sdsnayjaffmcbpjck4k2yslx8zid2vsm4jfdaajr244q2z"; + sha256 = "sha256-spPW2/qeVyd1P1/Z2lcuA69igS3xV4KtcJ59yf9X4JI="; fetchSubmodules = true; }; diff --git a/pkgs/applications/emulators/yuzu/generic.nix b/pkgs/applications/emulators/yuzu/generic.nix index 9dac4409ce44..3b6b73f6f8fa 100644 --- a/pkgs/applications/emulators/yuzu/generic.nix +++ b/pkgs/applications/emulators/yuzu/generic.nix @@ -45,15 +45,6 @@ stdenv.mkDerivation rec { inherit pname version src; - # Replace icons licensed under CC BY-ND 3.0 with free ones to allow - # for binary redistribution: https://github.com/yuzu-emu/yuzu/pull/8104 - # The patch hosted on GitHub has the binary information in git format, which - # can’t be applied with patch(1), so it has been regenerated with - # "git format-patch --text --full-index --binary". - # Because pineapple strips all files beginning with a dot, the patch needs to - # be edited manually afterwards to remove all changes to those. - patches = [ ./yuzu-free-icons.patch ]; - nativeBuildInputs = [ cmake doxygen @@ -111,6 +102,13 @@ stdenv.mkDerivation rec { "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically ]; + qtWrapperArgs = [ + # Fixes vulkan detection + "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib" + # Without yuzu doesnt start on wayland. See https://github.com/yuzu-emu/yuzu/issues/6088 + "--set QT_QPA_PLATFORM xcb" + ]; + preConfigure = '' # This prevents a check for submodule directories. rm -f .gitmodules @@ -127,13 +125,6 @@ stdenv.mkDerivation rec { ln -sf ${compat-list} ./dist/compatibility_list/compatibility_list.json ''; - # Fix vulkan detection - postFixup = '' - for bin in $out/bin/yuzu $out/bin/yuzu-cmd; do - wrapProgram $bin --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib - done - ''; - passthru.updateScript = runCommandLocal "yuzu-${branch}-updateScript" { script = substituteAll { src = ./update.sh; @@ -154,7 +145,7 @@ stdenv.mkDerivation rec { platforms = [ "x86_64-linux" ]; license = with licenses; [ gpl3Plus - # Icons. Note that this would be cc0 and cc-by-nd-30 without the "yuzu-free-icons" patch + # Icons asl20 mit cc0 ]; maintainers = with maintainers; [ diff --git a/pkgs/applications/emulators/yuzu/update.sh b/pkgs/applications/emulators/yuzu/update.sh index 4972427627e7..074d5b155fbf 100755 --- a/pkgs/applications/emulators/yuzu/update.sh +++ b/pkgs/applications/emulators/yuzu/update.sh @@ -1,84 +1,105 @@ #! /usr/bin/env nix-shell -#! nix-shell -i bash -p nix nix-prefetch-git coreutils curl jq gnused +#! nix-shell -I nixpkgs=./. -i bash -p nix nix-prefetch-git coreutils curl jq gnused -set -e +set -euo pipefail # Will be replaced with the actual branch when running this from passthru.updateScript BRANCH="@branch@" +DEFAULT_NIX="$(dirname "${BASH_SOURCE[@]}")/default.nix" -if [[ ! "$(basename $PWD)" = "yuzu" ]]; then - echo "error: Script must be ran from yuzu's directory!" +if [[ "$(basename "$PWD")" = "yuzu" ]]; then + echo "error: Script must be ran from nixpkgs's root directory for compatibility with the maintainer script" exit 1 fi -getLocalVersion() { - pushd ../../../.. >/dev/null - nix eval --raw -f default.nix "$1".version - popd >/dev/null -} - -getLocalHash() { - pushd ../../../.. >/dev/null - nix eval --raw -f default.nix "$1".src.drvAttrs.outputHash - popd >/dev/null -} - -updateMainline() { - OLD_MAINLINE_VERSION="$(getLocalVersion "yuzu-mainline")" - OLD_MAINLINE_HASH="$(getLocalHash "yuzu-mainline")" - - NEW_MAINLINE_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ - "https://api.github.com/repos/yuzu-emu/yuzu-mainline/releases?per_page=1" | jq -r '.[0].name' | cut -d" " -f2)" - - if [[ "${OLD_MAINLINE_VERSION}" = "${NEW_MAINLINE_VERSION}" ]]; then - echo "yuzu-mainline is already up to date!" +updateBranch() { + local branch attribute oldVersion oldHash newVersion newHash + branch="$1" + attribute="yuzu-$branch" + [[ "$branch" = "early-access" ]] && attribute="yuzu-ea" # Attribute path doesnt match the branch name + oldVersion="$(nix eval --raw -f "./default.nix" "$attribute".version)" + oldHash="$(nix eval --raw -f "./default.nix" "$attribute".src.drvAttrs.outputHash)" + + if [[ "$branch" = "mainline" ]]; then + newVersion="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/yuzu-emu/yuzu-mainline/releases?per_page=1" \ + | jq -r '.[0].name' | cut -d" " -f2)" + elif [[ "$branch" = "early-access" ]]; then + newVersion="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=2" \ + | jq -r '.[].tag_name' | grep '^EA-[0-9]*' | head -n1 | cut -d"-" -f2 | cut -d" " -f1)" + fi - [ "$KEEP_GOING" ] && return || exit + if [[ "${oldVersion}" = "${newVersion}" ]]; then + echo "$attribute is already up to date." + return else - echo "yuzu-mainline: ${OLD_MAINLINE_VERSION} -> ${NEW_MAINLINE_VERSION}" + echo "$attribute: ${oldVersion} -> ${newVersion}" fi - echo " Fetching source code..." - - NEW_MAINLINE_HASH="$(nix-prefetch-git --quiet --fetch-submodules --rev "mainline-0-${NEW_MAINLINE_VERSION}" "https://github.com/yuzu-emu/yuzu-mainline" | jq -r '.sha256')" - - echo " Succesfully fetched. hash: ${NEW_MAINLINE_HASH}" + echo " fetching source code to generate hash..." + if [[ "$branch" = "mainline" ]]; then + newHash="$(nix-prefetch-git --quiet --fetch-submodules --rev "mainline-0-${newVersion}" "https://github.com/yuzu-emu/yuzu-mainline" | jq -r '.sha256')" + elif [[ "$branch" = "early-access" ]]; then + newHash="$(nix-prefetch-git --quiet --fetch-submodules --rev "EA-${newVersion}" "https://github.com/pineappleEA/pineapple-src" | jq -r '.sha256')" + fi + newHash="$(nix hash to-sri --type sha256 "${newHash}")" - sed -i "s/${OLD_MAINLINE_VERSION}/${NEW_MAINLINE_VERSION}/" ./default.nix - sed -i "s/${OLD_MAINLINE_HASH}/${NEW_MAINLINE_HASH}/" ./default.nix + sed -i "s,${oldVersion},${newVersion}," "$DEFAULT_NIX" + sed -i "s,${oldHash},${newHash},g" "$DEFAULT_NIX" + echo " succesfully updated $attribute. new hash: $newHash" } -updateEarlyAccess() { - OLD_EA_VERSION="$(getLocalVersion "yuzu-ea")" - OLD_EA_HASH="$(getLocalHash "yuzu-ea")" +updateCompatibilityList() { + local latestRevision oldUrl newUrl oldHash newHash oldDate newDate + latestRevision="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/flathub/org.yuzu_emu.yuzu/commits/master" | jq -r '.sha')" - NEW_EA_VERSION="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \ - "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=2" | jq -r '.[].tag_name' | grep '^EA-[0-9]*' | head -n1 | cut -d"-" -f2 | cut -d" " -f1)" + oldUrl="$(sed -n '/yuzu-compat-list/,/url/p' "$DEFAULT_NIX" | tail -n1 | cut -d'"' -f2)" + newUrl="https://raw.githubusercontent.com/flathub/org.yuzu_emu.yuzu/${latestRevision}/compatibility_list.json" - if [[ "${OLD_EA_VERSION}" = "${NEW_EA_VERSION}" ]]; then - echo "yuzu-ea is already up to date!" + oldDate="$(sed -n '/last updated.*/p' "$DEFAULT_NIX" | rev | cut -d' ' -f1 | rev)" + newDate="$(curl -s ${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/flathub/org.yuzu_emu.yuzu/commits/${latestRevision}" \ + | jq -r '.commit.committer.date' | cut -d'T' -f1)" - [ "$KEEP_GOING" ] && return || exit + oldHash="$(sed -n '/yuzu-compat-list/,/sha256/p' "$DEFAULT_NIX" | tail -n1 | cut -d'"' -f2)" + newHash="$(nix hash to-sri --type sha256 "$(nix-prefetch-url --quiet "$newUrl")")" + + if [[ "$oldHash" = "$newHash" ]]; then + echo "compatibility_list is already up to date." + return else - echo "yuzu-ea: ${OLD_EA_VERSION} -> ${NEW_EA_VERSION}" + echo "compatibility_list: $oldDate -> $newDate" fi - echo " Fetching source code..." - - NEW_EA_HASH="$(nix-prefetch-git --quiet --fetch-submodules --rev "EA-${NEW_EA_VERSION}" "https://github.com/pineappleEA/pineapple-src" | jq -r '.sha256')" - - echo " Succesfully fetched. hash: ${NEW_EA_HASH}" - - sed -i "s/${OLD_EA_VERSION}/${NEW_EA_VERSION}/" ./default.nix - sed -i "s/${OLD_EA_HASH}/${NEW_EA_HASH}/" ./default.nix + sed -i "s,${oldUrl},${newUrl},g" "$DEFAULT_NIX" + sed -i "s,${oldHash},${newHash},g" "$DEFAULT_NIX" + sed -i "s,${oldDate},${newDate},g" "$DEFAULT_NIX" + echo " succesfully updated compatibility_list. new hash: $newHash" } -if [[ "$BRANCH" = "mainline" ]]; then - updateMainline -elif [[ "$BRANCH" = "early-access" ]]; then - updateEarlyAccess -else - KEEP_GOING=1 - updateMainline - updateEarlyAccess +if [[ "$BRANCH" = "mainline" ]] || [[ "$BRANCH" = "early-access" ]]; then + updateBranch "$BRANCH" + updateCompatibilityList +else # Script is not ran from passthru.updateScript + if (( $# == 0 )); then + updateBranch "mainline" + updateBranch "early-access" + fi + + while (( "$#" > 0 )); do + case "$1" in + mainline|yuzu-mainline) + updateBranch "mainline" + ;; + early-access|yuzu-early-access|ea|yuzu-ea) + updateBranch "early-access" + ;; + *) + echo "error: invalid branch: $1." + echo "usage: $(basename "$0") [mainline|early-access]" + exit 1 + ;; + esac + shift + done + + updateCompatibilityList fi diff --git a/pkgs/applications/emulators/yuzu/yuzu-free-icons.patch b/pkgs/applications/emulators/yuzu/yuzu-free-icons.patch deleted file mode 100644 index 4332d29e3193..000000000000 --- a/pkgs/applications/emulators/yuzu/yuzu-free-icons.patch +++ /dev/null @@ -1,1177 +0,0 @@ -From 44edc19f8f1ac0046770d6f3587a17bdd0f82d32 Mon Sep 17 00:00:00 2001 -From: Kyle Kienapfel <Docteh@users.noreply.github.com> -Date: Tue, 19 Jul 2022 07:08:29 -0700 -Subject: [PATCH] Moving Icons away from CC BY-ND 3.0 for FOSS packaging - purposes - -I've seen some comments stating that sharing pre-compiled packages -of yuzu is problematic for linux distributions due to some contents -having license of CC BY-ND 3.0 - -Better licensed sources of icons have been found for most cases, -see the changes to the .reuse/dep5 file for details. - -Placeholders for connected/disconnected icons - -At the time of writing I consider these icons to be placeholders, -hence three copies. colorful is grey, default is black, qdarkstyle is white - -connected is gnome/16x16/network-idle.png with no changes -connected_notification is gnome/16x16/network-error.png with changes -disconnected is gnome/16x16/network-offline.png with changes - -Looking at licenses: GNOME icon theme is distributed under the terms of either -GNU LGPL v.3 or Creative Commons BY-SA 3.0 license. - -Debian appears to explicitly state they're licensing under -Creative Commons Attribution-Share Alike 3.0 - -From a tarball at the following link suggests we can just attribute GNOME Project -https://download.gnome.org/sources/gnome-icon-theme/ - -When attributing the artwork, using "GNOME Project" is enough. -Please link to http://www.gnome.org where available. ---- - LICENSES/CC-BY-ND-3.0.txt | 87 ------------------ - LICENSES/CC-BY-SA-3.0.txt | 60 ++++++++++++ - .../colorful/icons/16x16/connected.png | Bin 362 -> 575 bytes - .../icons/16x16/connected_notification.png | Bin 607 -> 760 bytes - .../colorful/icons/16x16/disconnected.png | Bin 784 -> 648 bytes - .../colorful/icons/48x48/list-add.png | Bin 496 -> 204 bytes - .../colorful/icons/48x48/sd_card.png | Bin 680 -> 981 bytes - dist/qt_themes/colorful/icons/48x48/star.png | Bin 1248 -> 1108 bytes - .../icons/16x16/lock.png | Bin 401 -> 0 bytes - .../icons/16x16/view-refresh.png | Bin 362 -> 0 bytes - .../colorful_midnight_blue/style.qrc | 4 +- - .../qt_themes/default/icons/16x16/checked.png | Bin 657 -> 414 bytes - .../default/icons/16x16/connected.png | Bin 269 -> 575 bytes - .../icons/16x16/connected_notification.png | Bin 517 -> 760 bytes - .../default/icons/16x16/disconnected.png | Bin 306 -> 648 bytes - dist/qt_themes/default/icons/16x16/failed.png | Bin 524 -> 431 bytes - dist/qt_themes/default/icons/16x16/lock.png | Bin 279 -> 318 bytes - .../default/icons/256x256/plus_folder.png | Bin 3135 -> 3521 bytes - .../default/icons/48x48/bad_folder.png | Bin 1088 -> 1007 bytes - dist/qt_themes/default/icons/48x48/chip.png | Bin 15070 -> 511 bytes - dist/qt_themes/default/icons/48x48/folder.png | Bin 410 -> 535 bytes - .../default/icons/48x48/list-add.png | Bin 316 -> 204 bytes - .../default/icons/48x48/no_avatar.png | Bin 588 -> 678 bytes - .../qt_themes/default/icons/48x48/sd_card.png | Bin 614 -> 561 bytes - dist/qt_themes/default/icons/48x48/star.png | Bin 686 -> 1029 bytes - .../qdarkstyle/icons/16x16/connected.png | Bin 397 -> 575 bytes - .../icons/16x16/connected_notification.png | Bin 526 -> 760 bytes - .../qdarkstyle/ic |