Skip to content

Commit 36b2d30

Browse files
committed
Moved PKGBUILD file for the MSYS2 build to this project.
1 parent 3610405 commit 36b2d30

File tree

2 files changed

+220
-7
lines changed

2 files changed

+220
-7
lines changed

.github/build/msys2/PKGBUILD

Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
# Adapted from upstream:
2+
# https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-imagemagick
3+
4+
# Maintainer: Alexey Pavlov <[email protected]>
5+
6+
_realname=imagemagick
7+
pkgbase="mingw-w64-${_realname}"
8+
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
9+
"${MINGW_PACKAGE_PREFIX}-${_realname}-docs")
10+
_basever=7.1.1
11+
_rc=-47
12+
pkgver=${_basever}${_rc//-/.} # pkgver doesn't have "," "/", "-" and space.
13+
pkgrel=1
14+
pkgdesc="An image viewing/manipulation program (mingw-w64)"
15+
arch=('any')
16+
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
17+
url="https://www.imagemagick.org/"
18+
msys2_repository_url="https://github.com/ImageMagick/ImageMagick"
19+
msys2_references=(
20+
'archlinux: imagemagick'
21+
'aur: imagemagick-full'
22+
'cygwin: ImageMagick'
23+
'gentoo: media-gfx/imagemagick'
24+
'cpe: cpe:/a:imagemagick:imagemagick'
25+
)
26+
license=("spdx:ImageMagick")
27+
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
28+
"${MINGW_PACKAGE_PREFIX}-autotools"
29+
"${MINGW_PACKAGE_PREFIX}-pkgconf"
30+
"${MINGW_PACKAGE_PREFIX}-cairo"
31+
"${MINGW_PACKAGE_PREFIX}-ghostscript"
32+
"${MINGW_PACKAGE_PREFIX}-graphviz"
33+
"${MINGW_PACKAGE_PREFIX}-libjxl"
34+
"${MINGW_PACKAGE_PREFIX}-librsvg"
35+
"${MINGW_PACKAGE_PREFIX}-libultrahdr"
36+
"${MINGW_PACKAGE_PREFIX}-libxml2"
37+
"${MINGW_PACKAGE_PREFIX}-openexr"
38+
"${MINGW_PACKAGE_PREFIX}-pango")
39+
depends=("${MINGW_PACKAGE_PREFIX}-bzip2"
40+
"${MINGW_PACKAGE_PREFIX}-djvulibre"
41+
"${MINGW_PACKAGE_PREFIX}-flif"
42+
"${MINGW_PACKAGE_PREFIX}-fftw"
43+
"${MINGW_PACKAGE_PREFIX}-fontconfig"
44+
"${MINGW_PACKAGE_PREFIX}-freetype"
45+
"${MINGW_PACKAGE_PREFIX}-glib2"
46+
"${MINGW_PACKAGE_PREFIX}-gsfonts"
47+
"${MINGW_PACKAGE_PREFIX}-jasper"
48+
"${MINGW_PACKAGE_PREFIX}-jbigkit"
49+
"${MINGW_PACKAGE_PREFIX}-lcms2"
50+
"${MINGW_PACKAGE_PREFIX}-libheif"
51+
"${MINGW_PACKAGE_PREFIX}-liblqr"
52+
"${MINGW_PACKAGE_PREFIX}-libpng"
53+
"${MINGW_PACKAGE_PREFIX}-libraqm"
54+
"${MINGW_PACKAGE_PREFIX}-libraw"
55+
"${MINGW_PACKAGE_PREFIX}-libtiff"
56+
"${MINGW_PACKAGE_PREFIX}-libltdl"
57+
"${MINGW_PACKAGE_PREFIX}-libwebp"
58+
"${MINGW_PACKAGE_PREFIX}-libwinpthread"
59+
"${MINGW_PACKAGE_PREFIX}-libwmf"
60+
"${MINGW_PACKAGE_PREFIX}-libxml2"
61+
"${MINGW_PACKAGE_PREFIX}-omp"
62+
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
63+
#"${MINGW_PACKAGE_PREFIX}-perl"
64+
"${MINGW_PACKAGE_PREFIX}-ttf-dejavu"
65+
"${MINGW_PACKAGE_PREFIX}-xz"
66+
"${MINGW_PACKAGE_PREFIX}-zlib"
67+
"${MINGW_PACKAGE_PREFIX}-zstd"
68+
)
69+
optdepends=("${MINGW_PACKAGE_PREFIX}-ghostscript: for Ghostscript support"
70+
"${MINGW_PACKAGE_PREFIX}-graphviz: for GVC support"
71+
"${MINGW_PACKAGE_PREFIX}-libjxl: for JPEG XL support"
72+
"${MINGW_PACKAGE_PREFIX}-librsvg: for SVG support"
73+
"${MINGW_PACKAGE_PREFIX}-libultrahdr: for Ultra HDR support"
74+
"${MINGW_PACKAGE_PREFIX}-openexr: for OpenEXR support"
75+
#"${MINGW_PACKAGE_PREFIX}-jasper: for JPEG-2000 support"
76+
#"${MINGW_PACKAGE_PREFIX}-libpng: for PNG support"
77+
#"${MINGW_PACKAGE_PREFIX}-libtiff: for PNG support"
78+
#"${MINGW_PACKAGE_PREFIX}-libwebp: for WEBP support"
79+
)
80+
# libtool files are required in imagemagick to relocate modules path
81+
options=('libtool')
82+
# source=(https://imagemagick.org/archive/releases/ImageMagick-${_basever}${_rc}.tar.xz{,.asc}
83+
# pathtools.c
84+
# pathtools.h
85+
# 001-7.1.1.39-relocate.patch)
86+
# sha256sums=('2396cd3c4237cfbc09a89d31d1cee157ee11fbc8ec1e540530e10175cb707160'
87+
# 'SKIP'
88+
# 'ebf471173f5ee9c4416c10a78760cea8afaf1a4a6e653977321e8547ce7bf3c0'
89+
# '1585ef1b61cf53a2ca27049c11d49e0834683dfda798f03547761375df482a90'
90+
# 'f3454a7938069f91fbe220dc03e444e7454a4a8a286b2408bbfe6f15a9c8a6dc')
91+
#Lexie Parsimoniae (ImageMagick code signing key) <[email protected]>
92+
validpgpkeys=('D8272EF51DA223E4D05B466989AB63D48277377A')
93+
94+
source_dir="$GITHUB_WORKSPACE"
95+
96+
# Helper macros to help make tasks easier #
97+
# apply_patch_with_msg() {
98+
# for _patch in "$@"
99+
# do
100+
# msg2 "Applying $_patch"
101+
# patch -Nbp1 -i "${srcdir}/${_patch}"
102+
# done
103+
# }
104+
# =========================================== #
105+
106+
prepare() {
107+
#test ! -d "${startdir}/../mingw-w64-pathtools" || {
108+
# cmp "${startdir}/../mingw-w64-pathtools/pathtools.c" "${srcdir}/pathtools.c" &&
109+
# cmp "${startdir}/../mingw-w64-pathtools/pathtools.h" "${srcdir}/pathtools.h"
110+
#} || exit 1
111+
112+
#cd ImageMagick-${_basever}${_rc}
113+
#cp -fHv "${srcdir}"/pathtools.[ch] MagickCore/
114+
115+
#apply_patch_with_msg \
116+
# 001-7.1.1.39-relocate.patch
117+
118+
cd "${source_dir}"
119+
120+
autoreconf -fi
121+
}
122+
123+
build() {
124+
export lt_cv_deplibs_check_method='pass_all'
125+
126+
mkdir -p "${source_dir}"/build-${MSYSTEM} && cd "${source_dir}"/build-${MSYSTEM}
127+
128+
# --with-lcms2, --with-opencl, --without-ltdl
129+
../configure \
130+
--prefix=${MINGW_PREFIX} \
131+
--build=${MINGW_CHOST} \
132+
--host=${MINGW_CHOST} \
133+
--disable-deprecated \
134+
--enable-legacy-support \
135+
--enable-hdri \
136+
--with-djvu \
137+
--with-fftw \
138+
--with-gslib \
139+
--with-gvc \
140+
--with-flif \
141+
--with-jxl \
142+
--with-lcms \
143+
--with-lqr \
144+
--with-modules \
145+
--with-openexr \
146+
--with-openjp2 \
147+
--with-rsvg \
148+
--with-uhdr \
149+
--with-webp \
150+
--with-wmf \
151+
--with-xml \
152+
--without-autotrace \
153+
--without-dps \
154+
--without-fpx \
155+
--with-jbig \
156+
--without-perl \
157+
--without-x \
158+
--with-raqm \
159+
--with-magick-plus-plus \
160+
--with-windows-font-dir=c:/Windows/fonts \
161+
--with-gs-font-dir=${MINGW_PREFIX}/share/fonts/gsfonts \
162+
--with-dejavu-font-dir=${MINGW_PREFIX}/share/fonts/TTF \
163+
CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
164+
165+
if check_option "debug" "y"; then
166+
MAKE_VERBOSE="V=1"
167+
fi
168+
make ${MAKE_VERBOSE}
169+
170+
#--enable-opencl \
171+
#--with-perl-options="INSTALLDIRS=vendor"
172+
}
173+
174+
package_imagemagick() {
175+
cd "${source_dir}"/build-${MSYSTEM}
176+
if check_option "debug" "y"; then
177+
MAKE_VERBOSE="V=1"
178+
fi
179+
make -j1 DESTDIR="${pkgdir}" install ${MAKE_VERBOSE}
180+
181+
#find . -name "*.xml" -exec sed -i "s/${MINGW_PREFIX}/newWord/g" '{}' \;
182+
183+
install -Dm644 "${source_dir}"/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
184+
install -Dm644 "${source_dir}"/NOTICE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/NOTICE"
185+
186+
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
187+
# fix hard-coded pathes in XML files.
188+
find "${pkgdir}"${MINGW_PREFIX}/lib -name "*.xml" -exec sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i {} \;
189+
# fix libtool .la files
190+
find "${pkgdir}"${MINGW_PREFIX}/lib -name "*.la" -exec sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i {} \;
191+
# fix hard-coded pathes in .pc files
192+
for _f in "${pkgdir}${MINGW_PREFIX}"\/lib\/pkgconfig\/*.pc; do
193+
sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${_f}
194+
done
195+
196+
# Split docs
197+
mkdir -p dest${MINGW_PREFIX}/share
198+
mv "${pkgdir}${MINGW_PREFIX}"/share/doc dest${MINGW_PREFIX}/share/doc
199+
}
200+
201+
package_imagemagick-docs() {
202+
pkgdesc+=" (documentation)"
203+
depends=()
204+
optdepends=()
205+
206+
cd "${source_dir}"/build-${MSYSTEM}
207+
mv dest/* "${pkgdir}"
208+
}
209+
210+
# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
211+
# vim: set ft=bash :
212+
213+
# generate wrappers
214+
for _name in "${pkgname[@]}"; do
215+
_short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
216+
_func="$(declare -f "${_short}")"
217+
eval "${_func/#${_short}/package_${_name}}"
218+
done
219+
# template end;

.github/workflows/main.yml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,13 @@ jobs:
118118

119119
- uses: actions/checkout@v4
120120

121-
- uses: actions/checkout@v4
122-
with:
123-
repository: ImageMagick/ImageMagick-Windows
124-
path: ImageMagick-Windows
125-
ref: refs/heads/main
126-
127121
- uses: msys2/setup-msys2@v2
128122
with:
129123
install: mingw-w64-x86_64-toolchain base-devel binutils
130124
update: true
131125

132126
- name: Building ImageMagick
133-
run: cd ImageMagick-Windows/Build/MSYS2 && makepkg-mingw --noconfirm --syncdeps
127+
run: cd .github/build/msys2 && makepkg-mingw --noconfirm --syncdeps
134128
env:
135129
MINGW_ARCH: mingw64
136130
PKGEXT: ".pkg.tar.xz"

0 commit comments

Comments
 (0)