aseprite: 1.3.13 -> 1.3.16.1 (#474744)

This commit is contained in:
Gaétan Lepage
2025-12-29 17:51:18 +00:00
committed by GitHub
5 changed files with 85 additions and 45 deletions
+8 -10
View File
@@ -4,7 +4,6 @@
cmark,
curl,
fetchFromGitHub,
fetchpatch,
fmt,
fontconfig,
freetype,
@@ -23,6 +22,7 @@
libXi,
libXxf86vm,
libxcb,
libXrandr,
ninja,
pcre2,
pixman,
@@ -34,7 +34,7 @@
clangStdenv.mkDerivation (finalAttrs: {
pname = "aseprite";
version = "1.3.13";
version = "1.3.16.1";
srcs = [
(fetchFromGitHub {
@@ -43,7 +43,7 @@ clangStdenv.mkDerivation (finalAttrs: {
repo = "aseprite";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-eeB/4fQp1lbNYQj9LpNhOn7DYxaTc+BcmyvY2vPzpxk=";
hash = "sha256-s2lWg5udg/8pXjOcj2nXDS2uE3urkg1iC0Div7wkxUY=";
})
# Translation strings
@@ -51,8 +51,8 @@ clangStdenv.mkDerivation (finalAttrs: {
name = "aseprite-strings";
owner = "aseprite";
repo = "strings";
rev = "7b0af61dec1d98242d7eb2e9cab835d442d21235";
hash = "sha256-8OwwHCFP55pwLjk5O+a36hDZf9uX3P7cNliJM5SZdAg=";
rev = "0f49265d7e7aea4b862b7d1e670ed969e8a469b8";
hash = "sha256-S3YkWA5ECvyyqGvojDhIZci04CTjbJzTQiJ5FZsB4lU=";
})
];
@@ -89,6 +89,7 @@ clangStdenv.mkDerivation (finalAttrs: {
libXi
libXxf86vm
libxcb
libXrandr
pcre2
pixman
skia-aseprite
@@ -100,6 +101,7 @@ clangStdenv.mkDerivation (finalAttrs: {
./shared-fmt.patch
./shared-libwebp.patch
./shared-skia-deps.patch
./shared-libjpeg-turbo.patch
];
postPatch = ''
@@ -108,7 +110,6 @@ clangStdenv.mkDerivation (finalAttrs: {
'';
cmakeFlags = [
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
"-DENABLE_DESKTOP_INTEGRATION=ON"
"-DENABLE_UPDATER=OFF"
"-DUSE_SHARED_CMARK=ON"
@@ -117,9 +118,7 @@ clangStdenv.mkDerivation (finalAttrs: {
"-DUSE_SHARED_FREETYPE=ON"
"-DUSE_SHARED_GIFLIB=ON"
"-DUSE_SHARED_HARFBUZZ=ON"
"-DUSE_SHARED_JPEGLIB=ON"
"-DUSE_SHARED_LIBPNG=ON"
"-DUSE_SHARED_LIBWEBP=ON"
"-DUSE_SHARED_PIXMAN=ON"
"-DUSE_SHARED_TINYXML=OFF"
"-DUSE_SHARED_WEBP=ON"
@@ -167,8 +166,7 @@ clangStdenv.mkDerivation (finalAttrs: {
- Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
- Onion skinning.
'';
maintainers = [
];
maintainers = [ ];
platforms = lib.platforms.linux;
mainProgram = "aseprite";
};
@@ -0,0 +1,21 @@
diff --git a/cmake/FindJpegTurbo.cmake b/cmake/FindJpegTurbo.cmake
index 33b5204..0407a6a 100644
--- a/cmake/FindJpegTurbo.cmake
+++ b/cmake/FindJpegTurbo.cmake
@@ -9,14 +9,11 @@
if(LAF_BACKEND STREQUAL "skia")
- find_library(LIBJPEG_TURBO_LIBRARY NAMES libjpeg jpeg
- HINTS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
- set(LIBJPEG_TURBO_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/libjpeg-turbo")
+ find_library(LIBJPEG_TURBO_LIBRARY NAMES libjpeg jpeg)
add_library(libjpeg-turbo STATIC IMPORTED)
set_target_properties(libjpeg-turbo PROPERTIES
- IMPORTED_LOCATION "${LIBJPEG_TURBO_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES ${LIBJPEG_TURBO_INCLUDE_DIRS})
+ IMPORTED_LOCATION "${LIBJPEG_TURBO_LIBRARY}")
else()
+17 -6
View File
@@ -2,22 +2,33 @@
{
angle2 = fetchgit {
url = "https://chromium.googlesource.com/angle/angle.git";
rev = "8718783526307a3fbb35d4c1ad4e8101262a0d73";
hash = "sha256-UXYCqn++WCyncwNyuuq8rIkxlB7koMK9Ynx7TRzCIDE=";
rev = "21d124c4bf321a18dae1dc94602aa262fc346a8b";
hash = "sha256-Cz9n2ya4l3L1lvF4elHYJCfxr3l+h5UYOEhrhtw6WJg=";
fetchSubmodules = false;
};
dng_sdk = fetchgit {
url = "https://android.googlesource.com/platform/external/dng_sdk.git";
rev = "c8d0c9b1d16bfda56f15165d39e0ffa360a11123";
hash = "sha256-lTtvBUGaia0jhrxpw7k7NIq2SVyGmBJPCvjIqAQCmNo=";
};
icu = fetchgit {
url = "https://chromium.googlesource.com/chromium/deps/icu.git";
rev = "a0718d4f121727e30b8d52c7a189ebf5ab52421f";
hash = "sha256-BI3f/gf9GNDvSfXWeRHKBvznSz4mjXY8rM24kK7QvOM=";
};
icu4x = fetchgit {
url = "https://chromium.googlesource.com/external/github.com/unicode-org/icu4x.git";
rev = "bcf4f7198d4dc5f3127e84a6ca657c88e7d07a13";
hash = "sha256-Lha5m97zwTBFJZZUwewCv1blQh/VgDR0G2h+GMMAzME=";
};
piex = fetchgit {
url = "https://android.googlesource.com/platform/external/piex.git";
rev = "bb217acdca1cc0c16b704669dd6f91a1b509c406";
hash = "sha256-IhAfxlu0UmllihBP9wbg7idT8azlbb9arLKUaZ6qNxY=";
};
sfntly = fetchgit {
url = "https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git";
rev = "b55ff303ea2f9e26702b514cf6a3196a2e3e2974";
hash = "sha256-/zp1MsR31HehoC5OAI4RO8QBlm7mldQNiTI7Xr/LJeI=";
wuffs = fetchgit {
url = "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git";
rev = "e3f919ccfe3ef542cfc983a82146070258fb57f8";
hash = "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=";
};
}
+22 -16
View File
@@ -7,7 +7,6 @@
fontconfig,
gn,
harfbuzzFull,
icu,
lib,
libglvnd,
libjpeg,
@@ -26,13 +25,13 @@ let
in
clangStdenv.mkDerivation (finalAttrs: {
pname = "skia-aseprite";
version = "m102-861e4743af";
version = "m124-08a5439a6b";
src = fetchFromGitHub {
owner = "aseprite";
repo = "skia";
rev = finalAttrs.version;
hash = "sha256-IlZbalmHl549uDUfPG8hlzub8TLWhG0EsV6HVAPdsl0=";
hash = "sha256-D79Z/deJsDVclcUTZXUrNZdTPW2TFNaVF4mTeHO8I+U=";
};
nativeBuildInputs = [
@@ -45,13 +44,15 @@ clangStdenv.mkDerivation (finalAttrs: {
mkdir -p third_party/externals
ln -s ${angle2} third_party/externals/angle2
ln -s ${dng_sdk} third_party/externals/dng_sdk
ln -s ${icu} third_party/externals/icu
ln -s ${icu4x} third_party/externals/icu4x
ln -s ${piex} third_party/externals/piex
ln -s ${sfntly} third_party/externals/sfntly
ln -s ${wuffs} third_party/externals/wuffs
'';
configurePhase = ''
runHook preConfigure
gn gen lib --args="is_debug=false is_official_build=true extra_cflags=[\"-I${harfbuzzFull.dev}/include/harfbuzz\"]"
gn gen lib --args="is_debug=false is_official_build=true skia_use_system_icu=false extra_cflags=[\"-I${harfbuzzFull.dev}/include/harfbuzz\"]"
runHook postConfigure
'';
@@ -59,7 +60,6 @@ clangStdenv.mkDerivation (finalAttrs: {
expat
fontconfig
harfbuzzFull
icu
libglvnd
libjpeg
libpng
@@ -84,20 +84,26 @@ clangStdenv.mkDerivation (finalAttrs: {
# All these paths are used in some way when building Aseprite.
cp -r --parents -t $out/ \
include/codec \
include/config \
include/core \
include/effects \
include/gpu \
include/private \
include/utils \
include/third_party/skcms/*.h \
include/codec/**/*.h \
include/config/**/*.h \
include/core/**/*.h \
include/effects/**/*.h \
include/gpu/**/*.h \
include/private/**/*.h \
include/utils/**/*.h \
include/ports/**/*.h \
include/sksl/**/*.h \
lib/*.a \
modules/skshaper/include/*.h \
modules/skshaper/**/*.h \
modules/skcms/**/*.h \
modules/skunicode/**/*.h \
src/core/*.h \
src/gpu/**/*.h \
src/image/*.h \
src/sksl/**/*.h \
src/base/**/*.h \
third_party/externals/angle2/include \
third_party/skcms/**/*.h
third_party/externals/icu/flutter/icudtl.dat
runHook postInstall
'';
+17 -13
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env nix-shell
#!nix-shell --pure -i bash
#!nix-shell -p cacert curl git jq nix-prefetch-git
#!nix-shell -p cacert curl git jq nix-prefetch-git nix
# shellcheck shell=bash
# vim: set tabstop=2 shiftwidth=2 expandtab:
set -euo pipefail
@@ -12,17 +12,17 @@ shopt -s inherit_errexit
}
pkgpath=$(git rev-parse --show-toplevel)/pkgs/by-name/sk/skia-aseprite
depfilter=$(tr ' ' '|' <<< "$*")
depfilter=$(tr ' ' '|' <<<"$*")
depfile=$pkgpath/deps.nix
pkgfile=$pkgpath/package.nix
update_deps() {
local deps third_party_deps name url rev hash prefetch
version=$(sed -n 's|.*version = "\(.*\)".*|\1|p' < "$pkgfile")
version=$(sed -n 's|.*version = "\(.*\)".*|\1|p' <"$pkgfile")
deps=$(curl -fsS https://raw.githubusercontent.com/aseprite/skia/$version/DEPS)
third_party_deps=$(sed -n 's|[ ",]||g; s|:| |; s|@| |; s|^third_party/externals/||p' <<< "$deps")
filtered=$(grep -E -- "$depfilter" <<< "$third_party_deps")
third_party_deps=$(sed -n 's|[ ",]||g; s|:| |; s|@| |; s|^third_party/externals/||p' <<<"$deps")
filtered=$(grep -E -- "$depfilter" <<<"$third_party_deps")
if [[ -z $filtered ]]; then
printf >&2 '%s: error: filter "%s" matched nothing' "$0" "$depfilter"
return 1
@@ -32,16 +32,20 @@ update_deps() {
while read -r name url rev; do
printf >&2 'Fetching %s@%s\n' "$name" "$rev"
prefetch=$(nix-prefetch-git --quiet --rev "$rev" "$url")
hash=$(jq -r '.hash' <<< "$prefetch")
hash=$(jq -r '.hash' <<<"$prefetch")
cat << EOF
cat <<EOF
$name = fetchgit {
url = "$url";
rev = "$rev";
hash = "$hash";
};
EOF
# `read` could exit with a non-zero code without a newline at the end
# Avoid accidentally pulling in submodules during fetch.
if [[ $name == angle2 ]]; then
printf ' fetchSubmodules = false;\n'
fi
echo " };"
# `read` could exit with a non-zero code without a newline at the end
done < <(printf '%s\n' "$filtered")
printf '}\n'
}
@@ -53,8 +57,8 @@ update_version() {
--header 'Accept: application/vnd.github+json' \
--location --show-error --silent \
${GITHUB_TOKEN:+ --user \":$GITHUB_TOKEN\"} \
https://api.github.com/repos/aseprite/skia/releases/latest \
| jq -r .tag_name
https://api.github.com/repos/aseprite/skia/releases/latest |
jq -r .tag_name
)
newhash=$(nix-prefetch-git --quiet --rev "$newver" https://github.com/aseprite/skia.git | jq -r '.hash')
sed \
@@ -65,7 +69,7 @@ update_version() {
temp=$(mktemp)
trap 'ret=$?; rm -rf -- "$temp"; exit $ret' EXIT
update_version > "$temp"
update_version >"$temp"
cp "$temp" "$pkgfile"
update_deps > "$temp"
update_deps >"$temp"
cp "$temp" "$depfile"