From 6ef79206f65c1ae4912f51865ab0272c4d1a6318 Mon Sep 17 00:00:00 2001 From: rouhannb Date: Sun, 27 Oct 2019 11:03:05 -0400 Subject: [PATCH] Update to v1.2.15 Updates the package to v1.2.15, adds skia build, puts maintainer names in PKGBUILD. Skia deps are downloaded manually as downloading them during prepare turns out to be bad practice, and long options and verbosity are used for clarity, though it's not common or necessary. EULA message was removed as there's no need for it and makepkg should run without user input anyways. --- .SRCINFO | 78 +++++++++++++++++++-- PKGBUILD | 201 ++++++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 235 insertions(+), 44 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 0a198ba..be36f69 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,12 +1,15 @@ pkgbase = aseprite pkgdesc = Create animated sprites and pixel art - pkgver = 1.2.12 - pkgrel = 2 + pkgver = 1.2.15 + pkgrel = 1 url = http://www.aseprite.org/ arch = x86_64 arch = i686 license = custom makedepends = cmake + makedepends = ninja + makedepends = git + makedepends = python2 depends = cmark depends = pixman depends = curl @@ -16,14 +19,79 @@ pkgbase = aseprite depends = libjpeg-turbo depends = tinyxml depends = freetype2 - depends = libwebp depends = harfbuzz + depends = nettle + depends = fontconfig + depends = libxcursor + depends = desktop-file-utils conflicts = aseprite-git conflicts = aseprite-gpl - source = https://github.com/aseprite/aseprite/releases/download/v1.2.12/Aseprite-v1.2.12-Source.zip + source = https://github.com/aseprite/aseprite/releases/download/v1.2.15/Aseprite-v1.2.15-Source.zip source = aseprite.desktop - sha256sums = 23ef408bc31e414fc09cc094fc7d53d00c8f57bf3ca2a97c852cc7af2e9fdbfb + source = git+https://chromium.googlesource.com/chromium/tools/depot_tools.git + source = git+https://github.com/aseprite/skia.git#branch=aseprite-m71 + source = git+https://chromium.googlesource.com/chromium/buildtools.git#commit=505de88083136eefd056e5ee4ca0f01fe9b33de8 + source = git+https://skia.googlesource.com/common.git#commit=9737551d7a52c3db3262db5856e6bcd62c462b92 + source = angle2::git+https://chromium.googlesource.com/angle/angle.git#commit=956ab4d9fab36be9929e63829475d4d69b2c681c + source = git+https://android.googlesource.com/platform/external/dng_sdk.git#commit=96443b262250c390b0caefbf3eed8463ba35ecae + source = egl-registry::git+https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry#commit=a0bca08de07c7d7651047bedc0b653cfaaa4f2ae + source = git+https://android.googlesource.com/platform/external/expat.git#tag=android-6.0.1_r55 + source = freetype::git+https://skia.googlesource.com/third_party/freetype2.git#commit=7edc937fe679d14d66f55cf6f7fa607925d38f3c + source = git+https://android.googlesource.com/platform/external/googletest#commit=dd43b9998e9a44a579a7aba6c1309407d1a5ed95 + source = git+https://skia.googlesource.com/third_party/harfbuzz.git#tag=1.4.2 + source = git+https://chromium.googlesource.com/chromium/deps/icu.git#commit=ec9c1133693148470ffe2e5e53576998e3650c1d + source = git+https://skia.googlesource.com/external/github.com/ocornut/imgui.git#commit=bc6ac8b2aee0614debd940e45bc9cd0d9b355c86 + source = git+https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git#tag=1.0.0 + source = git+https://skia.googlesource.com/external/github.com/libjpeg-turbo/libjpeg-turbo.git#tag=2.0.0 + source = git+https://skia.googlesource.com/third_party/libpng.git#tag=v1.6.33 + source = git+https://chromium.googlesource.com/webm/libwebp.git#tag=v0.6.1 + source = git+https://skia.googlesource.com/external/github.com/lua/lua.git#tag=v5-3-4 + source = microhttpd::git+https://android.googlesource.com/platform/external/libmicrohttpd#commit=748945ec6f1c67b7efc934ab0808e1d32f2fb98d + source = opencl-lib::git+https://skia.googlesource.com/external/github.com/GPUOpen-Tools/common-lib-amd-APPSDK-3.0#commit=4e6d30e406d2e5a65e1d65e404fe6df5f772a32b + source = opengl-registry::git+https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry#commit=14b80ebeab022b2c78f84a573f01028c96075553 + source = git+https://android.googlesource.com/platform/external/piex.git#commit=bb217acdca1cc0c16b704669dd6f91a1b509c406 + source = git+https://skia.googlesource.com/third_party/sdl#commit=5d7cfcca344034aff9327f77fc181ae3754e7a90 + source = git+https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git#commit=b18b09b6114b9b7fe6fc2f96d8b15e8a72f66916 + source = spirv-headers::git+https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git#commit=661ad91124e6af2272afd00f804d8aa276e17107 + source = spirv-tools::git+https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git#commit=e9e4393b1c5aad7553c05782acefbe32b42644bd + source = swiftshader::git+https://swiftshader.googlesource.com/SwiftShader#commit=d6126aea667e37d2d7b57b0a381b9f26912a21b7 + source = git+https://chromium.googlesource.com/chromium/src/third_party/zlib#commit=ea3ba903faac98b64b2bf8de5e98cd97b335a474 + source = git+https://github.com/2d-inc/Nima-Cpp.git#commit=4bd02269d7d1d2e650950411325eafa15defb084 + source = git+https://github.com/2d-inc/Nima-Math-Cpp.git#commit=e0c12772093fa8860f55358274515b86885f0108 + source = gn::https://chromium-gn.storage-download.googleapis.com/2f27ff0b6118e5886df976da5effa6003d19d1ce + sha256sums = 813d6a099e1131f25f54e3935d6fdcdb1d0854ba757af074f3fc59dc869f38f4 sha256sums = c258fa38a0e0bd575f0bd744c4c3b60cf8d59d596c7572f84bd392e1c5e49b4f + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = c482981e91b5591ff85e055f3026956d6178aae3560ed984ff60b22e99351312 pkgname = aseprite diff --git a/PKGBUILD b/PKGBUILD index aabd354..af49c32 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,48 +1,162 @@ -# Maintainer: Wilson E. Alvarez +# Maintainer: Fredrick Brennan +# Maintainer: Andrew Bueide +# Maintainer: rouhannb +# Contributor: Wilson E. Alvarez # Contributor: Benoit Favre # Contributor: Alexander Rødseth # Contributor: Kamil Biduś pkgname=aseprite -pkgver=1.2.12 -pkgrel=2 +pkgver=1.2.15 +pkgrel=1 pkgdesc='Create animated sprites and pixel art' arch=('x86_64' 'i686') url="http://www.aseprite.org/" license=('custom') -depends=('cmark' 'pixman' 'curl' 'giflib' 'zlib' 'libpng' 'libjpeg-turbo' 'tinyxml' 'freetype2' 'libwebp' 'harfbuzz') -makedepends=('cmake') +depends=('cmark' 'pixman' 'curl' 'giflib' 'zlib' 'libpng' 'libjpeg-turbo' 'tinyxml' 'freetype2' + 'harfbuzz' 'nettle' 'fontconfig' 'libxcursor' 'desktop-file-utils') +makedepends=('cmake' 'ninja' 'git' 'python2') conflicts=("aseprite-git" "aseprite-gpl") -source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/Aseprite-v${pkgver}-Source.zip" -"${pkgname}.desktop") -sha256sums=( -'23ef408bc31e414fc09cc094fc7d53d00c8f57bf3ca2a97c852cc7af2e9fdbfb' -'c258fa38a0e0bd575f0bd744c4c3b60cf8d59d596c7572f84bd392e1c5e49b4f' +source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname^}-\ +v${pkgver}-Source.zip" +"${pkgname}.desktop" +"git+https://chromium.googlesource.com/chromium/tools/depot_tools.git" +"git+https://github.com/${pkgname}/skia.git#branch=${pkgname}-m71" +"git+https://chromium.googlesource.com/chromium/buildtools.git\ +#commit=505de88083136eefd056e5ee4ca0f01fe9b33de8" +"git+https://skia.googlesource.com/common.git#commit=9737551d7a52c3db3262db5856e6bcd62c462b92" +"angle2::git+https://chromium.googlesource.com/angle/angle.git\ +#commit=956ab4d9fab36be9929e63829475d4d69b2c681c" +"git+https://android.googlesource.com/platform/external/dng_sdk.git\ +#commit=96443b262250c390b0caefbf3eed8463ba35ecae" +"egl-registry::git+https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry\ +#commit=a0bca08de07c7d7651047bedc0b653cfaaa4f2ae" +"git+https://android.googlesource.com/platform/external/expat.git#tag=android-6.0.1_r55" +"freetype::git+https://skia.googlesource.com/third_party/freetype2.git\ +#commit=7edc937fe679d14d66f55cf6f7fa607925d38f3c" +"git+https://android.googlesource.com/platform/external/googletest\ +#commit=dd43b9998e9a44a579a7aba6c1309407d1a5ed95" +"git+https://skia.googlesource.com/third_party/harfbuzz.git#tag=1.4.2" +"git+https://chromium.googlesource.com/chromium/deps/icu.git\ +#commit=ec9c1133693148470ffe2e5e53576998e3650c1d" +"git+https://skia.googlesource.com/external/github.com/ocornut/imgui.git\ +#commit=bc6ac8b2aee0614debd940e45bc9cd0d9b355c86" +"git+https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git\ +#tag=1.0.0" +"git+https://skia.googlesource.com/external/github.com/libjpeg-turbo/libjpeg-turbo.git#tag=2.0.0" +"git+https://skia.googlesource.com/third_party/libpng.git#tag=v1.6.33" +"git+https://chromium.googlesource.com/webm/libwebp.git#tag=v0.6.1" +"git+https://skia.googlesource.com/external/github.com/lua/lua.git#tag=v5-3-4" +"microhttpd::git+https://android.googlesource.com/platform/external/libmicrohttpd\ +#commit=748945ec6f1c67b7efc934ab0808e1d32f2fb98d" +"opencl-lib::git+https://skia.googlesource.com/external/github.com/GPUOpen-Tools/\ +common-lib-amd-APPSDK-3.0#commit=4e6d30e406d2e5a65e1d65e404fe6df5f772a32b" +"opengl-registry::git+https://skia.googlesource.com/external/github.com/KhronosGroup/\ +OpenGL-Registry#commit=14b80ebeab022b2c78f84a573f01028c96075553" +"git+https://android.googlesource.com/platform/external/piex.git\ +#commit=bb217acdca1cc0c16b704669dd6f91a1b509c406" +"git+https://skia.googlesource.com/third_party/sdl\ +#commit=5d7cfcca344034aff9327f77fc181ae3754e7a90" +"git+https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git\ +#commit=b18b09b6114b9b7fe6fc2f96d8b15e8a72f66916" +"spirv-headers::git+https://skia.googlesource.com/external/github.com/KhronosGroup/\ +SPIRV-Headers.git#commit=661ad91124e6af2272afd00f804d8aa276e17107" +"spirv-tools::git+https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git\ +#commit=e9e4393b1c5aad7553c05782acefbe32b42644bd" +"swiftshader::git+https://swiftshader.googlesource.com/SwiftShader\ +#commit=d6126aea667e37d2d7b57b0a381b9f26912a21b7" +"git+https://chromium.googlesource.com/chromium/src/third_party/zlib\ +#commit=ea3ba903faac98b64b2bf8de5e98cd97b335a474" +"git+https://github.com/2d-inc/Nima-Cpp.git#commit=4bd02269d7d1d2e650950411325eafa15defb084" +"git+https://github.com/2d-inc/Nima-Math-Cpp.git#commit=e0c12772093fa8860f55358274515b86885f0108" +"gn::https://chromium-gn.storage-download.googleapis.com/2f27ff0b6118e5886df976da5effa6003d19d1ce" ) +sha256sums=( +'813d6a099e1131f25f54e3935d6fdcdb1d0854ba757af074f3fc59dc869f38f4' +'c258fa38a0e0bd575f0bd744c4c3b60cf8d59d596c7572f84bd392e1c5e49b4f' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'SKIP' +'c482981e91b5591ff85e055f3026956d6178aae3560ed984ff60b22e99351312' +) + +prepare() { + cd "$srcdir" + + # Install skia deps (essentially runs git-sync-deps with the files already downloaded) + mkdir --parents --verbose skia/third_party/externals + + for dep in buildtools common + do + rm --recursive --force "skia/$dep" + mv --force --no-target-directory --verbose "$dep" "skia/$dep" + done + + for dep in angle2 dng_sdk egl-registry expat freetype googletest harfbuzz icu imgui jsoncpp \ + libjpeg-turbo libpng libwebp lua microhttpd opencl-lib opengl-registry piex sdl \ + sfntly spirv-headers spirv-tools swiftshader zlib Nima-Cpp Nima-Math-Cpp + do + rm --recursive --force "skia/third_party/externals/$dep" + mv --force --no-target-directory --verbose "$dep" "skia/third_party/externals/$dep" + done + + chmod u=rwx,g=rx,o=rx --verbose gn + mv --verbose gn skia/bin/gn + cp --verbose skia/bin/gn skia/buildtools/linux64/gn + + # Skia assumes python is linked to python2, not python3 + # Also, running ninja from depot_tools seems to cause problems + mkdir --parents --verbose binsub + cd binsub + ln --force --symbolic --verbose /usr/bin/python2 python + ln --force --symbolic --verbose /usr/bin/python2-config python-config + ln --force --symbolic --verbose /usr/bin/ninja +} build() { cd "$srcdir" - if [ -z "$ASEPRITE_ACCEPT_EULA" ]; then - less EULA.txt - echo "Do you accept the EULA? yes/NO (set ASEPRITE_ACCEPT_EULA=yes to skip this message)" - read reply - [ "$reply" == "yes" ] || exit 1 - fi + # Build skia + _skiapath="$srcdir/binsub:$srcdir/depot_tools:$PATH" + cd skia + PATH="$_skiapath" gn gen out/Release --args="is_debug=false is_official_build=true\ + skia_use_system_expat=false skia_use_system_icu=false skia_use_system_libjpeg_turbo=false\ + skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false" + PATH="$_skiapath" ninja -C out/Release skia - # Disable Allegro4 alias fix which creates a function declaration conflict: - sed -e 's/DUSE_ALLEG4_BACKEND/DUSE_ALLEG4_BACKEND -DALLEGRO_NO_FIX_ALIASES/g' -i CMakeLists.txt + # Build aseprite + cd "$srcdir" + mkdir --parents --verbose build && cd build - mkdir -p build && cd build - - # CMake config notes: - # Do not build using the shared allegro4. Weird graphical glitches happen - # when linking to the library from the official repo. Also, since loadpng.h - # is also distributed in allegro4, using that shared library must also be - # disabled since there's no guarantee Arch users might have allegro4 - # installed. - - cmake -DUSE_SHARED_PIXMAN=ON \ + cmake \ + -DUSE_SHARED_PIXMAN=ON \ -DWITH_WEBP_SUPPORT=ON \ -DUSE_SHARED_CURL=ON \ -DUSE_SHARED_GIFLIB=ON \ @@ -54,28 +168,37 @@ build() { -DUSE_SHARED_CMARK=ON \ -DENABLE_UPDATER=OFF \ -DUSE_SHARED_FREETYPE=ON \ - -DUSE_SHARED_ALLEGRO4=OFF \ - -DUSE_SHARED_LIBLOADPNG=OFF \ - -DCMAKE_INSTALL_PREFIX:STRING=/usr .. + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DLAF_OS_BACKEND=skia \ + -DSKIA_DIR="$srcdir/skia" \ + -DSKIA_OUT_DIR="$srcdir/skia/out/Release" \ + -G Ninja \ + .. - make $MAKEFLAGS + cmake --build . } package() { cd "$srcdir"/build - make DESTDIR="$pkgdir/" install - install -Dm644 "$srcdir/$pkgname.desktop" \ + DESTDIR="$pkgdir" cmake --install . + # Aseprite doesn't seem to install README.md for some reason. + install --mode=644 --verbose 'bin/data/README.md' "$pkgdir/usr/share/aseprite/data" + + install -D --mode=644 --verbose "$srcdir/$pkgname.desktop" \ "$pkgdir/usr/share/applications/$pkgname.desktop" - install -Dm644 "../data/icons/ase48.png" \ + install -D --mode=644 --verbose "../data/icons/ase48.png" \ "$pkgdir/usr/share/pixmaps/$pkgname.png" - install -Dm644 "../EULA.txt" "$pkgdir/usr/share/licenses/$pkgname/EULA.txt" + install -D --mode=644 --verbose "../EULA.txt" "$pkgdir/usr/share/licenses/$pkgname/EULA.txt" # Remove conflicting files with libarchive - # TODO: With the current compilation options, looks like aseprite build process builds these binaries. Disable the compilation of the following files later on: + # TODO: With the current compilation options, looks like aseprite build process builds these + # binaries. Disable the compilation of the following files later on: # Note: Github issue: https://github.com/aseprite/aseprite/issues/1602 - rm -f "$pkgdir/usr/bin/"{bsdcat,bsdcpio,bsdtar,img2webp} - rm -rf "$pkgdir/usr/include" "$pkgdir/usr/lib" "$pkgdir/usr/share/man" "$pkgdir/usr/bin/cmark" + rm --verbose "$pkgdir/usr/bin/"{bsdcat,bsdcpio,bsdtar,img2webp} + rm --recursive --verbose "$pkgdir/usr/include" "$pkgdir/usr/lib" "$pkgdir/usr/share/WebP" \ + "$pkgdir/usr/share/man" } # vim:set ts=2 sw=2 et: