diff options
author | orbea <orbea@riseup.net> | 2022-10-07 07:55:11 -0700 |
---|---|---|
committer | Quentin Retornaz <gentoo@retornaz.com> | 2022-10-07 23:11:14 +0200 |
commit | e267d98ca8a3ff4d238255946114b0d6f9a74989 (patch) | |
tree | 3ead61cb284b75d5a3b39541bd63c79a21bc24fd /app-text | |
parent | dev-util/cargo-ebuild: Added (diff) | |
download | libressl-e267d98ca8a3ff4d238255946114b0d6f9a74989.tar.gz libressl-e267d98ca8a3ff4d238255946114b0d6f9a74989.tar.bz2 libressl-e267d98ca8a3ff4d238255946114b0d6f9a74989.zip |
app-text/mupdf: Added
Signed-off-by: orbea <orbea@riseup.net>
Signed-off-by: Quentin Retornaz <gentoo@retornaz.com>
Diffstat (limited to 'app-text')
19 files changed, 1749 insertions, 0 deletions
diff --git a/app-text/mupdf/Manifest b/app-text/mupdf/Manifest new file mode 100644 index 0000000..f87bb21 --- /dev/null +++ b/app-text/mupdf/Manifest @@ -0,0 +1,3 @@ +DIST mupdf-1.19.1-source.tar.xz 64884172 BLAKE2B a0dc3783c70cee1b7eb48d1658eb48186e35a42513aa9e98f7155bb82ed771ed0c5d5032013d09d93cdca4f49deda65553fe0e1af7645893722dafa855b2c958 SHA512 d6bc5b6adb6a418de50021864f4b3a75da653fa534eeedbfe9875cb202efeb13efdec66b4d108ca8fa6b0dc76733468b214e5fdf331bebc35fc6f722203fa3f7 +DIST mupdf-1.20.0-source.tar.gz 88455853 BLAKE2B 686d8b02972fc6cb7fa4541e4f0561c11e616f800decd20a79f23b577977785633bd3e17e2007f621db97dab6db1fcf500ac8e283984fbe675a25e7a4301b75b SHA512 6837299c589ece9cc443b027433fa3eee545f5155aeb6359b7a43da239d2e99195e9ae3950ddec6cb6ebae77bc877573c6f89a90754c58723d7e87d9739ed1f4 +DIST mupdf-1.20.3-source.tar.gz 88457290 BLAKE2B b16abfd4d9ac8123f1be60350d6124b8f36b6e8260f266d4dc7798610819128519944de8179a9e5453bc28da695ef8557fd8d755439113e520a8cad19039e52f SHA512 ed3fe09971223c500fb85558bb3f8c4a605c82fca3cd2217cdf4758e44bdfe3ef4106c95037d7a8ea536117414e5acbfa14aa736bfb7e33e591050c12c07a0ee diff --git a/app-text/mupdf/files/mupdf-1.10a-add-desktop-pc-xpm-files.patch b/app-text/mupdf/files/mupdf-1.10a-add-desktop-pc-xpm-files.patch new file mode 100644 index 0000000..decab50 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.10a-add-desktop-pc-xpm-files.patch @@ -0,0 +1,533 @@ +--- /dev/null ++++ ./platform/debian/mupdf.desktop +@@ -0,0 +1,15 @@ ++[Desktop Entry] ++Name=MuPDF ++GenericName=PDF file viewer ++Exec=mupdf %f ++TryExec=mupdf ++Icon=mupdf ++Terminal=false ++Type=Application ++MimeType=application/pdf;application/x-pdf;application/x-cbz;application/oxps;application/vnd.ms-xpsdocument;image/jpeg;image/pjpeg;image/png;image/tiff;image/x-tiff; ++Categories=Viewer;Graphics; ++Actions=View; ++ ++[Desktop Action View] ++Name=View with mupdf ++Exec=mupdf %f +--- /dev/null ++++ ./platform/debian/mupdf.pc +@@ -0,0 +1,12 @@ ++prefix=/usr ++exec_prefix=${prefix} ++libdir=${exec_prefix}/lib ++includedir=${prefix}/include ++ ++Name: mupdf ++Description: Library for rendering PDF documents ++Requires: freetype2 libopenjp2 libcrypto ++Version: 0.5.0 ++Libs: -L${libdir} -lmupdf ++Libs.private: -lmupdf-js-none ++Cflags: -I${includedir} +--- /dev/null ++++ ./platform/debian/mupdf.xpm +@@ -0,0 +1,497 @@ ++/* XPM */ ++static char *mupdf[] = { ++/* width height ncolors chars_per_pixel */ ++"48 48 442 2", ++/* colors */ ++" c #000000", ++" . c #2E4558", ++" X c #252121", ++" o c #AFAFAF", ++" O c #28313B", ++" + c #231F1F", ++" @ c #686666", ++" # c #98BDD7", ++" $ c #201B1C", ++" % c #7CABCC", ++" & c #4487B6", ++" * c #DFDEDE", ++" = c #4285B4", ++" - c #615E5F", ++" ; c #605E5E", ++" : c #23262C", ++" > c #D9D8D8", ++" , c #F7FAFC", ++" < c #D7D6D6", ++" 1 c #BFD6E6", ++" 2 c #6BA0C5", ++" 3 c #232122", ++" 4 c #555253", ++" 5 c #CDCCCC", ++" 6 c #E7EFF6", ++" 7 c #4786B2", ++" 8 c #CADDEA", ++" 9 c #4085B5", ++" 0 c #AECBDF", ++" q c #CBCACA", ++" w c #92B9D4", ++" e c #365F7D", ++" r c #5A95BE", ++" t c #3E83B3", ++" y c #304B60", ++" u c #C7C6C6", ++" i c #4D8EBB", ++" p c #F1F6F9", ++" a c #C1C0C0", ++" s c #454243", ++" d c #669CC3", ++" f c #81AECD", ++" g c #7A7777", ++" h c #434041", ++" j c #3E779F", ++" k c #272E36", ++" l c #413E3F", ++" z c #3F3C3D", ++" x c #5895BF", ++" c c #3D3A3B", ++" v c #C6DBE9", ++" b c #B8B6B7", ++" n c #4282B0", ++" m c #FDFDFE", ++" M c #B7B6B6", ++" N c #8DB5D2", ++" B c #242529", ++" V c #B3B2B2", ++" C c #222327", ++" Z c #B0AEAF", ++" A c #EDF4F8", ++" S c #686565", ++" D c #488AB9", ++" F c #9ABED8", ++" G c #7EACCD", ++" H c #ECF2F7", ++" J c #211C1C", ++" K c #666363", ++" L c #F1F1F2", ++" P c #ABAAAA", ++" I c #4588B6", ++" U c #A9A8A8", ++" Y c #2D2A2B", ++" T c #A7A6A6", ++" R c #615D5E", ++" E c #2B2829", ++" W c #8DB7D5", ++" Q c #F9FBFD", ++" ! c #DDE9F2", ++" ~ c #F8FBFC", ++" ^ c #DCE9F1", ++" / c #A5C5DC", ++" ( c #89B3D1", ++" ) c #5C5959", ++" _ c #A4C5DB", ++" ` c #335A76", ++" ' c #518FBB", ++" ] c #E6E7E7", ++" [ c #5A5757", ++" { c #232021", ++" } c #33536C", ++" | c #98BED9", ++". c #E0E1E1", ++".. c #7CACCE", ++".X c #4488B8", ++".o c #2D3F4F", ++".O c #999898", ++".+ c #4388B7", ++".@ c #5E98C1", ++".# c #CDCDCB", ++".$ c #524F4F", ++".% c #B0CCE0", ++".& c #979696", ++".* c #78A8CA", ++".= c #5C96BF", ++".- c #969495", ++".; c #4084B4", ++".: c #252930", ++".> c #949293", ++"., c #929091", ++".< c #417FAB", ++".1 c #4F8FBC", ++".2 c #F3F7FA", ++".3 c #D3D3D4", ++".4 c #D7E5EF", ++".5 c #222023", ++".6 c #9FC1D9", ++".7 c #679DC3", ++".8 c #37678A", ++".9 c #4B8BB8", ++".0 c #3E769E", ++".q c #3C749C", ++".w c #403D3D", ++".e c #92BAD6", ++".r c #C8DCEA", ++".t c #FEFEFE", ++".y c #3D393A", ++".u c #3B3738", ++".i c #355974", ++".p c #353132", ++".a c #7A7879", ++".s c #498BB9", ++".d c #9BBFD8", ++".f c #4E8AB4", ++".g c #787677", ++".h c #F2F2F2", ++".j c #F0F0F0", ++".k c #2F2B2C", ++".l c #EEEEEE", ++".z c #727071", ++".x c #26282D", ++".c c #ECECEC", ++".v c #2B2728", ++".b c #FAFCFD", ++".n c #EAEAEA", ++".m c #DEEAF2", ++".M c #E9EAE9", ++".N c #C2D8E7", ++".B c #6E6C6D", ++".V c #5390BC", ++".C c #E8E8E8", ++".Z c #6EA2C6", ++".A c #272324", ++".S c #E7E6E7", ++".D c #E6E6E6", ++".F c #252122", ++".G c #29333D", ++".H c #E4E4E4", ++".J c #3F7AA5", ++".K c #231F20", ++".L c #E2E2E2", ++".P c #211D1E", ++".I c #E0E0E0", ++".U c #EAF1F7", ++".Y c #6099C2", ++".T c #1F1B1C", ++".R c #E9F1F6", ++".E c #CDDFEB", ++".W c #4387B6", ++".Q c #96BBD6", ++".! c #B1CDE0", ++".~ c #DEDEDE", ++".^ c #79A9CA", ++"./ c #4285B5", ++".( c #272A31", ++".) c #5D97BF", ++"._ c #4185B4", ++".` c #DCDCDC", ++".' c #959393", ++".] c #DADADA", ++".[ c #314B5F", ++".{ c #D8D8D8", ++".} c #D7D8D7", ++".| c #D6D6D6", ++"X c #F5F8FB", ++"X. c #D4D4D4", ++"XX c #6AA0C5", ++"Xo c #BDD4E5", ++"XO c #3A6A8C", ++"X+ c #232123", ++"X@ c #D3D4D3", ++"X# c #D2D2D2", ++"X$ c #D0D0D0", ++"X% c #CECECE", ++"X& c #CCCCCC", ++"X* c #CADDEB", ++"X= c #37617F", ++"X- c #242A31", ++"X; c #CACACA", ++"X: c #C8DBE9", ++"X> c #90B7D3", ++"X, c #817F7F", ++"X< c #3F7EAB", ++"X1 c #548FB9", ++"X2 c #355873", ++"X3 c #7D7B7B", ++"X4 c #C2C2C2", ++"X5 c #4B8CBA", ++"X6 c #C0C0C0", ++"X7 c #D4E4EE", ++"X8 c #81AECE", ++"X9 c #659CC3", ++"X0 c #787576", ++"Xq c #4788B6", ++"Xw c #252C35", ++"Xe c #757373", ++"Xr c #BABABA", ++"Xt c #FCFDFE", ++"Xy c #B6B6B6", ++"Xu c #C4D9E8", ++"Xi c #706D6E", ++"Xp c #8CB5D2", ++"Xa c #70A3C7", ++"Xs c #8BB5D1", ++"Xd c #5491BC", ++"Xf c #5391BB", ++"Xg c #282424", ++"Xh c #272223", ++"Xj c #6C696A", ++"Xk c #2F4659", ++"Xl c #6B6969", ++"Xz c #407BA5", ++"Xx c #6A6768", ++"Xc c #E4E3E3", ++"Xv c #3E79A3", ++"Xb c #231E1F", ++"Xn c #221E1E", ++"Xm c #E2E1E1", ++"XM c #211C1D", ++"XN c #EBF2F7", ++"XB c #201C1C", ++"XV c #CFE0EC", ++"XC c #4588B7", ++"XZ c #B3CEE1", ++"XA c #366384", ++"XS c #5F98C0", ++"XD c #4386B5", ++"XF c #DEDDDD", ++"XG c #2B3D4B", ++"XH c #615F5F", ++"XJ c #5F5D5D", ++"XK c #5E5B5C", ++"XL c #DCE9F2", ++"XP c #407DA8", ++"XI c #86B1CF", ++"XU c #D4D3D3", ++"XY c #3A698B", ++"XT c #3E7BA6", ++"XR c #232022", ++"XE c #545152", ++"XW c #999899", ++"XQ c #79AACC", ++"X! c #524F50", ++"X~ c #CCCDCB", ++"X^ c #3D749B", ++"X/ c #93BAD5", ++"X( c #77A8CA", ++"X) c #37607E", ++"X_ c #5B96BF", ++"X` c #3F84B4", ++"X' c #CAC9C9", ++"X] c #C6C5C5", ++"X[ c #3F7DAA", ++"X{ c #F2F7FA", ++"X} c #C2C1C1", ++"X| c #212023", ++"o c #9EC1D9", ++"o. c #444142", ++"oX c #3F78A0", ++"oo c #90B8D5", ++"oO c #FEFEFF", ++"o+ c #E2ECF4", ++"o@ c #2B3A47", ++"o# c #25262A", ++"o$ c #B1AFB0", ++"o% c #28313A", ++"o& c #221D1D", ++"o* c #262F38", ++"o= c #629BC2", ++"o- c #302D2E", ++"o; c #6199C1", ++"o: c #201B1B", ++"o> c #4587B6", ++"o, c #F0F0F1", ++"o< c #2D3E4C", ++"o1 c #2E2B2C", ++"o2 c #4385B4", ++"o3 c #A8A7A7", ++"o4 c #A7A5A6", ++"o5 c #3D7197", ++"o6 c #4183B2", ++"o7 c #4083B1", ++"o8 c #A5A3A4", ++"o9 c #3B6F95", ++"o0 c #5290BC", ++"oq c #A4C4DB", ++"ow c #E9F1F7", ++"oe c #4387B7", ++"or c #E7EFF5", ++"ot c #CBDDEA", ++"oy c #4185B5", ++"ou c #5B95BE", ++"oi c #3F83B3", ++"op c #939192", ++"oa c #929191", ++"os c #2B3743", ++"od c #4C4849", ++"of c #2A3742", ++"og c #F4F8FB", ++"oh c #D8E6F0", ++"oj c #4C8CB9", ++"ok c #211F22", ++"ol c #CFD0D0", ++"oz c #444041", ++"ox c #262C34", ++"oc c #413E3E", ++"ov c #403C3D", ++"ob c #3B739B", ++"on c #858384", ++"om c #FFFFFF", ++"oM c #E3EDF4", ++"oN c #5995BF", ++"oB c #3E3A3B", ++"oV c #C7DBE9", ++"oC c #2F4B61", ++"oZ c #5793BD", ++"oA c #3C3839", ++"oS c #2A3945", ++"oD c #7E7D7D", ++"oF c #345873", ++"oG c #363233", ++"oH c #7B797A", ++"oJ c #EFF4F9", ++"oK c #EEF4F8", ++"oL c #F3F3F3", ++"oP c #9ABED7", ++"oI c #4788B7", ++"oU c #629AC1", ++"oY c #ACAAAA", ++"oT c #F1F1F1", ++"oR c #EFEFEF", ++"oE c #737172", ++"oW c #EDEDED", ++"oQ c #A9C9DF", ++"o! c #FBFDFE", ++"o~ c #EBEBEB", ++"o^ c #DFEBF3", ++"o/ c #4581AB", ++"o( c #6F6D6E", ++"o) c #EAE9EA", ++"o_ c #E9E9E9", ++"o` c #C1D7E6", ++"o' c #E7E7E7", ++"o] c #E6E7E6", ++"o[ c #E5E5E5", ++"o{ c #3F7BA5", ++"o} c #242021", ++"o| c #E3E3E3", ++"O c #3E79A4", ++"O. c #221E1F", ++"OX c #26303A", ++"Oo c #9C9A9A", ++"OO c #E1E1E1", ++"O+ c #201C1D", ++"O@ c #4488B7", ++"O# c #DFDFDF", ++"O$ c #7BAACC", ++"O% c #356384", ++"O& c #1E1A1B", ++"O* c #4386B6", ++"O= c #4286B5", ++"O- c #95BAD5", ++"O; c #DDDDDD", ++"O: c #1C1819", ++"O> c #DBDBDB", ++"O, c #D9D9D9", ++"O< c #D7D7D7", ++"O1 c #417FAA", ++"O2 c #DAE7F1", ++"O3 c #F5F9FB", ++"O4 c #D5D5D5", ++"O5 c #242224", ++"O6 c #D4D3D4", ++"O7 c #85B1CF", ++"O8 c #D3D3D3", ++"O9 c #699FC4", ++"O0 c #4D8DB9", ++"Oq c #222022", ++"Ow c #34556F", ++"Oe c #D1D1D1", ++"Or c #D0CFD0", ++"Ot c #8A8888", ++"Oy c #CFCFCF", ++"Ou c #CDCDCD", ++"Oi c #CCCDCC", ++"Op c #CADEEB", ++"Oa c #E5EEF5", ++"Os c #C9DCEA", ++"Od c #ADCADF", ++"Of c #C8DCE9", ++"Og c #91B8D4", ++"Oh c #5994BE", ++"Oj c #3D82B3", ++"Ok c #5894BD", ++"Ol c #3C82B2", ++"Oz c #4181AD", ++"Ox c #3B3737", ++"Oc c #C5C5C5", ++"Ov c #293643", ++"Ob c #3E7DAA", ++"On c #C1C1C1", ++"Om c #353131", ++"OM c #D4E3EE", ++"ON c #B8D1E3", ++"OB c #BFBFBF", ++"OV c #9CBFD8", ++"OC c #80ADCD", ++"OZ c #649BC2", ++"OA c #4889B7", ++"OS c #BDBDBD", ++"OD c #2E292A", ++"OF c #4283B1", ++"OG c #B7B7B7", ++"OH c #4183B0", ++"OJ c #5794BF", ++"OK c #A7C6DC", ++"OL c #365B77", ++"OP c #8BB4D1", ++"OI c #282324", ++"OU c #272323", ++"OY c #6C6A6A", ++"OT c None", ++/* pixels */ ++" oToToToT L.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h.h LoToToToT ", ++"o,.joToToToToToToToToToToToToToToToToToToToT.h.h.h.hoToToToToToToToToToToToToToToToToToToToT.j.j", ++".j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.joToLoLoR.D.~ > >.~.DoRoLoLoT.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j", ++"oRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoT.hXcOBoaXjX!oz c cozX!XjoaOBXc.hoToRoRoRoRoRoRoRoRoRoRoRoRoRoRoR", ++".l.l.l.l.l.l.l.l.l.l.l.l.loR.j <.'X! Y.P.To: $ J J $o:.T.P YX!.' <.joR.l.l.l.l.l.l.l.l.l.l.l.l.l", ++".l.l.l.l.l.l.l.l.l.l.l.l.jXm.&oz + $o& 3.x OoSXGXGoS O.x 3o& $ +oz.&Xm.j.l.l.l.l.l.l.l.l.l.l.l.l", ++"oWoWoWoWoWoWoWoWoWoWoWoR uXK X $XRo% yXA.qo/.fX1X1.fo/.qXA yo%XR $ XXK uoRoWoWoWoWoWoWoWoWoWoWoW", ++".c.c.c.c.c.c.c.c.c.coW Z z $ {os eXTo0..oQX*XLoMoMXLOpoQ..o0XT eos { $ z ZoW.c.c.c.c.c.c.c.c.c.c", ++"o~o~o~o~o~o~o~o~o~.co3.p $.(X2X[OJ FOM !Of 0.d wOg.d 0Os.mOM FOJObX2.( $.po3.co~o~o~o~o~o~o~o~o~", ++".n.n.n.n.n.n.n.noW VoGXMoso9XC G.N.!.^XfXD tOjOlOlOj tXDXd.^.% 1O$O@o9osXMoG VoW.n.n.n.n.n.n.n.n", ++".n.n.n.n.n.n.n.c qo.XBo<XvX5 No oUO0 fOPXpXpXpXpXpXpXpXpOP ( NOdo^OV.sXvo<XBo. q.c.n.n.n.n.n.n.n", ++"o_o_o_o_o_o_.M.L @ $o@o{.s.^.Z & t.* ~omomomomomomomomomomomom.toO.b _ D.Jo@ $ @.Lo)o_o_o_o_o_o_", ++".C.C.C.C.C.Co~o8Xg kX^oeoZXf._XDXD 0omomomomomomomomomomomomomomomom.b #XCX^ kXgo8o~.C.C.C.C.C.C", ++"o'o'o'o'o'.CO>.$okX=oeXDo>O=XD./Xd.momomomomomomomomomomomomomom pX7.NOK 'oeX=ok.$O>.Co'o'o'o'o'", ++" ]o'o'o'.So_ TXh.o nXDXDXDXDXD.; %.bomomomomomomomomomomomomoOo`O9ojo>XDXDXD n.oXh To_ ]o'o'o'.S", ++".D.D.D.D.Do| SX|XY.+XDXDXDXDXDXDXZomomomomomomomomomomomomom.4Xd.;O=XDXDXDXD.+XYX| So|.D.D.D.D.D", ++"o[o[o[o[.D 5OxOvOzO*XDXDXDXD =oZo+omomomomomomomomomomomomomoP.;XDXDXDXDXDXDO*OzOvOx 5o]o[o[o[o[", ++".H.H.H.Ho' POU }oeXDXDXDXDXD.;X8o!omomomomomomomomomomomom.bX(.;XDXDXDXDXDXDXDoe }OU Po'.H.H.H.H", ++"o|o|o|o|.DOt.5XO.+XDXDXDXDXD &ONomomomomomomomomomomomomom.2.7._XDXDXDXDXDXDXD.+XO.5Ot.Do|o|o|o|", ++"o|o|o|o|o|Xi : j.WXDXDXDXD = rOaomomomomomomomomomomomomom AXS._XDXDXDXDXDXDXD.W j :Xio|o|o|o|o|", ++".L.L.L.L.I RXwXP.WXDXDXDXD.;XI momomomomomomomomomomomomomXN.=._XDXDXDXDXDXDXD.WXPXw R.I.L.L.L.L", ++"OOOOOOOOO; [OX.<O*XDXDXDXD IXoomomomomomomomomomomomomomom.UX_._XDXDXDXDXDXDXDO*.<OX [O;OOOOOOOO", ++".I.I.I.IO; )o*O1O*XDXDXD._.).Romomomomomog ~omomomomomomom.UX_._XDXDXDXDXDXDXDO*O1o* )O;.I.I.I.I", ++"O#O#O#O#O# KX-Xz.WXDXDXD.;XsoOomomomomom vowomomomomomomom.UX_._XDXDXDXDXDXDXD.WXzX- KO#O#O#O#O#", ++"O#O#O#O#. g Co5oeXDXDXDXq.Nomomomomom ,X>oromomomomomomom.UX_._XDXDXDXDXDXDXDoeo5 C gOOO#O#O#O#", ++".~.~.~.~OO.- {X).XXDXD._o; HomomomomomohO9.Romomomomomomom.UX_._XDXDXDXDXDXDXD.XX) {.-OO.~.~.~.~", ++"O;O;O;O;O#XyOD .o2XDXD.;Ogomomomomomom / r.Uomomomomomomom.UX_._XDXDXDXDXDXDXDo2 .ODXyO#O;O;O;O;", ++".`.`.`.`O;Oeod.:oX.WXDOAoVomomomomomO3XaOk.Uomomomomomomom.UX_._XDXDXDXDXDXD.WoX.:odOeO;.`.`.`.`", ++"O>O>O>O>O>O;X,.POw.W._ doJomomomomomOMoj r.Uomomomomomomom.UX_._XDXDXDXDXDXD.WOw.PX,O;O>O>O>O>O>", ++"O>O>O>O>O>O;XrOmox.0 9X8Xtomomomomom.6X`ou.Uomomomomomomom.UX_._XDXDXDXDXDoe.0oxOmXrO;O>O>O>O>O>", ++".].].].].].]O,.z JXkOH.VotomomomomX{ 2oiou.Uomomomomomomom.UX_._XDO= &O0 &OFXk J.zO,.].].].].].]", ++"O,O,O,O,O,O,O>OS.yOq.i._OZ ^omomom.E.9._ou.Uomomomomomomom.UX_._._.9.ZXdO=.iOq.yOSO>O,O,O,O,O,O,", ++".{.{.{.{.{.{.{.].,.A BX)oyXXO2omom.Q.;._ou.Uomomomomomomom.UOh._ dO-X9O=X) BOI.,.].{.{.{.{.{.{.{", ++"O<O<O<O<O<O<O<.{O8o(Xno#OLo7.YXuX O7oIoiOk.Romomomomomomom HOCoqOdo=o6OLo#Xno(O8.{O<O<O<O<O<O<O<", ++"O<O<O<O<O<O<O<O<.{X'XJ.PO5.[O iOgXVX:OVXsoKomomomomomomom.bOMX/.1O .[O5.PXJX'.{O<O<O<O<O<O<O<O<", ++".|.|.|.|.|.|.|.|.|.}X]XH.KXn.G eX<oN.e 8 6 Qomomomom.bXN.roo xX< e.GXn.KXHX].}.|.|.|.|.|.|.|.|.|", ++"O4O4O4O4O4O4O4O4O4O4O<X;Xe.vXBX+ofoFob 7.@XQ W | | WXQ.@ 7oboFofX+XB.vXeX;O<O4O4O4O4O4O4O4O4O4O4", ++"X.X.X.X.X.X.X.X.X.X.X.O4X#XW sO. J.K.xo@oC `O%.8.8O% `oCo@.x.K JO. sXWX#O4X.X.X.X.X.X.X.X.X.X.X.", ++"O8O8O8O6O8XUXUO8O8XUXUO8X..|OnX,oc.F $ Jo&XbXRO5O5XRXbo& J $.FocX,On.|X.O8XUX@X@O8.3O8O8O8O8O8X@", ++"O8O8O8O8O8O8O8O8O8O8O8O8O8O8X.X. aop ; c Eo}.PXMXM.Po} E c ;op aX.X.O8O8O8O8O8O8O8O8O8O8O8O8O8O8", ++"X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#O8O4X$X6 P.-onX3X3on.- PX6X$O4O8X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#", ++"OeOeOeOeOeOeOeOeOeOeOeOeOeOeOeOeOeOeOeO8X4OGOnOcOcX} MOSX#OeOeOeOeOeOeOeOeOeOeOeOeOeOeOeOeOeOeOe", ++"X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$O8ono-oAov.w.u.koEX#X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$", ++"X$X$X$X$X$X$X$X$X$olX$X$X$X$X$X$X$X$X$X#oD l.>o1O+.P.T.BOeX$X$X$X$X$X$X$OrOrX$X$X$X$X$X$X$X$X$X$", ++"OyOyOyOyOyOyOyOyOyOyOyOyOyOyOyOyOyOyOyX#oHXEXFoBO&.TO:OYX$OyOyOyOyOyOyOyOyOyOyOyOyOyOyOyOyOyOyOy", ++"X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%Oy POo.CX0 -Xx.g TOyX%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%", ++"X%X%OuOuOuOuOuOuOuOuOuOuOuOuOuOuOuOuOuX% oo$.h boYo4.O UX%OuOuOuOuOuOuOuOuOuOuOuOuOuOuOuOuOuX%X%", ++" Ou.#OuOuOiX&X&X&X&X&X&X&X&X&X&X&X&X&Oy.a 4 * h.K.KO&XlX%X&X&X&X&X&X&X&X&X&X&X&X&X&X&OuOuX~Ou " ++}; diff --git a/app-text/mupdf/files/mupdf-1.15-CFLAGS.patch b/app-text/mupdf/files/mupdf-1.15-CFLAGS.patch new file mode 100644 index 0000000..a7de530 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.15-CFLAGS.patch @@ -0,0 +1,13 @@ +diff --git a/Makerules b/Makerules +index 298b5737..71c307e6 100644 +--- a/Makerules ++++ b/Makerules +@@ -21,8 +21,6 @@ SANITIZE_FLAGS += -fsanitize=address + SANITIZE_FLAGS += -fsanitize=leak + + ifeq ($(build),debug) +- CFLAGS += -pipe -g +- LDFLAGS += -g + else ifeq ($(build),release) + CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer + LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s diff --git a/app-text/mupdf/files/mupdf-1.15-openssl-x11.patch b/app-text/mupdf/files/mupdf-1.15-openssl-x11.patch new file mode 100644 index 0000000..3f3aac4 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.15-openssl-x11.patch @@ -0,0 +1,18 @@ +--- a/Makerules ++++ b/Makerules +@@ -119,13 +119,13 @@ else ifeq ($(OS),Linux) + SYS_GLUT_LIBS := -lglut -lGL + endif + +- HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes) ++ HAVE_X11 := not-unless-portage-tells-me + ifeq ($(HAVE_X11),yes) + X11_CFLAGS := $(shell pkg-config --cflags x11 xext) + X11_LIBS := $(shell pkg-config --libs x11 xext) + endif + +- HAVE_LIBCRYPTO := $(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes) ++ HAVE_LIBCRYPTO := not-unless-portage-tells-me + ifeq ($(HAVE_LIBCRYPTO),yes) + LIBCRYPTO_CFLAGS := $(shell pkg-config --cflags libcrypto) -DHAVE_LIBCRYPTO + LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto) diff --git a/app-text/mupdf/files/mupdf-1.18-Makefile.patch b/app-text/mupdf/files/mupdf-1.18-Makefile.patch new file mode 100644 index 0000000..32ee7e5 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.18-Makefile.patch @@ -0,0 +1,42 @@ +diff --git a/Makefile b/Makefile +index b0fb617..528e117 100644 +--- a/Makefile ++++ b/Makefile +@@ -3,7 +3,7 @@ + -include user.make + + ifndef build +- build := release ++ build := debug + endif + + ifndef OUT +@@ -214,13 +214,15 @@ MUPDF_LIB = $(OUT)/libmupdf.$(SO) + + $(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_OBJ) $(THREAD_OBJ) $(PKCS7_OBJ) + else +-MUPDF_LIB = $(OUT)/libmupdf.a +-THIRD_LIB = $(OUT)/libmupdf-third.a ++MUPDF_LIB = libmupdf.so.$(GENTOO_PV) ++MUPDF_STATIC = $(OUT)/libmupdf.a ++THIRD_LIB = + THREAD_LIB = $(OUT)/libmupdf-threads.a + PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a + +-$(MUPDF_LIB) : $(MUPDF_OBJ) +-$(THIRD_LIB) : $(THIRD_OBJ) ++$(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_OBJ) ++ $(QUIET_LINK) $(CC) $(LDFLAGS) --shared -Wl,-soname -Wl,$(MUPDF_LIB) -o $@ $^ $(THIRD_LIBS) $(LIBS) ++$(MUPDF_STATIC): $(MUPDF_OBJ) $(THIRD_OBJ) + $(THREAD_LIB) : $(THREAD_OBJ) + $(PKCS7_LIB) : $(PKCS7_OBJ) + endif +@@ -374,7 +376,7 @@ install: libs apps + + install -d $(DESTDIR)$(docdir) + install -d $(DESTDIR)$(docdir)/examples +- install -m 644 README COPYING CHANGES $(DESTDIR)$(docdir) ++ install -m 644 README CHANGES $(DESTDIR)$(docdir) + install -m 644 docs/*.html docs/*.css docs/*.png $(DESTDIR)$(docdir) + install -m 644 docs/examples/* $(DESTDIR)$(docdir)/examples + diff --git a/app-text/mupdf/files/mupdf-1.18.0-CVE-2021-3407.patch b/app-text/mupdf/files/mupdf-1.18.0-CVE-2021-3407.patch new file mode 100644 index 0000000..566ee56 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.18.0-CVE-2021-3407.patch @@ -0,0 +1,51 @@ +https://bugs.gentoo.org/772311 + +From cee7cefc610d42fd383b3c80c12cbc675443176a Mon Sep 17 00:00:00 2001 +From: Robin Watts <Robin.Watts@artifex.com> +Date: Fri, 22 Jan 2021 17:05:15 +0000 +Subject: [PATCH 1/1] Bug 703366: Fix double free of object during + linearization. + +This appears to happen because we parse an illegal object from +a broken file and assign it to object 0, which is defined to +be free. + +Here, we fix the parsing code so this can't happen. +--- + source/pdf/pdf-parse.c | 6 ++++++ + source/pdf/pdf-xref.c | 2 ++ + 2 files changed, 8 insertions(+) + +diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c +index 7abc8c3d4..5761c3351 100644 +--- a/source/pdf/pdf-parse.c ++++ b/source/pdf/pdf-parse.c +@@ -749,6 +749,12 @@ pdf_parse_ind_obj(fz_context *ctx, pdf_document *doc, + fz_throw(ctx, FZ_ERROR_SYNTAX, "expected generation number (%d ? obj)", num); + } + gen = buf->i; ++ if (gen < 0 || gen >= 65536) ++ { ++ if (try_repair) ++ *try_repair = 1; ++ fz_throw(ctx, FZ_ERROR_SYNTAX, "invalid generation number (%d)", gen); ++ } + + tok = pdf_lex(ctx, file, buf); + if (tok != PDF_TOK_OBJ) +diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c +index 1b2bdcd59..30197b4b8 100644 +--- a/source/pdf/pdf-xref.c ++++ b/source/pdf/pdf-xref.c +@@ -1190,6 +1190,8 @@ pdf_read_new_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf) + { + ofs = fz_tell(ctx, doc->file); + trailer = pdf_parse_ind_obj(ctx, doc, doc->file, buf, &num, &gen, &stm_ofs, NULL); ++ if (num == 0) ++ fz_throw(ctx, FZ_ERROR_GENERIC, "Trailer object number cannot be 0\n"); + } + fz_catch(ctx) + { +-- +2.17.1 + diff --git a/app-text/mupdf/files/mupdf-1.18.0-cross-fixes.patch b/app-text/mupdf/files/mupdf-1.18.0-cross-fixes.patch new file mode 100644 index 0000000..0576033 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.18.0-cross-fixes.patch @@ -0,0 +1,128 @@ +Refreshed patches based on: +https://sources.debian.org/patches/mupdf/1.17.0+ds1-1/0004-MuPDF-crossbuild-use-target-arch-pkg-config.patch/ +https://sources.debian.org/patches/mupdf/1.17.0+ds1-1/0005-MuPDF-crossbuild-use-host-cc-for-utils.patch/ +--- a/Makefile ++++ b/Makefile +@@ -147,6 +147,9 @@ PKCS7_OBJ := $(PKCS7_SRC:%.c=$(OUT)/%.o) + + HEXDUMP_EXE := $(OUT)/scripts/hexdump.exe + ++$(HEXDUMP_EXE): scripts/hexdump.c ++ $(QUIET_CC) $(MKTGTDIR) ; $(CC_FOR_BUILD) $(CFLAGS) -o $@ $< ++ + FONT_BIN := $(sort $(wildcard resources/fonts/urw/*.cff)) + FONT_BIN += $(sort $(wildcard resources/fonts/han/*.ttc)) + FONT_BIN += $(sort $(wildcard resources/fonts/droid/*.ttf)) +--- a/Makerules ++++ b/Makerules +@@ -6,6 +6,9 @@ OS := $(OS:MSYS%=MINGW) + OS := $(OS:Windows_NT=MINGW) + OS := $(OS:Darwin=MACOS) + ++PKG_CONFIG ?= pkg-config ++CC_FOR_BUILD ?= $(CC) ++ + ifeq ($(findstring -fembed-bitcode,$(XCFLAGS)),) + # clang does not support these in combination with -fembed-bitcode + CFLAGS += -ffunction-sections -fdata-sections +@@ -128,51 +128,51 @@ else ifeq ($(OS),MACOS) + else ifeq ($(OS),Linux) + HAVE_OBJCOPY := yes + +- ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes) +- SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2) +- SYS_FREETYPE_LIBS := $(shell pkg-config --libs freetype2) ++ ifeq ($(shell $(PKG_CONFIG) --exists freetype2 && echo yes),yes) ++ SYS_FREETYPE_CFLAGS := $(shell $(PKG_CONFIG) --cflags freetype2) ++ SYS_FREETYPE_LIBS := $(shell $(PKG_CONFIG) --libs freetype2) + endif +- ifeq ($(shell pkg-config --exists gumbo && echo yes),yes) +- SYS_GUMBO_CFLAGS := $(shell pkg-config --cflags gumbo) +- SYS_GUMBO_LIBS := $(shell pkg-config --libs gumbo) ++ ifeq ($(shell $(PKG_CONFIG) --exists gumbo && echo yes),yes) ++ SYS_GUMBO_CFLAGS := $(shell $(PKG_CONFIG) --cflags gumbo) ++ SYS_GUMBO_LIBS := $(shell $(PKG_CONFIG) --libs gumbo) + endif +- ifeq ($(shell pkg-config --exists harfbuzz && echo yes),yes) +- SYS_HARFBUZZ_CFLAGS := $(shell pkg-config --cflags harfbuzz) +- SYS_HARFBUZZ_LIBS := $(shell pkg-config --libs harfbuzz) ++ ifeq ($(shell $(PKG_CONFIG) --exists harfbuzz && echo yes),yes) ++ SYS_HARFBUZZ_CFLAGS := $(shell $(PKG_CONFIG) --cflags harfbuzz) ++ SYS_HARFBUZZ_LIBS := $(shell $(PKG_CONFIG) --libs harfbuzz) + endif +- ifeq ($(shell pkg-config --exists lcms2 && echo yes),yes) +- SYS_LCMS2_CFLAGS := $(shell pkg-config --cflags lcms2) +- SYS_LCMS2_LIBS := $(shell pkg-config --libs lcms2) ++ ifeq ($(shell $(PKG_CONFIG) --exists lcms2 && echo yes),yes) ++ SYS_LCMS2_CFLAGS := $(shell $(PKG_CONFIG) --cflags lcms2) ++ SYS_LCMS2_LIBS := $(shell $(PKG_CONFIG) --libs lcms2) + endif +- ifeq ($(shell pkg-config --exists libjpeg && echo yes),yes) +- SYS_LIBJPEG_CFLAGS := $(shell pkg-config --cflags libjpeg) +- SYS_LIBJPEG_LIBS := $(shell pkg-config --libs libjpeg) ++ ifeq ($(shell $(PKG_CONFIG) --exists libjpeg && echo yes),yes) ++ SYS_LIBJPEG_CFLAGS := $(shell $(PKG_CONFIG) --cflags libjpeg) ++ SYS_LIBJPEG_LIBS := $(shell $(PKG_CONFIG) --libs libjpeg) + endif +- ifeq ($(shell pkg-config --exists libopenjp2 && echo yes),yes) +- SYS_OPENJPEG_CFLAGS := $(shell pkg-config --cflags libopenjp2) +- SYS_OPENJPEG_LIBS := $(shell pkg-config --libs libopenjp2) ++ ifeq ($(shell $(PKG_CONFIG) --exists libopenjp2 && echo yes),yes) ++ SYS_OPENJPEG_CFLAGS := $(shell $(PKG_CONFIG) --cflags libopenjp2) ++ SYS_OPENJPEG_LIBS := $(shell $(PKG_CONFIG) --libs libopenjp2) + endif +- ifeq ($(shell pkg-config --exists zlib && echo yes),yes) +- SYS_ZLIB_CFLAGS := $(shell pkg-config --cflags zlib) +- SYS_ZLIB_LIBS := $(shell pkg-config --libs zlib) ++ ifeq ($(shell $(PKG_CONFIG) --exists zlib && echo yes),yes) ++ SYS_ZLIB_CFLAGS := $(shell $(PKG_CONFIG) --cflags zlib) ++ SYS_ZLIB_LIBS := $(shell $(PKG_CONFIG) --libs zlib) + endif + +- HAVE_LEPTONICA := $(shell pkg-config --exists 'lept >= 1.7.4' && echo yes) ++ HAVE_LEPTONICA := $(shell $(PKG_CONFIG) --exists 'lept >= 1.7.4' && echo yes) + ifeq ($(HAVE_LEPTONICA),yes) +- SYS_LEPTONICA_CFLAGS := $(shell pkg-config --cflags lept) +- SYS_LEPTONICA_LIBS := $(shell pkg-config --libs lept) ++ SYS_LEPTONICA_CFLAGS := $(shell $(PKG_CONFIG) --cflags lept) ++ SYS_LEPTONICA_LIBS := $(shell $(PKG_CONFIG) --libs lept) + endif + +- HAVE_TESSERACT := $(shell pkg-config --exists 'tesseract-ocr >= 4.0.0' && echo yes) ++ HAVE_TESSERACT := $(shell $(PKG_CONFIG) --exists 'tesseract-ocr >= 4.0.0' && echo yes) + ifeq ($(HAVE_TESSERACT),yes) +- SYS_TESSERACT_CFLAGS := $(shell pkg-config --cflags tesseract) +- SYS_TESSERACT_LIBS := $(shell pkg-config --libs tesseract) ++ SYS_TESSERACT_CFLAGS := $(shell $(PKG_CONFIG) --cflags tesseract) ++ SYS_TESSERACT_LIBS := $(shell $(PKG_CONFIG) --libs tesseract) + endif + +- HAVE_SYS_CURL := $(shell pkg-config --exists libcurl && echo yes) ++ HAVE_SYS_CURL := $(shell $(PKG_CONFIG) --exists libcurl && echo yes) + ifeq ($(HAVE_SYS_CURL),yes) +- SYS_CURL_CFLAGS := $(shell pkg-config --cflags libcurl) +- SYS_CURL_LIBS := $(shell pkg-config --libs libcurl) ++ SYS_CURL_CFLAGS := $(shell $(PKG_CONFIG) --cflags libcurl) ++ SYS_CURL_LIBS := $(shell $(PKG_CONFIG) --libs libcurl) + endif + + HAVE_GLUT := yes +@@ -183,14 +183,14 @@ else ifeq ($(OS),Linux) + + HAVE_X11 := not-unless-portage-tells-me + ifeq ($(HAVE_X11),yes) +- X11_CFLAGS := $(shell pkg-config --cflags x11 xext) +- X11_LIBS := $(shell pkg-config --libs x11 xext) ++ X11_CFLAGS := $(shell $(PKG_CONFIG) --cflags x11 xext) ++ X11_LIBS := $(shell $(PKG_CONFIG) --libs x11 xext) + endif + + HAVE_LIBCRYPTO := not-unless-portage-tells-me + ifeq ($(HAVE_LIBCRYPTO),yes) +- LIBCRYPTO_CFLAGS := $(shell pkg-config --cflags libcrypto) -DHAVE_LIBCRYPTO +- LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto) ++ LIBCRYPTO_CFLAGS := $(shell $(PKG_CONFIG) --cflags libcrypto) -DHAVE_LIBCRYPTO ++ LIBCRYPTO_LIBS := $(shell $(PKG_CONFIG) --libs libcrypto) + endif + + HAVE_PTHREAD := yes diff --git a/app-text/mupdf/files/mupdf-1.18.0-darwin.patch b/app-text/mupdf/files/mupdf-1.18.0-darwin.patch new file mode 100644 index 0000000..cdd8ccf --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.18.0-darwin.patch @@ -0,0 +1,41 @@ +--- a/Makerules ++++ b/Makerules +@@ -117,11 +117,11 @@ ifeq ($(OS),MINGW) + else ifeq ($(OS),MACOS) + HAVE_GLUT := yes + SYS_GLUT_CFLAGS := -Wno-deprecated-declarations +- SYS_GLUT_LIBS := -framework GLUT -framework OpenGL +- CC = xcrun cc +- AR = xcrun ar +- LD = xcrun ld +- RANLIB = xcrun ranlib ++ SYS_GLUT_LIBS ?= -framework GLUT -framework OpenGL ++ CC ?= xcrun cc ++ AR ?= xcrun ar ++ LD ?= xcrun ld ++ RANLIB ?= xcrun ranlib + + else ifeq ($(OS),Linux) + HAVE_OBJCOPY := yes +--- a/Makerules ++++ b/Makerules +@@ -122,9 +122,7 @@ else ifeq ($(OS),MACOS) + AR ?= xcrun ar + LD ?= xcrun ld + RANLIB ?= xcrun ranlib +- +-else ifeq ($(OS),Linux) +- HAVE_OBJCOPY := yes ++endif + + ifeq ($(shell $(PKG_CONFIG) --exists freetype2 && echo yes),yes) + SYS_FREETYPE_CFLAGS := $(shell $(PKG_CONFIG) --cflags freetype2) +@@ -197,8 +195,6 @@ else ifeq ($(OS),Linux) + PTHREAD_LIBS := -lpthread + endif + +-endif +- + # The following section has various cross compilation configurations. + # + # Invoke these as: diff --git a/app-text/mupdf/files/mupdf-1.18.0-fix-oob-in-pdf-layer.c b/app-text/mupdf/files/mupdf-1.18.0-fix-oob-in-pdf-layer.c new file mode 100644 index 0000000..dc4000b --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.18.0-fix-oob-in-pdf-layer.c @@ -0,0 +1,102 @@ +From b82e9b6d6b46877e5c3763cc3bc641c66fa7eb54 Mon Sep 17 00:00:00 2001 +From: Robin Watts <Robin.Watts@artifex.com> +Date: Thu, 8 Oct 2020 16:15:40 +0100 +Subject: [PATCH] Bug 701297: Harden populate_ui against unexpected repairs. + +We count the number of layers, and allocate space for them in +an array. We then walk the tree reading details of those layers +in. If we hit a problem that causes a repair while reading the +information, the number of layers can magically increase. In +the existing code we run off the end of the array. + +In the new code we watch for hitting the end of the array and +realloc as required. +--- + source/pdf/pdf-layer.c | 32 +++++++++++++++++++++++++------- + 1 file changed, 25 insertions(+), 7 deletions(-) + +diff --git a/source/pdf/pdf-layer.c b/source/pdf/pdf-layer.c +index 177f0c947..b8e9d7cad 100644 +--- a/source/pdf/pdf-layer.c ++++ b/source/pdf/pdf-layer.c +@@ -104,10 +104,27 @@ count_entries(fz_context *ctx, pdf_obj *obj) + } + + static pdf_ocg_ui * +-populate_ui(fz_context *ctx, pdf_ocg_descriptor *desc, pdf_ocg_ui *ui, pdf_obj *order, int depth, pdf_obj *rbgroups, pdf_obj *locked) ++get_ocg_ui(fz_context *ctx, pdf_ocg_descriptor *desc, int fill) ++{ ++ if (fill == desc->num_ui_entries) ++ { ++ /* Number of layers changed while parsing; ++ * probably due to a repair. */ ++ int newsize = desc->num_ui_entries * 2; ++ if (newsize == 0) ++ newsize = 4; /* Arbitrary non-zero */ ++ desc->ui = fz_realloc_array(ctx, desc->ui, newsize, pdf_ocg_ui); ++ desc->num_ui_entries = newsize; ++ } ++ return &desc->ui[fill]; ++} ++ ++static int ++populate_ui(fz_context *ctx, pdf_ocg_descriptor *desc, int fill, pdf_obj *order, int depth, pdf_obj *rbgroups, pdf_obj *locked) + { + int len = pdf_array_len(ctx, order); + int i, j; ++ pdf_ocg_ui *ui; + + for (i = 0; i < len; i++) + { +@@ -118,7 +135,7 @@ populate_ui(fz_context *ctx, pdf_ocg_descriptor *desc, pdf_ocg_ui *ui, pdf_obj * + continue; + + fz_try(ctx) +- ui = populate_ui(ctx, desc, ui, o, depth+1, rbgroups, locked); ++ fill = populate_ui(ctx, desc, fill, o, depth+1, rbgroups, locked); + fz_always(ctx) + pdf_unmark_obj(ctx, o); + fz_catch(ctx) +@@ -126,14 +143,14 @@ populate_ui(fz_context *ctx, pdf_ocg_descriptor *desc, pdf_ocg_ui *ui, pdf_obj * + + continue; + } +- ui->depth = depth; + if (pdf_is_string(ctx, o)) + { ++ ui = get_ocg_ui(ctx, desc, fill++); ++ ui->depth = depth; + ui->ocg = -1; + ui->name = pdf_to_str_buf(ctx, o); + ui->button_flags = PDF_LAYER_UI_LABEL; + ui->locked = 1; +- ui++; + continue; + } + +@@ -144,13 +161,14 @@ populate_ui(fz_context *ctx, pdf_ocg_descriptor *desc, pdf_ocg_ui *ui, pdf_obj * + } + if (j == desc->len) + continue; /* OCG not found in main list! Just ignore it */ ++ ui = get_ocg_ui(ctx, desc, fill++); ++ ui->depth = depth; + ui->ocg = j; + ui->name = pdf_dict_get_string(ctx, o, PDF_NAME(Name), NULL); + ui->button_flags = pdf_array_contains(ctx, o, rbgroups) ? PDF_LAYER_UI_RADIOBOX : PDF_LAYER_UI_CHECKBOX; + ui->locked = pdf_array_contains(ctx, o, locked); +- ui++; + } +- return ui; ++ return fill; + } + + static void +@@ -188,7 +206,7 @@ load_ui(fz_context *ctx, pdf_ocg_descriptor *desc, pdf_obj *ocprops, pdf_obj *oc + desc->ui = Memento_label(fz_calloc(ctx, count, sizeof(pdf_ocg_ui)), "pdf_ocg_ui"); + fz_try(ctx) + { +- (void)populate_ui(ctx, desc, desc->ui, order, 0, rbgroups, locked); ++ desc->num_ui_entries = populate_ui(ctx, desc, 0, order, 0, rbgroups, locked); + } + fz_catch(ctx) + { diff --git a/app-text/mupdf/files/mupdf-1.18.0-fix-oob-in-pixmap.c b/app-text/mupdf/files/mupdf-1.18.0-fix-oob-in-pixmap.c new file mode 100644 index 0000000..d19f059 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.18.0-fix-oob-in-pixmap.c @@ -0,0 +1,41 @@ +From 32e4e8b4bcbacbf92af7c88337efae21986d9603 Mon Sep 17 00:00:00 2001 +From: Robin Watts <Robin.Watts@artifex.com> +Date: Thu, 8 Oct 2020 18:10:28 +0100 +Subject: [PATCH] Bug 702958: Fix overflow in fz_clear_pixmap_with_value. + +--- + source/fitz/pixmap.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/source/fitz/pixmap.c b/source/fitz/pixmap.c +index 66873d214..80d8bb62f 100644 +--- a/source/fitz/pixmap.c ++++ b/source/fitz/pixmap.c +@@ -555,7 +555,8 @@ void + fz_clear_pixmap_with_value(fz_context *ctx, fz_pixmap *pix, int value) + { + unsigned char *s; +- int w, h, n, stride, len; ++ int w, h, n; ++ ptrdiff_t stride, len; + int alpha = pix->alpha; + + w = pix->w; +@@ -572,7 +573,7 @@ fz_clear_pixmap_with_value(fz_context *ctx, fz_pixmap *pix, int value) + + n = pix->n; + stride = pix->stride; +- len = w * n; ++ len = (ptrdiff_t)w * n; + + s = pix->samples; + if (value == 255 || !alpha) +@@ -584,7 +585,7 @@ fz_clear_pixmap_with_value(fz_context *ctx, fz_pixmap *pix, int value) + } + while (h--) + { +- memset(s, value, (unsigned int)len); ++ memset(s, value, len); + s += stride; + } + } diff --git a/app-text/mupdf/files/mupdf-1.19.0-Makefile.patch b/app-text/mupdf/files/mupdf-1.19.0-Makefile.patch new file mode 100644 index 0000000..b266655 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.19.0-Makefile.patch @@ -0,0 +1,37 @@ +diff --git a/Makefile b/Makefile +index 7fa74b3..e842374 100644 +--- a/Makefile ++++ b/Makefile +@@ -3,7 +3,7 @@ + -include user.make + + ifndef build +- build := release ++ build := debug + endif + + default: all +@@ -252,17 +252,19 @@ $(THIRD_GLUT_LIB) : $(THIRD_GLUT_OBJ) + $(THREAD_LIB) : $(THREAD_OBJ) + $(PKCS7_LIB) : $(PKCS7_OBJ) + else +-MUPDF_LIB = $(OUT)/libmupdf.a ++MUPDF_LIB = libmupdf.so.$(GENTOO_PV) + LIBS_TO_INSTALL_IN_LIB = $(MUPDF_LIB) $(THIRD_LIB) +-THIRD_LIB = $(OUT)/libmupdf-third.a ++THIRD_LIB = ++MUPDF_STATIC = $(OUT)/libmupdf.a + ifneq ($(USE_SYSTEM_GLUT),yes) + THIRD_GLUT_LIB = $(OUT)/libmupdf-glut.a + endif + THREAD_LIB = $(OUT)/libmupdf-threads.a + PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a + +-$(MUPDF_LIB) : $(MUPDF_OBJ) +-$(THIRD_LIB) : $(THIRD_OBJ) ++$(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_OBJ) ++ $(QUIET_LINK) $(CC) $(LDFLAGS) --shared -Wl,-soname -Wl,$(MUPDF_LIB) -o $@ $^ $(THIRD_LIBS) $(LIBS) ++$(MUPDF_STATIC): $(MUPDF_OBJ) $(THIRD_OBJ) + $(THIRD_GLUT_LIB) : $(THIRD_GLUT_OBJ) + $(THREAD_LIB) : $(THREAD_OBJ) + $(PKCS7_LIB) : $(PKCS7_OBJ) diff --git a/app-text/mupdf/files/mupdf-1.19.0-cross-fixes.patch b/app-text/mupdf/files/mupdf-1.19.0-cross-fixes.patch new file mode 100644 index 0000000..643b6d2 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.19.0-cross-fixes.patch @@ -0,0 +1,130 @@ +Refreshed patches based on: +https://sources.debian.org/patches/mupdf/1.17.0+ds1-1/0004-MuPDF-crossbuild-use-target-arch-pkg-config.patch/ +https://sources.debian.org/patches/mupdf/1.17.0+ds1-1/0005-MuPDF-crossbuild-use-host-cc-for-utils.patch/ +--- a/Makefile ++++ b/Makefile +@@ -147,6 +147,9 @@ PKCS7_OBJ := $(PKCS7_SRC:%.c=$(OUT)/%.o) + + HEXDUMP_EXE := $(OUT)/scripts/hexdump.exe + ++$(HEXDUMP_EXE): scripts/hexdump.c ++ $(QUIET_CC) $(MKTGTDIR) ; $(CC_FOR_BUILD) $(CFLAGS) -o $@ $< ++ + FONT_BIN := $(sort $(wildcard resources/fonts/urw/*.cff)) + FONT_BIN += $(sort $(wildcard resources/fonts/han/*.ttc)) + FONT_BIN += $(sort $(wildcard resources/fonts/droid/*.ttf)) +--- a/Makerules ++++ b/Makerules +@@ -6,6 +6,9 @@ OS := $(OS:MSYS%=MINGW) + OS := $(OS:Windows_NT=MINGW) + OS := $(OS:Darwin=MACOS) + ++PKG_CONFIG ?= pkg-config ++CC_FOR_BUILD ?= $(CC) ++ + WARNING_CFLAGS := -Wall -Wsign-compare + + # Feature configuration options +@@ -156,51 +159,51 @@ else ifeq ($(OS),MACOS) + endif + endif + +- ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes) +- SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2) +- SYS_FREETYPE_LIBS := $(shell pkg-config --libs freetype2) ++ ifeq ($(shell $(PKG_CONFIG) --exists freetype2 && echo yes),yes) ++ SYS_FREETYPE_CFLAGS := $(shell $(PKG_CONFIG) --cflags freetype2) ++ SYS_FREETYPE_LIBS := $(shell $(PKG_CONFIG) --libs freetype2) + endif +- ifeq ($(shell pkg-config --exists gumbo && echo yes),yes) +- SYS_GUMBO_CFLAGS := $(shell pkg-config --cflags gumbo) +- SYS_GUMBO_LIBS := $(shell pkg-config --libs gumbo) ++ ifeq ($(shell $(PKG_CONFIG) --exists gumbo && echo yes),yes) ++ SYS_GUMBO_CFLAGS := $(shell $(PKG_CONFIG) --cflags gumbo) ++ SYS_GUMBO_LIBS := $(shell $(PKG_CONFIG) --libs gumbo) + endif +- ifeq ($(shell pkg-config --exists harfbuzz && echo yes),yes) +- SYS_HARFBUZZ_CFLAGS := $(shell pkg-config --cflags harfbuzz) +- SYS_HARFBUZZ_LIBS := $(shell pkg-config --libs harfbuzz) ++ ifeq ($(shell $(PKG_CONFIG) --exists harfbuzz && echo yes),yes) ++ SYS_HARFBUZZ_CFLAGS := $(shell $(PKG_CONFIG) --cflags harfbuzz) ++ SYS_HARFBUZZ_LIBS := $(shell $(PKG_CONFIG) --libs harfbuzz) + endif +- ifeq ($(shell pkg-config --exists lcms2 && echo yes),yes) +- SYS_LCMS2_CFLAGS := $(shell pkg-config --cflags lcms2) +- SYS_LCMS2_LIBS := $(shell pkg-config --libs lcms2) ++ ifeq ($(shell $(PKG_CONFIG) --exists lcms2 && echo yes),yes) ++ SYS_LCMS2_CFLAGS := $(shell $(PKG_CONFIG) --cflags lcms2) ++ SYS_LCMS2_LIBS := $(shell $(PKG_CONFIG) --libs lcms2) + endif +- ifeq ($(shell pkg-config --exists libjpeg && echo yes),yes) +- SYS_LIBJPEG_CFLAGS := $(shell pkg-config --cflags libjpeg) +- SYS_LIBJPEG_LIBS := $(shell pkg-config --libs libjpeg) ++ ifeq ($(shell $(PKG_CONFIG) --exists libjpeg && echo yes),yes) ++ SYS_LIBJPEG_CFLAGS := $(shell $(PKG_CONFIG) --cflags libjpeg) ++ SYS_LIBJPEG_LIBS := $(shell $(PKG_CONFIG) --libs libjpeg) + endif +- ifeq ($(shell pkg-config --exists libopenjp2 && echo yes),yes) +- SYS_OPENJPEG_CFLAGS := $(shell pkg-config --cflags libopenjp2) +- SYS_OPENJPEG_LIBS := $(shell pkg-config --libs libopenjp2) ++ ifeq ($(shell $(PKG_CONFIG) --exists libopenjp2 && echo yes),yes) ++ SYS_OPENJPEG_CFLAGS := $(shell $(PKG_CONFIG) --cflags libopenjp2) ++ SYS_OPENJPEG_LIBS := $(shell $(PKG_CONFIG) --libs libopenjp2) + endif +- ifeq ($(shell pkg-config --exists zlib && echo yes),yes) +- SYS_ZLIB_CFLAGS := $(shell pkg-config --cflags zlib) +- SYS_ZLIB_LIBS := $(shell pkg-config --libs zlib) ++ ifeq ($(shell $(PKG_CONFIG) --exists zlib && echo yes),yes) ++ SYS_ZLIB_CFLAGS := $(shell $(PKG_CONFIG) --cflags zlib) ++ SYS_ZLIB_LIBS := $(shell $(PKG_CONFIG) --libs zlib) + endif + +- HAVE_SYS_LEPTONICA := $(shell pkg-config --exists 'lept >= 1.7.4' && echo yes) ++ HAVE_SYS_LEPTONICA := $(shell $(PKG_CONFIG) --exists 'lept >= 1.7.4' && echo yes) + ifeq ($(HAVE_SYS_LEPTONICA),yes) +- SYS_LEPTONICA_CFLAGS := $(shell pkg-config --cflags lept) +- SYS_LEPTONICA_LIBS := $(shell pkg-config --libs lept) ++ SYS_LEPTONICA_CFLAGS := $(shell $(PKG_CONFIG) --cflags lept) ++ SYS_LEPTONICA_LIBS := $(shell $(PKG_CONFIG) --libs lept) + endif + +- HAVE_SYS_TESSERACT := $(shell pkg-config --exists 'tesseract >= 4.0.0' && echo yes) ++ HAVE_SYS_TESSERACT := $(shell $(PKG_CONFIG) --exists 'tesseract >= 4.0.0' && echo yes) + ifeq ($(HAVE_SYS_TESSERACT),yes) +- SYS_TESSERACT_CFLAGS := $(shell pkg-config --cflags tesseract) +- SYS_TESSERACT_LIBS := $(shell pkg-config --libs tesseract) ++ SYS_TESSERACT_CFLAGS := $(shell $(PKG_CONFIG) --cflags tesseract) ++ SYS_TESSERACT_LIBS := $(shell $(PKG_CONFIG) --libs tesseract) + endif + +- HAVE_SYS_CURL := $(shell pkg-config --exists libcurl && echo yes) ++ HAVE_SYS_CURL := $(shell $(PKG_CONFIG) --exists libcurl && echo yes) + ifeq ($(HAVE_SYS_CURL),yes) +- SYS_CURL_CFLAGS := $(shell pkg-config --cflags libcurl) +- SYS_CURL_LIBS := $(shell pkg-config --libs libcurl) ++ SYS_CURL_CFLAGS := $(shell $(PKG_CONFIG) --cflags libcurl) ++ SYS_CURL_LIBS := $(shell $(PKG_CONFIG) --libs libcurl) + endif + + HAVE_GLUT := yes +@@ -209,16 +212,16 @@ endif + SYS_GLUT_LIBS := -lglut -lGL + endif + + HAVE_X11 := not-unless-portage-tells-me + ifeq ($(HAVE_X11),yes) +- X11_CFLAGS := $(shell pkg-config --cflags x11 xext) +- X11_LIBS := $(shell pkg-config --libs x11 xext) ++ X11_CFLAGS := $(shell $(PKG_CONFIG) --cflags x11 xext) ++ X11_LIBS := $(shell $(PKG_CONFIG) --libs x11 xext) + endif + + HAVE_LIBCRYPTO := not-unless-portage-tells-me + ifeq ($(HAVE_LIBCRYPTO),yes) +- LIBCRYPTO_CFLAGS := $(shell pkg-config --cflags libcrypto) -DHAVE_LIBCRYPTO +- LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto) ++ LIBCRYPTO_CFLAGS := $(shell $(PKG_CONFIG) --cflags libcrypto) -DHAVE_LIBCRYPTO ++ LIBCRYPTO_LIBS := $(shell $(PKG_CONFIG) --libs libcrypto) + endif + + HAVE_PTHREAD := yes diff --git a/app-text/mupdf/files/mupdf-1.19.0-darwin.patch b/app-text/mupdf/files/mupdf-1.19.0-darwin.patch new file mode 100644 index 0000000..a81c7a0 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.19.0-darwin.patch @@ -0,0 +1,39 @@ +--- a/Makerules ++++ b/Makerules +@@ -139,11 +139,11 @@ ifeq ($(OS),MINGW) + else ifeq ($(OS),MACOS) + HAVE_GLUT := yes + SYS_GLUT_CFLAGS := -Wno-deprecated-declarations +- SYS_GLUT_LIBS := -framework GLUT -framework OpenGL +- CC = xcrun cc +- AR = xcrun ar +- LD = xcrun ld +- RANLIB = xcrun ranlib ++ SYS_GLUT_LIBS ?= -framework GLUT -framework OpenGL ++ CC ?= xcrun cc ++ AR ?= xcrun ar ++ LD ?= xcrun ld ++ RANLIB ?= xcrun ranlib + + ifeq (, $(shell which pkg-config)) + $(warning "No pkg-config found, install it for proper integration of libcrypto") +@@ -154,9 +154,7 @@ else ifeq ($(OS),MACOS) + LIBCRYPTO_LIBS := $(shell pkg-config --libs libcrypto) + endif + endif +- +-else ifeq ($(OS),Linux) +- HAVE_OBJCOPY := yes ++endif + + ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes) + SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2) +@@ -229,8 +227,6 @@ else ifeq ($(OS),Linux) + PTHREAD_LIBS := -lpthread + endif + +-endif +- + # The following section has various cross compilation configurations. + # + # Invoke these as: diff --git a/app-text/mupdf/files/mupdf-1.20.0-lcms2.patch b/app-text/mupdf/files/mupdf-1.20.0-lcms2.patch new file mode 100644 index 0000000..a5cb30e --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.20.0-lcms2.patch @@ -0,0 +1,69 @@ +From d98de0bb0b627772625c1acf050ba0dd4b5ac9df Mon Sep 17 00:00:00 2001 +From: David Seifert <soap@gentoo.org> +Date: Tue, 5 Jul 2022 11:35:28 +0200 +Subject: [PATCH] Perform type punning via union without undefined behavior + +* The previous code from c3d7f491e2daebda2413fb3d2935c51df1c50ac7 + still contains undefined behavior, since it just creates + temporary pointer variables. +--- + src/cmsplugin.c | 31 +++++++++++++++---------------- + 1 file changed, 15 insertions(+), 16 deletions(-) + +This patch slightly differs from the upstream commit, because +the lcms2 version used in mupdf is slightly behind the upstream +version. + +See: https://github.com/mm2/Little-CMS/commit/d98de0bb0b627772625c1acf050ba0dd4b5ac9df.patch + +diff --git a/src/cmsplugin.c b/src/cmsplugin.c +index 556fbc28..b34e3aab 100644 +--- a/thirdparty/lcms2/src/cmsplugin.c ++++ b/thirdparty/lcms2/src/cmsplugin.c +@@ -167,17 +167,20 @@ cmsBool CMSEXPORT _cmsReadUInt32Number(cmsContext ContextID, cmsIOHANDLER* io, + + cmsBool CMSEXPORT _cmsReadFloat32Number(cmsContext ContextID, cmsIOHANDLER* io, cmsFloat32Number* n) + { +- cmsUInt32Number tmp; ++ union typeConverter { ++ cmsUInt32Number integer; ++ cmsFloat32Number floating_point; ++ } tmp; + + _cmsAssert(io != NULL); + +- if (io->Read(ContextID, io, &tmp, sizeof(cmsUInt32Number), 1) != 1) ++ if (io->Read(ContextID, io, &tmp.integer, sizeof(cmsUInt32Number), 1) != 1) + return FALSE; + + if (n != NULL) { + +- tmp = _cmsAdjustEndianess32(tmp); +- *n = *(cmsFloat32Number*)(void*)&tmp; ++ tmp.integer = _cmsAdjustEndianess32(tmp.integer); ++ *n = tmp.floating_point; + + // Safeguard which covers against absurd values + if (*n > 1E+20 || *n < -1E+20) return FALSE; +@@ -304,13 +307,14 @@ cmsBool CMSEXPORT _cmsWriteUInt32Number(cmsContext ContextID, cmsIOHANDLER* io, + + cmsBool CMSEXPORT _cmsWriteFloat32Number(cmsContext ContextID, cmsIOHANDLER* io, cmsFloat32Number n) + { +- cmsUInt32Number tmp; +- +- _cmsAssert(io != NULL); +- +- tmp = *(cmsUInt32Number*) (void*) &n; +- tmp = _cmsAdjustEndianess32(tmp); +- if (io -> Write(ContextID, io, sizeof(cmsUInt32Number), &tmp) != 1) ++ union typeConverter { ++ cmsUInt32Number integer; ++ cmsFloat32Number floating_point; ++ } tmp; ++ ++ tmp.floating_point = n; ++ tmp.integer = _cmsAdjustEndianess32(tmp.integer); ++ if (io -> Write(ContextID, io, sizeof(cmsUInt32Number), &tmp.integer) != 1) + return FALSE; + + return TRUE; diff --git a/app-text/mupdf/files/mupdf-1.20.3-libressl.patch b/app-text/mupdf/files/mupdf-1.20.3-libressl.patch new file mode 100644 index 0000000..ad0cc47 --- /dev/null +++ b/app-text/mupdf/files/mupdf-1.20.3-libressl.patch @@ -0,0 +1,15 @@ +From: orbea <orbea@riseup.net> +Date: Fri, 7 Oct 2022 03:33:15 -0700 +Subject: [PATCH] Support libressl 3.6.x + +--- a/source/helpers/pkcs7/pkcs7-openssl.c ++++ b/source/helpers/pkcs7/pkcs7-openssl.c +@@ -119,7 +119,7 @@ static const char AdobeCA_p7c[] = { + #warning detect version of openssl at compile time + #endif + +-#ifdef LIBRESSL_VERSION_NUMBER ++#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3060000fL + + static inline const STACK_OF(PKCS12_SAFEBAG) * + PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag) diff --git a/app-text/mupdf/metadata.xml b/app-text/mupdf/metadata.xml new file mode 100644 index 0000000..5d2f87c --- /dev/null +++ b/app-text/mupdf/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>rndxelement@protonmail.com</email> + <name>Philipp Rösner</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> +</pkgmetadata> diff --git a/app-text/mupdf/mupdf-1.19.1.ebuild b/app-text/mupdf/mupdf-1.19.1.ebuild new file mode 100644 index 0000000..125462a --- /dev/null +++ b/app-text/mupdf/mupdf-1.19.1.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please check upstream git regularly for relevant security-related commits +# to backport. + +inherit desktop flag-o-matic toolchain-funcs xdg + +DESCRIPTION="A lightweight PDF viewer and toolkit written in portable C" +HOMEPAGE="https://mupdf.com/ https://git.ghostscript.com/?p=mupdf.git" +SRC_URI="https://mupdf.com/downloads/archive/${P}-source.tar.xz" +S="${WORKDIR}"/${P}-source + +LICENSE="AGPL-3" +SLOT="0/${PV}" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 x86" +IUSE="+javascript opengl ssl X" +REQUIRED_USE="opengl? ( javascript )" + +# Although we use the bundled, patched version of freeglut in mupdf (because of +# bug #653298), the best way to ensure that its dependencies are present is to +# install system's freeglut. +RDEPEND=" + dev-libs/gumbo + media-libs/freetype:2= + media-libs/harfbuzz:=[truetype] + media-libs/jbig2dec:= + media-libs/libpng:0= + >=media-libs/openjpeg-2.1:2= + >=media-libs/libjpeg-turbo-1.5.3-r2:0 + javascript? ( >=dev-lang/mujs-1.0.7:= ) + opengl? ( >=media-libs/freeglut-3.0.0 ) + ssl? ( >=dev-libs/openssl-1.1:0= ) + X? ( + x11-libs/libX11 + x11-libs/libXext + ) +" +DEPEND="${RDEPEND}" +BDEPEND="X? ( x11-base/xorg-proto ) + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.15-CFLAGS.patch + "${FILESDIR}"/${PN}-1.19.0-Makefile.patch + "${FILESDIR}"/${PN}-1.10a-add-desktop-pc-xpm-files.patch + "${FILESDIR}"/${PN}-1.19.0-darwin.patch + # See bugs #662352 + "${FILESDIR}"/${PN}-1.15-openssl-x11.patch + # General cross fixes from Debian (refreshed) + "${FILESDIR}"/${PN}-1.19.0-cross-fixes.patch + "${FILESDIR}"/${PN}-1.20.3-libressl.patch +) + +src_prepare() { + default + + use hppa && append-cflags -ffunction-sections + + append-cflags "-DFZ_ENABLE_JS=$(usex javascript 1 0)" + + sed -e "1iOS = Linux" \ + -e "1iCC = $(tc-getCC)" \ + -e "1iCXX = $(tc-getCXX)" \ + -e "1iLD = $(tc-getLD)" \ + -e "1iAR = $(tc-getAR)" \ + -e "1iverbose = yes" \ + -e "1ibuild = debug" \ + -i Makerules || die "Failed adding build variables to Makerules in src_prepare()" +} + +_emake() { + # When HAVE_OBJCOPY is yes, we end up with a lot of QA warnings. + # + # Bundled libs + # * General + # Note that USE_SYSTEM_LIBS=yes is a metaoption which will set to upstream's + # recommendations. It does not mean "always use system libs". + # See [0] below for what it means in a specific version. + # + # * freeglut + # We don't use system's freeglut because upstream has a special modified + # version of it that gives mupdf clipboard support. See bug #653298 + # + # * mujs + # As of v1.15.0, mupdf started using symbols in mujs that were not part + # of any release. We then went back to using the bundled version of it. + # But v1.17.0 looks ok, so we'll go unbundled again. Be aware of this risk + # when bumping and check! + # See bug #685244 + # + # * lmms2 + # mupdf uses a bundled version of lcms2 [0] because Artifex have forked it [1]. + # It is therefore not appropriate for us to unbundle it at this time. + # + # [0] https://git.ghostscript.com/?p=mupdf.git;a=blob;f=Makethird;h=c4c540fa4a075df0db85e6fdaab809099881f35a;hb=HEAD#l9 + # [1] https://www.ghostscript.com/doc/lcms2mt/doc/WhyThisFork.txt + local myemakeargs=( + GENTOO_PV=${PV} + HAVE_GLUT=$(usex opengl) + HAVE_LIBCRYPTO=$(usex ssl) + HAVE_X11=$(usex X) + USE_SYSTEM_LIBS=yes + USE_SYSTEM_MUJS=$(usex javascript) + USE_SYSTEM_GLUT=no + HAVE_OBJCOPY=no + "$@" + ) + + emake "${myemakeargs[@]}" +} + +src_compile() { + tc-export PKG_CONFIG + + _emake XCFLAGS="-fPIC" +} + +src_install() { + if use opengl || use X ; then + domenu platform/debian/${PN}.desktop + doicon platform/debian/${PN}.xpm + else + rm docs/man/${PN}.1 || die "Failed to remove man page in src_install()" + fi + + sed -i \ + -e "1iprefix = ${ED}/usr" \ + -e "1ilibdir = ${ED}/usr/$(get_libdir)" \ + -e "1idocdir = ${ED}/usr/share/doc/${PF}" \ + -i Makerules || die "Failed adding liprefix, lilibdir and lidocdir to Makerules in src_install()" + + _emake install + + dosym libmupdf.so.${PV} /usr/$(get_libdir)/lib${PN}.so + + if use opengl ; then + einfo "mupdf symlink points to mupdf-gl (bug 616654)" + dosym ${PN}-gl /usr/bin/${PN} + elif use X ; then + einfo "mupdf symlink points to mupdf-x11 (bug 616654)" + dosym ${PN}-x11 /usr/bin/${PN} + fi + + # Respect libdir (bug #734898) + sed -i -e "s:/lib:/$(get_libdir):" platform/debian/${PN}.pc || die "Failed to sed pkgconfig file to respect libdir in src_install()" + + insinto /usr/$(get_libdir)/pkgconfig + doins platform/debian/${PN}.pc + + dodoc README CHANGES CONTRIBUTORS +} diff --git a/app-text/mupdf/mupdf-1.20.0.ebuild b/app-text/mupdf/mupdf-1.20.0.ebuild new file mode 100644 index 0000000..b3865ab --- /dev/null +++ b/app-text/mupdf/mupdf-1.20.0.ebuild @@ -0,0 +1,160 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please check upstream git regularly for relevant security-related commits +# to backport. + +inherit desktop flag-o-matic toolchain-funcs xdg + +DESCRIPTION="A lightweight PDF viewer and toolkit written in portable C" +HOMEPAGE="https://mupdf.com/ https://git.ghostscript.com/?p=mupdf.git" +SRC_URI="https://mupdf.com/downloads/archive/${P}-source.tar.gz" +S="${WORKDIR}"/${P}-source + +LICENSE="AGPL-3" +SLOT="0/${PV}" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 x86" +IUSE="+javascript opengl ssl X" +REQUIRED_USE="opengl? ( javascript )" + +# Although we use the bundled, patched version of freeglut in mupdf (because of +# bug #653298), the best way to ensure that its dependencies are present is to +# install system's freeglut. +RDEPEND=" + dev-libs/gumbo + media-libs/freetype:2= + media-libs/harfbuzz:=[truetype] + media-libs/jbig2dec:= + media-libs/libpng:0= + >=media-libs/openjpeg-2.1:2= + >=media-libs/libjpeg-turbo-1.5.3-r2:0 + javascript? ( >=dev-lang/mujs-1.0.7:= ) + opengl? ( >=media-libs/freeglut-3.0.0 ) + ssl? ( >=dev-libs/openssl-1.1:0= ) + X? ( + x11-libs/libX11 + x11-libs/libXext + ) +" +DEPEND="${RDEPEND}" +BDEPEND="X? ( x11-base/xorg-proto ) + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.15-CFLAGS.patch + "${FILESDIR}"/${PN}-1.19.0-Makefile.patch + "${FILESDIR}"/${PN}-1.10a-add-desktop-pc-xpm-files.patch + "${FILESDIR}"/${PN}-1.19.0-darwin.patch + # See bugs #662352 + "${FILESDIR}"/${PN}-1.15-openssl-x11.patch + # General cross fixes from Debian (refreshed) + "${FILESDIR}"/${PN}-1.19.0-cross-fixes.patch + "${FILESDIR}"/${P}-lcms2.patch + "${FILESDIR}"/${PN}-1.20.3-libressl.patch +) + +src_prepare() { + default + + use hppa && append-cflags -ffunction-sections + + append-cflags "-DFZ_ENABLE_JS=$(usex javascript 1 0)" + + sed -e "1iOS = Linux" \ + -e "1iCC = $(tc-getCC)" \ + -e "1iCXX = $(tc-getCXX)" \ + -e "1iLD = $(tc-getLD)" \ + -e "1iAR = $(tc-getAR)" \ + -e "1iverbose = yes" \ + -e "1ibuild = debug" \ + -i Makerules || die "Failed adding build variables to Makerules in src_prepare()" + + # Adjust MuPDF version in .pc file created by the + # mupdf-1.10a-add-desktop-pc-xpm-files.patch file + sed -e "s/Version: \(.*\)/Version: ${PV}/" \ + -i platform/debian/${PN}.pc || die "Failed substituting version in ${PN}.pc" +} + +_emake() { + # When HAVE_OBJCOPY is yes, we end up with a lot of QA warnings. + # + # Bundled libs + # * General + # Note that USE_SYSTEM_LIBS=yes is a metaoption which will set to upstream's + # recommendations. It does not mean "always use system libs". + # See [0] below for what it means in a specific version. + # + # * freeglut + # We don't use system's freeglut because upstream has a special modified + # version of it that gives mupdf clipboard support. See bug #653298 + # + # * mujs + # As of v1.15.0, mupdf started using symbols in mujs that were not part + # of any release. We then went back to using the bundled version of it. + # But v1.17.0 looks ok, so we'll go unbundled again. Be aware of this risk + # when bumping and check! + # See bug #685244 + # + # * lmms2 + # mupdf uses a bundled version of lcms2 [0] because Artifex have forked it [1]. + # It is therefore not appropriate for us to unbundle it at this time. + # + # [0] https://git.ghostscript.com/?p=mupdf.git;a=blob;f=Makethird;h=c4c540fa4a075df0db85e6fdaab809099881f35a;hb=HEAD#l9 + # [1] https://www.ghostscript.com/doc/lcms2mt/doc/WhyThisFork.txt + local myemakeargs=( + GENTOO_PV=${PV} + HAVE_GLUT=$(usex opengl) + HAVE_LIBCRYPTO=$(usex ssl) + HAVE_X11=$(usex X) + USE_SYSTEM_LIBS=yes + USE_SYSTEM_MUJS=$(usex javascript) + USE_SYSTEM_GLUT=no + HAVE_OBJCOPY=no + "$@" + ) + + emake "${myemakeargs[@]}" +} + +src_compile() { + tc-export PKG_CONFIG + + _emake XCFLAGS="-fPIC" +} + +src_install() { + if use opengl || use X ; then + domenu platform/debian/${PN}.desktop + doicon platform/debian/${PN}.xpm + else + rm docs/man/${PN}.1 || die "Failed to remove man page in src_install()" + fi + + sed -i \ + -e "1iprefix = ${ED}/usr" \ + -e "1ilibdir = ${ED}/usr/$(get_libdir)" \ + -e "1idocdir = ${ED}/usr/share/doc/${PF}" \ + -i Makerules || die "Failed adding liprefix, lilibdir and lidocdir to Makerules in src_install()" + + _emake install + + dosym libmupdf.so.${PV} /usr/$(get_libdir)/lib${PN}.so + + if use opengl ; then + einfo "mupdf symlink points to mupdf-gl (bug 616654)" + dosym ${PN}-gl /usr/bin/${PN} + elif use X ; then + einfo "mupdf symlink points to mupdf-x11 (bug 616654)" + dosym ${PN}-x11 /usr/bin/${PN} + fi + + # Respect libdir (bug #734898) + sed -i -e "s:/lib:/$(get_libdir):" platform/debian/${PN}.pc || die "Failed to sed pkgconfig file to respect libdir in src_install()" + + insinto /usr/$(get_libdir)/pkgconfig + doins platform/debian/${PN}.pc + + dodoc README CHANGES CONTRIBUTORS +} diff --git a/app-text/mupdf/mupdf-1.20.3.ebuild b/app-text/mupdf/mupdf-1.20.3.ebuild new file mode 100644 index 0000000..491449b --- /dev/null +++ b/app-text/mupdf/mupdf-1.20.3.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please check upstream git regularly for relevant security-related commits +# to backport. + +inherit desktop flag-o-matic toolchain-funcs xdg + +DESCRIPTION="A lightweight PDF viewer and toolkit written in portable C" +HOMEPAGE="https://mupdf.com/ https://git.ghostscript.com/?p=mupdf.git" +SRC_URI="https://mupdf.com/downloads/archive/${P}-source.tar.gz" +S="${WORKDIR}"/${P}-source + +LICENSE="AGPL-3" +SLOT="0/${PV}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="+javascript opengl ssl X" +REQUIRED_USE="opengl? ( javascript )" + +# Although we use the bundled, patched version of freeglut in mupdf (because of +# bug #653298), the best way to ensure that its dependencies are present is to +# install system's freeglut. +RDEPEND=" + dev-libs/gumbo + media-libs/freetype:2 + media-libs/harfbuzz:=[truetype] + media-libs/jbig2dec:= + media-libs/libpng:0= + >=media-libs/openjpeg-2.1:2= + >=media-libs/libjpeg-turbo-1.5.3-r2:0= + javascript? ( >=dev-lang/mujs-1.0.7:= ) + opengl? ( >=media-libs/freeglut-3.0.0 ) + ssl? ( >=dev-libs/openssl-1.1:0= ) + sys-libs/zlib + X? ( + x11-libs/libX11 + x11-libs/libXext + ) +" +DEPEND="${RDEPEND}" +BDEPEND="X? ( x11-base/xorg-proto ) + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-1.15-CFLAGS.patch + "${FILESDIR}"/${PN}-1.19.0-Makefile.patch + "${FILESDIR}"/${PN}-1.10a-add-desktop-pc-xpm-files.patch + "${FILESDIR}"/${PN}-1.19.0-darwin.patch + # See bugs #662352 + "${FILESDIR}"/${PN}-1.15-openssl-x11.patch + # General cross fixes from Debian (refreshed) + "${FILESDIR}"/${PN}-1.19.0-cross-fixes.patch + "${FILESDIR}"/${PN}-1.20.0-lcms2.patch + "${FILESDIR}"/${PN}-1.20.3-libressl.patch +) + +src_prepare() { + default + + use hppa && append-cflags -ffunction-sections + + append-cflags "-DFZ_ENABLE_JS=$(usex javascript 1 0)" + + sed -e "1iOS = Linux" \ + -e "1iCC = $(tc-getCC)" \ + -e "1iCXX = $(tc-getCXX)" \ + -e "1iLD = $(tc-getLD)" \ + -e "1iAR = $(tc-getAR)" \ + -e "1iverbose = yes" \ + -e "1ibuild = debug" \ + -i Makerules || die "Failed adding build variables to Makerules in src_prepare()" + + # Adjust MuPDF version in .pc file created by the + # mupdf-1.10a-add-desktop-pc-xpm-files.patch file + sed -e "s/Version: \(.*\)/Version: ${PV}/" \ + -i platform/debian/${PN}.pc || die "Failed substituting version in ${PN}.pc" +} + +_emake() { + # When HAVE_OBJCOPY is yes, we end up with a lot of QA warnings. + # + # Bundled libs + # * General + # Note that USE_SYSTEM_LIBS=yes is a metaoption which will set to upstream's + # recommendations. It does not mean "always use system libs". + # See [0] below for what it means in a specific version. + # + # * freeglut + # We don't use system's freeglut because upstream has a special modified + # version of it that gives mupdf clipboard support. See bug #653298 + # + # * mujs + # As of v1.15.0, mupdf started using symbols in mujs that were not part + # of any release. We then went back to using the bundled version of it. + # But v1.17.0 looks ok, so we'll go unbundled again. Be aware of this risk + # when bumping and check! + # See bug #685244 + # + # * lmms2 + # mupdf uses a bundled version of lcms2 [0] because Artifex have forked it [1]. + # It is therefore not appropriate for us to unbundle it at this time. + # + # [0] https://git.ghostscript.com/?p=mupdf.git;a=blob;f=Makethird;h=c4c540fa4a075df0db85e6fdaab809099881f35a;hb=HEAD#l9 + # [1] https://www.ghostscript.com/doc/lcms2mt/doc/WhyThisFork.txt + local myemakeargs=( + GENTOO_PV=${PV} + HAVE_GLUT=$(usex opengl) + HAVE_LIBCRYPTO=$(usex ssl) + HAVE_X11=$(usex X) + USE_SYSTEM_LIBS=yes + USE_SYSTEM_MUJS=$(usex javascript) + USE_SYSTEM_GLUT=no + HAVE_OBJCOPY=no + "$@" + ) + + emake "${myemakeargs[@]}" +} + +src_compile() { + tc-export PKG_CONFIG + + _emake XCFLAGS="-fPIC" +} + +src_install() { + if use opengl || use X ; then + domenu platform/debian/${PN}.desktop + doicon platform/debian/${PN}.xpm + else + rm docs/man/${PN}.1 || die "Failed to remove man page in src_install()" + fi + + sed -i \ + -e "1iprefix = ${ED}/usr" \ + -e "1ilibdir = ${ED}/usr/$(get_libdir)" \ + -e "1idocdir = ${ED}/usr/share/doc/${PF}" \ + -i Makerules || die "Failed adding liprefix, lilibdir and lidocdir to Makerules in src_install()" + + _emake install + + dosym libmupdf.so.${PV} /usr/$(get_libdir)/lib${PN}.so + + if use opengl ; then + einfo "mupdf symlink points to mupdf-gl (bug 616654)" + dosym ${PN}-gl /usr/bin/${PN} + elif use X ; then + einfo "mupdf symlink points to mupdf-x11 (bug 616654)" + dosym ${PN}-x11 /usr/bin/${PN} + fi + + # Respect libdir (bug #734898) + sed -i -e "s:/lib:/$(get_libdir):" platform/debian/${PN}.pc || die "Failed to sed pkgconfig file to respect libdir in src_install()" + + insinto /usr/$(get_libdir)/pkgconfig + doins platform/debian/${PN}.pc + + dodoc README CHANGES CONTRIBUTORS +} |