Created
April 3, 2024 22:21
-
-
Save Chryseus/674f42ccf0a9b8cf646601da4c1b7792 to your computer and use it in GitHub Desktop.
ttf-ms-win10-auto fixed PKGBUILD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Maintainer: RubenKelevra | |
# Contributor: Zepman <the_zep_man@hotmail.com> | |
# Contributor: Michael Lass <bevan@bi-co.net> | |
# Contributor: Doug Newgard <scimmia at archlinux dot info> | |
# Contributor: reflexing <reflexing@reflexing.ru> | |
# BUILD INSTRUCTIONS: | |
# ------------------- | |
# | |
# Please note, that usage of Microsoft fonts outside running Windows | |
# system is prohibited by EULA (although in certain countries EULA is invalid). | |
# Please consult Microsoft license before using fonts. | |
# | |
# This PKGBUILD attempts to download fonts directly from Microsoft, by | |
# retrieving selective parts of the Windows 10 Enterprise 90-day evaluation | |
# edition. This only works if the user is allowed to mount filesystems through | |
# udisks2. This is determined by Polkit, which by default only allows users to | |
# do this when they are logged in locally (e.g. not through SSH). | |
# | |
# If it is possible to download fonts directly, around 200 MiB of data will be | |
# downloaded. Downloading the fonts this way can take 8-20 minutes, even on a | |
# fast connection. Be patient. Note that for tis method, it is necessary to | |
# mount an HTTP source and an ISO file as a loop device using FUSE. If the | |
# build fails, it might be that these must be unmounted manually. This can be | |
# done with: | |
# | |
# $ udisksctl unmount -b /dev/loop0 | |
# $ udisksctl loop-delete -b /dev/loop0 | |
# $ fusermount -uz src/mnt/http | |
# | |
# Replace /dev/loop0 with the relevant loop device, which is reported during | |
# package build. | |
# | |
# For the download, HTTP is used instead of HTTPS due to that httpfs2 does not | |
# support modern TLS versions. A file integrity check is performed after | |
# download. Due to the unconventional way that the data is downloaded, the | |
# verification is done in prepare(). | |
# | |
# If fonts cannot be downloaded directly, the ISO fill will be fully | |
# downloaded. Due to that install.wim will be extracted from the ISO, it is | |
# assumed that twice its size (almost 8 GiB) is necessary as temporary disk | |
# space. A free disk space check is performed before the ISO is downloaded. | |
# | |
# Please ignore any 'ln' errors when building this package. This is expected | |
# behavior. | |
# | |
# If for some reason you want to download the full ISO file, please visit: | |
# | |
# http://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise | |
# | |
# This package is based on ttf-ms-win10. Use that package if font files from | |
# a local source need to be used. | |
# | |
# ttf-ms-win10 is considered to be upstream for this package, which is why its | |
# maintainers and contributors are added as contributors to this package. | |
# Without their effort this package would not exist, nor be updated. | |
# | |
pkgbase=ttf-ms-win10-auto | |
pkgname=($pkgbase{,-japanese,-korean,-sea,-thai,-zh_cn,-zh_tw,-other}) | |
pkgver=10.0.19042.789 | |
pkgrel=5 | |
arch=(any) | |
url='http://www.microsoft.com/typography/fonts/product.aspx?PID=164' | |
license=(custom) | |
provides=(ttf-font ttf-ms-win10) | |
conflicts=(ttf-vista-fonts ttf-ms-win11-auto ttf-ms-win11) | |
makedepends=(udisks2 p7zip httpfs2-2gbplus) | |
# URL of ISO file from which to extract the fonts. | |
# Must be HTTP due to limitations of httpfs2. | |
_iso="http://software-static.download.prss.microsoft.com/pr/download/19042.631.201119-0144.20h2_release_svc_refresh_CLIENTENTERPRISEEVAL_OEMRET_x86FRE_en-us.iso" | |
_ttf_ms_win10=( | |
######################################################################################### | |
# Normal Bold Italic Bold+Italic # Full name # | |
######################################################################################### | |
arial.ttf arialbd.ttf ariali.ttf arialbi.ttf # Arial | |
ariblk.ttf # Arial Black | |
bahnschrift.ttf # Bahnschrift | |
calibri.ttf calibrib.ttf calibrii.ttf calibriz.ttf # Calibri | |
calibril.ttf calibrili.ttf # Calibri Light | |
cambria.ttc cambriab.ttf cambriai.ttf cambriaz.ttf # Cambria | |
Candara.ttf Candarab.ttf Candarai.ttf Candaraz.ttf # Candara | |
Candaral.ttf Candarali.ttf # Candara Light | |
comic.ttf comicbd.ttf comici.ttf comicz.ttf # Comic Sans MS | |
consola.ttf consolab.ttf consolai.ttf consolaz.ttf # Consolas | |
constan.ttf constanb.ttf constani.ttf constanz.ttf # Constantia | |
cour.ttf courbd.ttf couri.ttf courbi.ttf # Courier New | |
corbel.ttf corbelb.ttf corbeli.ttf corbelz.ttf # Corbel | |
corbell.ttf corbelli.ttf # Corbel Light | |
framd.ttf framdit.ttf # Franklin Gothic Medium | |
Gabriola.ttf # Gabriola | |
georgia.ttf georgiab.ttf georgiai.ttf georgiaz.ttf # Georgia | |
#holomdl2.ttf # HoloLens MDL2 Assets | |
impact.ttf # Impact | |
Inkfree.ttf # Ink Free | |
lucon.ttf # Lucida Console | |
l_10646.ttf # Lucida Sans Unicode | |
marlett.ttf # Marlett | |
micross.ttf # Microsoft Sans Serifc | |
pala.ttf palab.ttf palai.ttf palabi.ttf # Palatino Linotype | |
segoepr.ttf segoeprb.ttf # Segoe Print | |
segoesc.ttf segoescb.ttf # Segoe Script | |
segmdl2.ttf # Segoe MDL2 Assets | |
segoeui.ttf segoeuib.ttf segoeuii.ttf segoeuiz.ttf # Segoe UI | |
seguibl.ttf seguibli.ttf # Segoe UI Black | |
seguiemj.ttf # Segoe UI Emoji | |
seguihis.ttf # Segoe UI Historic | |
segoeuil.ttf seguili.ttf # Segoe UI Light | |
seguisb.ttf seguisbi.ttf # Segoe UI Semibold | |
segoeuisl.ttf seguisli.ttf # Segoe UI Semilight | |
seguisym.ttf # Segoe UI Symbol | |
Sitka.ttc SitkaB.ttc SitkaI.ttc SitkaZ.ttc # Sitka | |
sylfaen.ttf # Sylfaen | |
symbol.ttf # Symbol | |
tahoma.ttf tahomabd.ttf # Tahoma | |
times.ttf timesbd.ttf timesi.ttf timesbi.ttf # Times New Roman | |
trebuc.ttf trebucbd.ttf trebucit.ttf trebucbi.ttf # Trebuchet MS | |
verdana.ttf verdanab.ttf verdanai.ttf verdanaz.ttf # Verdana | |
webdings.ttf # Webdings | |
wingding.ttf # Wingdings | |
) | |
_ttf_ms_win10_japanese=( | |
######################################################################################### | |
# Normal Bold Italic Bold+Italic # Full name # | |
######################################################################################### | |
msgothic.ttc # MS Gothic | |
YuGothR.ttc YuGothB.ttc # Yu Gothic | |
YuGothM.ttc # Yu Gothic Medium | |
YuGothL.ttc # Yu Gothic Light | |
) | |
_ttf_ms_win10_korean=( | |
######################################################################################### | |
# Normal Bold Italic Bold+Italic # Full name # | |
######################################################################################### | |
malgun.ttf malgunbd.ttf # Malgun Gothic | |
malgunsl.ttf # Malgun Gothic Semilight | |
) | |
_ttf_ms_win10_sea=( | |
######################################################################################### | |
# Normal Bold Italic Bold+Italic # Full name # | |
######################################################################################### | |
javatext.ttf # Javanese Text | |
himalaya.ttf # Microsoft Himalaya | |
ntailu.ttf ntailub.ttf # Microsoft New Tai Lue | |
phagspa.ttf phagspab.ttf # Microsoft PhagsPa | |
taile.ttf taileb.ttf # Microsoft Tai Le | |
msyi.ttf # Microsoft Yi Baiti | |
monbaiti.ttf # Mongolian Baiti | |
mmrtext.ttf mmrtextb.ttf # Myanmar Text | |
Nirmala.ttf NirmalaB.ttf # Nirmala UI | |
NirmalaS.ttf # Nirmala UI Semilight | |
) | |
_ttf_ms_win10_thai=( | |
######################################################################################### | |
# Normal Bold Italic Bold+Italic # Full name # | |
######################################################################################### | |
LeelawUI.ttf LeelaUIb.ttf # Leelawadee UI | |
LeelUIsl.ttf # Leelawadee UI Semilight | |
) | |
_ttf_ms_win10_zh_cn=( # Chinese (Simplified) | |
######################################################################################### | |
# Normal Bold Italic Bold+Italic # Full name # | |
######################################################################################### | |
simsun.ttc # NSimSun | |
simsunb.ttf # SimSun-ExtB | |
msyh.ttc msyhbd.ttc # Microsoft YaHei | |
msyhl.ttc # Microsoft YaHei Light | |
) | |
_ttf_ms_win10_zh_tw=( # Chinese (Traditional) | |
######################################################################################### | |
# Normal Bold Italic Bold+Italic # Full name # | |
######################################################################################### | |
msjh.ttc msjhbd.ttc # Microsoft JhengHei | |
msjhl.ttc # Microsoft JhengHei Light | |
mingliub.ttc # MingLiU_HKSCS-ExtB | |
) | |
_ttf_ms_win10_other=( | |
######################################################################################### | |
# Normal Bold Italic Bold+Italic # Full name # | |
######################################################################################### | |
ebrima.ttf ebrimabd.ttf # Ebrima | |
gadugi.ttf gadugib.ttf # Gadugi | |
mvboli.ttf # MV Boli | |
) | |
DLAGENTS=('http::/usr/bin/true' | |
'file::/usr/bin/true') | |
source=("$_iso" | |
"${_ttf_ms_win10[@]/#/file://}" | |
"${_ttf_ms_win10_japanese[@]/#/file://}" | |
"${_ttf_ms_win10_korean[@]/#/file://}" | |
"${_ttf_ms_win10_sea[@]/#/file://}" | |
"${_ttf_ms_win10_thai[@]/#/file://}" | |
"${_ttf_ms_win10_zh_cn[@]/#/file://}" | |
"${_ttf_ms_win10_zh_tw[@]/#/file://}" | |
"${_ttf_ms_win10_other[@]/#/file://}" | |
file://license.rtf) | |
_sha256sums=('c9b76220a5be42ead4733611e417cd65c5fd8aeaa33eb56576ac378a37d130a1' | |
'766f06ac8761f82f25d032a220e89438f6064591af9915061f20b949efdedf69' | |
'79a5742b865cf06891d4ae43e42cac0e5169c7b7b06b5b3c24ef8e0966d27b62' | |
'e432c1b3568bd207e30e3d52d41e6431ea53a679eb52dd79b1a36aa6a4f3b994' | |
'10df702864b1f89cb29ba0d6b97c04228338d16807e13e8d8c74b91aba5e5f23' | |
'bff1ca87ea35e376691498c618556411f0ee71784b32aa351e6e8f9e8bd609dd' | |
'198e8dac512206f27c9bdbfeb3d5b3e55a33de9dcf58d801823ef8c5ef5a76dc' | |
'4d5c56c07c41315022cd5a24966ade3983ceebce8bc81524e56e4632dd3f242f' | |
'5c85b9adedde710e754b3163005291eca16cd0ccccc7c8d7ff526070e8980202' | |
'95b49ebc8244b88ef49372833e8964dad6a3d7fa53e948609c5c73d5a1439912' | |
'67374b8f4735eabfc7f173f28dc1789d7dbd4e2919532d173f6d697211cc3263' | |
'a49f79197a091a82c45779b3cca7bc2cc7b471cf1447b55378c565c4f06844a5' | |
'84e70ccc1664482f4a960442c7a166c91a1b2cf98ff88c33cb73f79403f66d7b' | |
'6685c657a7e292083e28f19bbf1a1e90509ce3e1130dbc4ed1c62ba3f9140543' | |
'6905f0ac846d1ec4326cd14a46cb7379204940aa293b098ee4c1a69723bbd165' | |
'fa90f376ad37f308a819b341c8185f788d30a1012829278592eab45a41818d1a' | |
'9f02f6bf076197ed2a1335fe59a3bdf88e7ad4a849bf68037a528f37cce36791' | |
'5346840fa85a1969699dc97635e838cd2c42dad7f8a4999d7368eb888fceb04b' | |
'fc68cb42582e1207bcc397df7b60870a74ae068b17d7bd79f2e9f63af89796b4' | |
'1614c0d3a6751eb46b2c52f09ae23dd61f769beda83058269cb0653c049eae43' | |
'0e14f663fa34460fe9a07bb32d0017a180a4a0c8457d279fbfc5d8452753b477' | |
'e8b17bc645c098bbc5167acfe13f0e3c63f0f417d539aab171db7eea3c40eab2' | |
'a7da3ef195158acd8432226a21f2940f1806a9c8d079f18d0a9ab475f50f9659' | |
'56567bc71e89fd173674c78f02b474123a02561b246526a22600c3a29b2fdc65' | |
'65aece2928246837317e093a11c6df5cbfc67035f1e045c9771f7c408be1faea' | |
'c691699eaf218e702b2d77c1f62d2c080be6248f1c11018b0b2556834a9cecb1' | |
'c6e6ce8119fdd47ec6a5449a08e2d2ad7f41ea03143aae193068ed9fa58eaebc' | |
'8fa803e5abc7fff0c78c62cd22d07c705f3273c53312380c36ff484246ed3c1b' | |
'81e2a95d3c49468029c07e58f71a5f0ca4cfcb617eaf6bd77576fb03aa430bb2' | |
'1df27cbcc8a9fb7f843bc24e257b78e8ff93de70e8c1ad2caab8379e7d6a1eab' | |
'495577bf8ef74deab6ecc2e7acf63cd966184148f9bc2044a1068cd58501577e' | |
'b6c66a1858370fe575629e19d53c05350738bf5105e18ceac07fe9efc9cd008d' | |
'2314a03c53506fa79525bc479ea4be9c036d1ebd86a1ffb5837ca5b43ff51f07' | |
'9311aadcbd919746f50d222fa0215fb44266d6993221c14a196f0725fdae464f' | |
'93c3ff526c19d03496c01c6a1bfd1031f97af021a13e859a89dfc717a0b6b6ec' | |
'716c08d704f154870bd9fb78b185d0b644912301dfa9c9e6daf45bdb4832a299' | |
'5861588608d3a3775d921a7e4acb8362b21630c6b63718bc68adb7137ce53beb' | |
'8fdb188252a2db0f020c89831bddb61cadfe290c3616fe534479b4d3b10d09c1' | |
'a183b77b655df66793639af7874828fb50f748dc4af57ae40f758156f7f34634' | |
'fa008372f8a94945d0daef9daf0bfb9e3fba3a25fd17f2607d47ac6861bd0303' | |
'9be778c9ed418770f6b5a02064d9c0b47a8fdea1137618f0bec9ac4072430a45' | |
'588f090ae3a6d31370457312683d14ee3a5bfbdaaa0a070b7c80225b55b23e78' | |
'0e36ddf90102e476c6739ca4c8cc18ba8309d880c12558981d2e4d42de78fc00' | |
'a031500bccd32b5d6e819699b774fc679c696ed4965b643d51a94eb398475550' | |
'bac844bd41f847cf138737026d41c983387a1065535c32e78aa22c48708b52ad' | |
'df59f9ea915957b22a389d68580bf40dc5bd05822cc65b5fdcc188c706a694e7' | |
'ddd852f9e43a5e81af62a3f6654324ba7553d7d66101ab848abc1bd2d626ac4b' | |
'38dffcaf1fac89492f7c56c600a14daf36ae42f7c21985cd4134ae113124a58f' | |
'72a6cd94fab6c179392075d3fb361e269cdddfad41bb7ab385fa22a37e49a900' | |
'd3e4bad27651d120ac8f2cea42cf4b4f077264fb243f66b3caffcfd35465f49b' | |
'3f9e512f82eaf6f1b7869b82013fb79f6eaf1a41e75a0e7b96f31f35b1022ae4' | |
'd8bbdb72e3f930157824b2e59677d3a912d4512c14a948e6656a2e3fb0c935ad' | |
'f23225869ceb58b78a836b84207d1726cc5d9c3f5fe2ae8a295ff62a98df09a0' | |
'2ca2cfde263fa420e8d39420f075ee9ac80bc0794272c53ac4571a88f8a075a6' | |
'97226e81f19eff8c8fb191745748bab920472c005d3ec4e23d9a50a12c471d92' | |
'b7397adf2dcc24ca790348a3c26deb2122b45e5728fd25fc588de4cf5a75b469' | |
'3f557479a768a1d9924af0f29d0d842e8c41988738ce891f6be3abb0f008b0d5' | |
'e47d594e2e2bc31b28f87b6f66483d32f925843ceb002f919c7a403aca48813d' | |
'8e14668bbae03f78ed668dbe3261218881960dcd9fb80ad6c1d1dfb4226a57c3' | |
'99f0af2d1941707fecda23da38bafbed5144a73a3720d773c05b9d4c445920ed' | |
'd0e722b91ffd5391cc2e7d6e976f274d5aee9fe0b8d0fedfffe093763e695cde' | |
'91046862e08fbade0bdd648e81c4efbe6a963947f8b6e32b64a28fe39073c468' | |
'3cced0162ddb9e5f1e63ee1b36fd6e581c090318dce1a0af01b77f5ea9952c80' | |
'd0dfad2f6bbe7ff7c0f96a0c80a28bd4f4624f900573a61abd9d29406d3775d7' | |
'91283e8af7f9eca8b14b498b484b35d49c3bd3144ab7e25aa4934297138ea28b' | |
'1fabce5448df08c9e000bf9749c07c365c5ffba31bfc73121c61b5b96ea498c0' | |
'ba32a222b23d727267cf1aba4e5296fe84ce99b9d910915103fc085d7931bc88' | |
'1b242874a2f57529060e770ba313e027a99d40b3c36e1c7e8b2dece16ad6ed88' | |
'9adf7d619c593ee38c96af06bb15b4bd893e4087bcc1a0b7becee8f4ae15bb1c' | |
'45e7504e9bbd70ead482ebbddbeec04b2bea9f490b994658a95146cdf0733449' | |
'e17738f092c8b02f4443867a7dfcdde66fb4cd6f6b10de8e40b2f3192f8a5835' | |
'33212faa85fad61785cd6917172378b798bc9f5d4c47c121437354f47980aa6f' | |
'7c0244dd8eeb7c6bdecdfc3f9e59833527fc18a66d0295ce47339069692a2b4f' | |
'1cbe547c648ff673c30ca91c6a4f091addd1a4b605a9798f84089add47e9b884' | |
'1a2231bbd4fad4a3ac8c0b8a93af0bce58324a8b3605df16038a9e660a0c072a' | |
'7726b24daa0c1f47e528d8df78b98717bdb4425bcf37e50330945e32c6d17d7c' | |
'9853283466bd43993b9813215281fb9c7090cbd8e9b5453f6d0d040622e117e2' | |
'9959977d9fcf8ebc5fe48f6ee418f05378132b47d21bd5dcc798ad7cff274006' | |
'38a85c09ee4fc558e7739ebdd1a15a06e2846ebb787cf73b1b6476a3a5b22000' | |
'9f84a0a9193fe1d6335967f46606997a208adde053d006b21c03f9375ec5d416' | |
'd2f8326a354456d93e78b0537c58793e7072c3617af7d9ee187f10d6d595f510' | |
'18f4d0f9de114e04a6f0b21955a96177154ff0f55fb4a94c68af5c51449bf107' | |
'eac5da16a297e4292decbf8c6735d0912f342c6ba9c2844d362126b3de1136ca' | |
'1581ff0e4ecc7ec2835c02678b62ee7c8e89937e4142aff11030548ff04d40a7' | |
'9ba07e98c2dfe00c7f00a44cc74da52a9818d39988a105c6af6974a63d04b9ad' | |
'c7a5df780936c04804287e32c1b77e78b9b0e46b8d2723a85bda987eec8de024' | |
'bbf1192965e5266fbf23370416337d2861fc1e8bd349def93f2994ba67382fc3' | |
'b890858df485549d20fcb0a2c519dffe9c5c155d16b55e0b9252d6e66db555e5' | |
'68f92341975acc275c7d4a2ec52a1569b70e992b521c42b30f29149806421674' | |
'2cff2a03d8034801979dd6d16f09b9a825c3d710fcf068f2ebfbf0e1425c87cf' | |
'621b4a765fef5d255d19530f4bf936104c6519f2e232a0eef1923474e5b9cf22' | |
'3a1c2bc8528bfa432e0414d4ec69bf5813563c474e16a9ad0f57ca262f8d24a2' | |
'2852329a38acf9252504669d9c23d5e88366cf77e8209d508f5e7198639648ea' | |
'fe3e8bdd64c1c9f3b9cf5189d06510c80d72cec28e03d04bffc560f77eec58d1' | |
'dfcc306777a594d2815368547dd897e2ac82aff8073e55d9e682569939e49b81' | |
'9c9dc0cd0fd6b1a06e8f406d04bb15a88aaf20328d3e166c12d6bc7994b781d2' | |
'87942234ab0cc4400088648bef8d1f7afc4c44e676c7ed6b32ca31462c18307d' | |
'6a8481fe107ee547893c018b13dba291c2020bec3de5da6525d9ac09f6bc2105' | |
'f3245f5f38f61bd1ceefb0f1338a5b88a21e6220832c2f43a38bbc7e1547c36f' | |
'14f2ebcdaa1b77e5993a8533662e4bd3ebfe2c5771b6daafd8ccb39b2ad588b9' | |
'd71f81c83ec63eaa32d36d5df7be1d9e71d3ea9150f47cebda2924923cbbf18a' | |
'67461fabd8329d0d8ad62689cac642b34fac81c754ff9077ad211160ec62282d' | |
'9bcd6064e3b52fa30a347edd6e82506e2ec8b1602930b423c629a82c10468a5b' | |
'4bde3e6392b96910fb59094c6c1a4dbfae18fee78d0bf13dc30616837c4f95db' | |
'1e5a4b342c6417bb9352e8c29cb839413987a06438e7b48fd0320925827f289c' | |
'15157483588f2778a180f2b401256df12b582513fa0655f8172937c85521b80b' | |
'3e7d80ef5a1615134800c1b1b3b9d9ee870085e8486b884258de2519dd62b1cb' | |
'7a06352c79894d1a5d0f3199061fe43a327ded93c0ff316541ce31cf314968cc' | |
'0086c19e81d293a542e7d75564c645fb58070cc850aefebf8fa1c397858e510c' | |
'a541834fb9cdde9bd6d2c3ff1565cb0bb5ccf7a15e4e9daf2cb58d9b1cf282aa' | |
'a7217a2e590c86141bddadc74a2bcdff2efe210db48469a77a749e0446d91ea9' | |
'df8d94382f73e6d2197b60653c3d55c28ab5cf127a82e65b8af4ed1b52fdc412' | |
'fdec3a7efacd57913d3c14111837908ccbabea5b0b44ec62527eb73acf743afb' | |
'de0b632015447f28c2db41c8e07c745cedb05ead5dbc2e73f19da14d2e5f2151' | |
'cfc2acbf9ae0205a0a258e564bdbf5466a4e49a95281a1d2e72690f149ec837b' | |
'538949482d964e9f353a3a8d860bb3eda93b46b830f3b677e4f53eb2ff3a6e7d' | |
'03e4e45bb8ebb6d055a5584166cc26712bf7e746ea29cb6e548341361d31dc85' | |
'f5151d081f6afea4c26464e0cd5e695f57a99209cfeea2f483c3108684660eb6' | |
'1878842d8dbdf8489794af0bace95a956db270dfa506ddcaabf94fa827b769ac' | |
'80aef1c25135b945e9de7d09e6445c386405eb2e0ea7032d4cd00a2fe3eef0ae' | |
'707585b9acfc1507d9bd943bb5435f75768274b1a12b1f71de76ad78be4d7e7b' | |
'3ed4612d44f71851d33a126bb483b08a623feb0b2731025a73a41898dec7cee7' | |
'f56f3c5a1c1896f83c977f90bf7ab39729f7ea2c39f4d7484b06635c7c6fc0bd' | |
'290ab4239acf6145d080713cb79cf13be95f320d1ae47afea1f5dee4ad20ecc5' | |
'07e0e53736a610b4c688fbac85159462d264b81359c76095639c6bce7e20d1e9' | |
'c4b4a8d284a24a754fd745fcbbfe300df81b2be04c82278ee5d857b29cd64e64' | |
'796dc7e97b357f9c2ad10044d01a86d3fb49cf80e3693011eb055c466c995de0' | |
'16d0c83e99ca3cd56a85966c4ff2c5f0c0f8a5a7140a7594b2ec3e404c8e96a0' | |
'2e2fabd71aa30f0d7039b879ee58441a791e095a6656064eb9d4a84a071e5e8f' | |
'2e3cc9dbd787c827f73496f01633bba430e15c5db4d4f6ed9938386ea01f0171' | |
'5f12f95e02fd187b9f46d623c9a9acac5830bf5239b92938a4a8de0237dc9430' | |
'e4b3b9d058750fb80899c24f68e35beda606ca92694eff0e9f7f91eec7a846aa' | |
'06e1a30f687ab7d39f533447b21e84d51e0cecdaa6bfa060c87136b168811bdc' | |
'2db3f3100589c5795f7917ebc25779d23b69dd19047a963190d9357a5e0dc34c' | |
'0b50839f0e13f9e1607b46568aa953fc1491eb3f867f2737e6a4ff9eb3696aa9' | |
'920f472051f70e33887909a4f2c91541a2b3afa7a4faf577acf350020cd29d46' | |
'd3b01af9bfc265ee4057b76c897243ed42f14d62a78b7306084e54dba37a548e' | |
'814fc6cc5407d2137022a1ff8587cfa43d5a2736b2ab5378ea49ceb5c072de37' | |
'a97f0f43503d9f6ef87c1534eedc753084fa6154ca3fd0b6e51156621e28584a' | |
'1e016947ceedd2b46dd098b5a033526ef4f0c0e7d58968a2203ab69443949350' | |
'ef2c245c5b895e4cb4fd67b1842141921ff17e5812d8daca7f1f7f760e848552' | |
'21b256efb2eaaf7bbbf99865bcda5a3e04bb78d9740929d0d6e37d4cc50ae7b0' | |
'a5b742323c8da0fe29b0003fb0073969b757865fbf91789d32206397593c4d6a' | |
'e542a214d8b3b18c8eaec07489c773a8344b7f44850208c7c3e8badcaa35e355') | |
_totalSource=$(expr \ | |
1 + \ | |
${#_ttf_ms_win10[@]} + \ | |
${#_ttf_ms_win10_japanese[@]} + \ | |
${#_ttf_ms_win10_korean[@]} + \ | |
${#_ttf_ms_win10_sea[@]} + \ | |
${#_ttf_ms_win10_thai[@]} + \ | |
${#_ttf_ms_win10_zh_cn[@]} + \ | |
${#_ttf_ms_win10_zh_tw[@]} + \ | |
${#_ttf_ms_win10_other[@]} + \ | |
1) | |
sha256sums=($(awk "BEGIN{for(c=0;c<${_totalSource};c++) printf \"SKIP\n\"}")) | |
prepare() { | |
echo "- Examininging locally available fonts" | |
for _font in \ | |
${_ttf_ms_win10[@]} \ | |
${_ttf_ms_win10_japanese[@]} \ | |
${_ttf_ms_win10_korean[@]} \ | |
${_ttf_ms_win10_sea[@]} \ | |
${_ttf_ms_win10_thai[@]} \ | |
${_ttf_ms_win10_zh_cn[@]} \ | |
${_ttf_ms_win10_zh_tw[@]} \ | |
${_ttf_ms_win10_other[@]} \ | |
; do | |
_allFiles+=( $_font ) | |
[ ! -f $_font ] && _missingFonts+=( $_font ) | |
done | |
allFiles+=( license.rtf ) | |
#Check that the package was run in the past. | |
for loop_device in $(losetup --list | grep "${pkgbase}" | awk '{print $1}') | |
do | |
udisksctl loop-delete -b "$loop_device" | |
done | |
for fuse_mount_points in $(cat /etc/mtab | grep "${pkgbase}" | awk '{print $2}') | |
do | |
fusermount -u "$fuse_mount_points" | |
done | |
if [ ${#_missingFonts[@]} -gt 0 ]; then | |
echo "- Fonts are missing" | |
echo -ne "- Mount filesystems as a non-privileged user: " | |
touch test.mount | |
_mount= | |
udisksctl loop-setup -r -f test.mount --no-user-interaction >/dev/null 2>&1 && _mount=true | |
rm test.mount | |
if [ $_mount ]; then | |
echo "allowed" | |
echo "- Downloading fonts directly" | |
mkdir -p mnt/http | |
echo " - Mounting HTTP file" | |
httpfs2 -c /dev/null "$_iso" mnt/http | |
echo " - Creating loop device" | |
_isoFile="mnt/http/$(echo "$_iso" | awk -F "/" '{print $NF}')" | |
_loopDev=$(udisksctl loop-setup -r -f "${_isoFile}" --no-user-interaction | awk '{print $NF}') | |
_loopDev=$(losetup --list | grep "$_isoFile" | awk '{print $1}') | |
#_loopDev=${_loopDev::-1} | |
echo " - Mounting loop device: $_loopDev" | |
_mountpoint=$(udisksctl mount -t udf -b "$_loopDev" --no-user-interaction | awk '{print $NF}') | |
echo " - Loop device mounted as ISO at: $_mountpoint" | |
echo " - Extracting files from online Windows installation image" | |
7z e "${_mountpoint}/sources/install.wim" \ | |
Windows/{Fonts/"*".{ttf,ttc},System32/Licenses/neutral/"*"/"*"/license.rtf} | |
echo " - Unmounting loop device $_loopDev as ISO at: $_mountpoint" | |
udisksctl unmount -b "$_loopDev" --no-user-interaction | |
echo " - Deleting loop device: $_loopDev" | |
udisksctl loop-delete -b "$_loopDev" --no-user-interaction | |
echo " - Unmounting HTTP file" | |
fusermount -uz mnt/http | |
rmdir -p mnt/http | |
else | |
echo "not allowed" | |
echo "- Preparing download of full ISO" | |
echo " - Checking free disk space required for download and extraction" | |
_freeDiskSpace=$(($(stat -f --format="%a*%S" .))) | |
_downloadSize=$(curl -sI "$_iso" | grep Content-Length | awk '{print $2}' | tr -d '\r\n') | |
[ -z $_downloadSize ] && echo -ne "Unable to determine file size of:\n${_iso}\n" && exit 255 | |
_requiredDiskSpace=$((${_downloadSize}*2)) | |
if [ $_requiredDiskSpace -gt $_freeDiskSpace ]; then | |
echo "Not enough free disk space" | |
echo "Needed: $((${_requiredDiskSpace}/1048576)) MiB" | |
echo "Available: $((${_freeDiskSpace/1048576)) MiB" | |
exit 255 | |
fi | |
echo " - Downloading ISO" | |
curl -JLO "$_iso" | |
echo " - Extracting Windows installation image" | |
7z x $(echo "$_iso" | awk -F "/" '{print $NF}') sources/install.wim | |
echo " - Extracting files from local Windows installation image" | |
7z e sources/install.wim \ | |
Windows/{Fonts/"*".{ttf,ttc},System32/Licenses/neutral/"*"/"*"/license.rtf} | |
echo " - Cleaning up temporary files" | |
rm $(echo "$_iso" | awk -F "/" '{print $NF}') | |
rm -rf sources | |
fi | |
fi | |
echo "- Verifying file integrity" | |
for _i in ${!_allFiles[@]}; do | |
echo -ne " - ${_allFiles[$_i]}: " | |
if [ ! -f ${_allFiles[$_i]} ]; then | |
echo "MISSING" | |
_fail=1 | |
elif [ "${_sha256sums[$_i]}" == "SKIP" ]; then | |
echo "Skipped" | |
elif [ "${_sha256sums[$_i]}" == "$(sha256sum ${_allFiles[$_i]} | cut -d' ' -f1)" ]; then | |
echo "Pass" | |
else | |
echo "FAIL" | |
_fail=1 | |
fi | |
done | |
if [ $_fail ]; then | |
echo "One or more files fail the integrity check or are missing. Exiting." | |
exit 255 | |
fi | |
} | |
_package() { | |
conflicts+=(${pkgname/10/8} ttf-win7-fonts${pkgname##*10}) | |
install -Dm644 $@ -t "$pkgdir/usr/share/fonts/TTF" | |
install -Dm644 license.rtf -t "$pkgdir/usr/share/licenses/$pkgname" | |
} | |
package_ttf-ms-win10-auto() { | |
pkgdesc='Microsoft Windows 10 TrueType fonts' | |
provides+=(ttf-tahoma ttf-ms-fonts) | |
conflicts+=(ttf-tahoma ttf-ms-fonts) | |
_package ${_ttf_ms_win10[@]} | |
} | |
package_ttf-ms-win10-auto-japanese() { | |
pkgdesc='Microsoft Windows 10 Japanese TrueType fonts' | |
provides=(ttf-ms-win10-japanese) | |
conflicts=(ttf-ms-win10-japanese) | |
_package ${_ttf_ms_win10_japanese[@]} | |
} | |
package_ttf-ms-win10-auto-korean() { | |
pkgdesc='Microsoft Windows 10 Korean TrueType fonts' | |
provides=(ttf-ms-win10-korean) | |
conflicts=(ttf-ms-win10-korean) | |
_package ${_ttf_ms_win10_korean[@]} | |
} | |
package_ttf-ms-win10-auto-sea() { | |
pkgdesc='Microsoft Windows 10 Southeast Asian TrueType fonts' | |
provides=(ttf-ms-win10-sea) | |
conflicts=(ttf-ms-win10-sea) | |
_package ${_ttf_ms_win10_sea[@]} | |
} | |
package_ttf-ms-win10-auto-thai() { | |
pkgdesc='Microsoft Windows 10 Thai TrueType fonts' | |
provides=(ttf-ms-win10-thai) | |
conflicts=(ttf-ms-win10-thai) | |
_package ${_ttf_ms_win10_thai[@]} | |
} | |
package_ttf-ms-win10-auto-zh_cn() { | |
pkgdesc='Microsoft Windows 10 Simplified Chinese TrueType fonts' | |
provides=(ttf-ms-win10-zh_cn) | |
conflicts=(ttf-ms-win10-zh_cn) | |
_package ${_ttf_ms_win10_zh_cn[@]} | |
} | |
package_ttf-ms-win10-auto-zh_tw() { | |
pkgdesc='Microsoft Windows 10 Traditional Chinese TrueType fonts' | |
provides=(ttf-ms-win10-zh_tw) | |
conflicts=(ttf-ms-win10-zh_tw) | |
_package ${_ttf_ms_win10_zh_tw[@]} | |
} | |
package_ttf-ms-win10-auto-other() { | |
pkgdesc='Microsoft Windows 10 Other TrueType fonts' | |
provides=(ttf-ms-win10-other) | |
conflicts=(ttf-ms-win10-other) | |
_package ${_ttf_ms_win10_other[@]} | |
} | |
# vim: ts=4 sw=4 et |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment