Skip to content

Commit 08b167d

Browse files
committed
prebuild v2.12.0-pb / Node 18 / all platforms
1 parent 5b332c3 commit 08b167d

10 files changed

Lines changed: 60 additions & 35 deletions

File tree

.github/workflows/prebuild.yaml

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ jobs:
4949
strategy:
5050
fail-fast: false
5151
matrix:
52-
node: [8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
53-
canvas_tag: ["v2.11.2"] # e.g. "v2.6.1"
52+
node: [18]
53+
canvas_tag: ["v2.12.0-pb"] # e.g. "v2.6.1"
5454
name: ${{ matrix.canvas_tag }}, Node.js ${{ matrix.node }}, Linux
5555
runs-on: ubuntu-latest
5656
container:
@@ -81,9 +81,8 @@ jobs:
8181
set -ex
8282
mkdir -p prebuild
8383
cp -rfv ./prebuild-branch/prebuild/* ./prebuild/
84-
npm install -g node-gyp@6
84+
npm install -g node-gyp
8585
npm install --ignore-scripts
86-
. prebuild/Linux/preinstall.sh
8786
cp prebuild/Linux/binding.gyp binding.gyp
8887
node-gyp rebuild -j 2
8988
. prebuild/Linux/bundle.sh
@@ -142,10 +141,10 @@ jobs:
142141
strategy:
143142
fail-fast: false
144143
matrix:
145-
node: [13, 14, 15, 16, 17, 18, 19]
146-
canvas_tag: ["v2.11.2"] # e.g. "v2.6.1"
144+
node: [18]
145+
canvas_tag: ["v2.12.0-pb"] # e.g. "v2.6.1"
147146
name: ${{ matrix.canvas_tag}}, Node.js ${{ matrix.node }}, macOS
148-
runs-on: macos-latest
147+
runs-on: macos-15
149148
env:
150149
CANVAS_VERSION_TO_BUILD: ${{ matrix.canvas_tag }}
151150
steps:
@@ -177,6 +176,12 @@ jobs:
177176
brew uninstall --force --ignore-dependencies cairo pango librsvg giflib harfbuzz
178177
npm test
179178
179+
- name: Sign the executable
180+
run: |
181+
for file in $(ls build/Release);
182+
do codesign --deep --force --sign - build/Release/$file;
183+
done;
184+
180185
- name: Make bundle
181186
id: make_bundle
182187
run: . prebuild/tarball.sh
@@ -215,10 +220,10 @@ jobs:
215220
strategy:
216221
fail-fast: false
217222
matrix:
218-
node: [13, 14, 15, 16, 17, 18, 19]
219-
canvas_tag: ["v2.11.2"] # e.g. "v2.6.1"
223+
node: [18]
224+
canvas_tag: ["v2.12.0-pb"] # e.g. "v2.6.1"
220225
name: ${{ matrix.canvas_tag}}, Node.js ${{ matrix.node }}, Windows
221-
runs-on: windows-2019
226+
runs-on: windows-2025
222227
env:
223228
CANVAS_VERSION_TO_BUILD: ${{ matrix.canvas_tag }}
224229
steps:
@@ -227,6 +232,7 @@ jobs:
227232
# https://github.com/msys2/setup-msys2#setup-msys2
228233
# https://github.com/actions/virtual-environments/pull/632
229234
- uses: msys2/setup-msys2@v2
235+
id: msys2
230236
with:
231237
msystem: UCRT64
232238
update: true
@@ -245,9 +251,11 @@ jobs:
245251

246252
- name: Build
247253
run: |
254+
winget install --accept-source-agreements --id=Microsoft.VCRedist.2010.x64 -e
255+
echo "MSYS2 LOCATION: ${{steps.msys2.outputs.msys2-location}}"
248256
git checkout ${{ matrix.canvas_tag }}
249257
git checkout $env:GITHUB_SHA -- prebuild/
250-
npm install -g node-gyp@8
258+
npm install -g node-gyp
251259
npm prefix -g | % {npm config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js"}
252260
npm install --ignore-scripts
253261
msys2 -c ". prebuild/Windows/preinstall.sh"
@@ -261,6 +269,8 @@ jobs:
261269
- name: Bundle pt 2
262270
shell: msys2 {0}
263271
run: |
272+
# removes object files and debug
273+
. prebuild/Windows/bundle.sh
264274
./depends.exe -c -oc depends.csv build\\Release\\canvas.node || true
265275
[ -f depends.csv ] || { echo "error invoking depends.exe"; exit 1; }
266276

prebuild/Linux/binding.gyp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
],
2323
'defines': [
2424
'HAVE_GIF',
25-
'HAVE_JPEG',
26-
'HAVE_RSVG'
25+
'HAVE_JPEG'
2726
],
2827
'libraries': [
2928
'<!@(pkg-config pixman-1 --libs)',

prebuild/Linux/bundle.sh

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
set -ex
22

3-
copies=$(lddtree.sh -l build/Release/canvas.node | sed -r -e '/^\/lib/d' -e '/canvas.node$/d');
3+
# ChatGPT gave me this. I'm doing the lazy thing instead of properly updating
4+
# the dockerfile because I'm almost done with a zig cross build
5+
sed -i '
6+
s|deb.debian.org/debian|archive.debian.org/debian|g;
7+
s|security.debian.org/debian-security|archive.debian.org/debian-security|g;
8+
' /etc/apt/sources.list
9+
apt-get -o Acquire::Check-Valid-Until=false update
10+
# end ChatGPT
411

5-
apt install -y patchelf
12+
apt-get update
13+
apt install -y patchelf pax-utils
14+
15+
copies=$(lddtree -l build/Release/canvas.node | sed -r -e '/^\/lib/d' -e '/canvas.node$/d');
16+
17+
# remove the big artifacts we will not use.
18+
rm -r build/Release/.deps
19+
rm -r build/Release/obj.target
620

721
for so in $copies; do
822
cp $so build/Release
923
# Set the run_path for all dependencies.
1024
patchelf --set-rpath '$ORIGIN' build/Release/$(basename $so)
1125
done;
26+
27+
find "./build/Release" -type f -name "*.so*" -exec strip --strip-unneeded {} \;

prebuild/Linux/preinstall.sh

Lines changed: 0 additions & 10 deletions
This file was deleted.

prebuild/Windows/binding.gyp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
'defines': [
2424
'HAVE_GIF',
2525
'HAVE_JPEG',
26-
'HAVE_RSVG',
2726
'HAVE_BOOLEAN', # or jmorecfg.h tries to define it
2827
'_USE_MATH_DEFINES', # for M_PI
2928
'NOMINMAX' # allow std::min/max to work
@@ -38,8 +37,7 @@
3837
'D:/a/_temp/msys64/ucrt64/lib/libglib-2.0-0.lib',
3938
'D:/a/_temp/msys64/ucrt64/lib/libturbojpeg.lib',
4039
'D:/a/_temp/msys64/ucrt64/lib/libgif-7.lib',
41-
'D:/a/_temp/msys64/ucrt64/lib/libfreetype-6.lib',
42-
'D:/a/_temp/msys64/ucrt64/lib/librsvg-2-2.lib'
40+
'D:/a/_temp/msys64/ucrt64/lib/libfreetype-6.lib'
4341
],
4442
'include_dirs': [
4543
'<!(node -e "require(\'nan\')")',
@@ -53,7 +51,6 @@
5351
'D:/a/_temp/msys64/ucrt64/include/pixman-1',
5452
'D:/a/_temp/msys64/ucrt64/include/freetype2',
5553
'D:/a/_temp/msys64/ucrt64/include/fontconfig',
56-
'D:/a/_temp/msys64/ucrt64/include/librsvg-2.0',
5754
'D:/a/_temp/msys64/ucrt64/include/gdk-pixbuf-2.0',
5855
'D:/a/_temp/msys64/ucrt64/include/libgsf-1' # NEW
5956
],

prebuild/Windows/bundle.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# remove the big artifacts we will not use.
2+
# on windows this is >45mbytes.
3+
rm -r build/Release/obj
4+
rm -r build/Release/canvas.exp
5+
rm -r build/Release/canvas.iobj
6+
rm -r build/Release/canvas.ipdb
7+
rm -r build/Release/canvas.lib
8+
rm -r build/Release/canvas.pdb

prebuild/Windows/preinstall.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ pacman --noconfirm -S \
1515
ucrt64/mingw-w64-ucrt-x86_64-giflib \
1616
ucrt64/mingw-w64-ucrt-x86_64-freetype \
1717
ucrt64/mingw-w64-ucrt-x86_64-fontconfig \
18-
ucrt64/mingw-w64-ucrt-x86_64-librsvg \
1918
ucrt64/mingw-w64-ucrt-x86_64-libxml2 \
2019
ucrt64/mingw-w64-ucrt-x86_64-libgsf
2120

prebuild/macOS/binding.gyp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
],
2323
'defines': [
2424
'HAVE_GIF',
25-
'HAVE_JPEG',
26-
'HAVE_RSVG'
25+
'HAVE_JPEG'
2726
],
2827
'libraries': [
2928
'<!@(pkg-config pixman-1 --libs)',
@@ -41,7 +40,8 @@
4140
'<!@(pkg-config libpng --cflags-only-I | sed s/-I//g)',
4241
'<!@(pkg-config pangocairo --cflags-only-I | sed s/-I//g)',
4342
'<!@(pkg-config freetype2 --cflags-only-I | sed s/-I//g)',
44-
'<!@(pkg-config librsvg-2.0 --cflags-only-I | sed s/-I//g)'
43+
'<!@(pkg-config librsvg-2.0 --cflags-only-I | sed s/-I//g)',
44+
'/opt/homebrew/include'
4545
],
4646
'xcode_settings': {
4747
'GCC_ENABLE_CPP_EXCEPTIONS': 'YES'

prebuild/macOS/bundle.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
build=build/Release
22

3+
# remove the big artifacts we will not use.
4+
rm -r build/Release/.deps
5+
rm -r build/Release/obj.target
6+
37
~/Library/Python/*/bin/macpack build/Release/canvas.node -d .
48

prebuild/macOS/preinstall.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ rm -f /usr/local/bin/pydoc3 || :
88
rm -f /usr/local/bin/python3 || :
99
rm -f /usr/local/bin/python3-config || :
1010

11-
brew install --force pkg-config cairo pango librsvg giflib
11+
# two or more of these packages have python3 as a dependency, and --overwrite
12+
# doesn't work to make them ignore conflicts. For now just ignore errors, yolo.
13+
brew install --force pkg-config cairo pango librsvg giflib || :
1214

13-
pip3 install --user macpack
15+
pip3 install --user --break-system-packages macpack

0 commit comments

Comments
 (0)