From 58bc1eef7fcc2712f4fe69e418f697d6f4d57df4 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 3 Aug 2023 10:53:03 +0100 Subject: gentoo auto-resync : 03:08:2023 - 10:53:03 --- media-libs/netpbm/Manifest | 8 +- media-libs/netpbm/files/netpbm-10.86.21-test.patch | 10 - .../netpbm/files/netpbm-10.86.22-fix-ps-test.patch | 506 --------------------- media-libs/netpbm/netpbm-10.86.36.ebuild | 243 ---------- media-libs/netpbm/netpbm-11.3.0.ebuild | 258 ----------- media-libs/netpbm/netpbm-11.3.1.ebuild | 258 +++++++++++ 6 files changed, 260 insertions(+), 1023 deletions(-) delete mode 100644 media-libs/netpbm/files/netpbm-10.86.21-test.patch delete mode 100644 media-libs/netpbm/files/netpbm-10.86.22-fix-ps-test.patch delete mode 100644 media-libs/netpbm/netpbm-10.86.36.ebuild delete mode 100644 media-libs/netpbm/netpbm-11.3.0.ebuild create mode 100644 media-libs/netpbm/netpbm-11.3.1.ebuild (limited to 'media-libs/netpbm') diff --git a/media-libs/netpbm/Manifest b/media-libs/netpbm/Manifest index 46b133bcb3bb..2ba9fa3b2066 100644 --- a/media-libs/netpbm/Manifest +++ b/media-libs/netpbm/Manifest @@ -1,14 +1,10 @@ AUX make-tarball.sh 1895 BLAKE2B d6311e862d8b2fb10d88a90263f7187c04bde49ff0ecb7860d4b306a6553b41f24ed718e94113807f7b8cdfe21774de383baf7799f2a3c3a12acea6f7aedbd4f SHA512 8128d2d8c0fb60d1d3cba73b4b3d87e914a7ac284e5f049cfd0a596f772d705acb3222da2d6a6f7d1882c7221eeaae9daac9d1b855e61881600345dc615cc428 AUX netpbm-10.86.21-build.patch 2319 BLAKE2B b22150c8683790c9ac31abc00b8f3f5b55cc6e990186f506c67496fce774fdfef1ba23843129fd493f8aa3e4ad5f74cfcf1d2388da95225ac2ef19f0c949f425 SHA512 459c54dac19067f2185a02ef812932e8fcb6a73d6267c32578bd3b7d3b12494052e929b24663407ad919e1e98aa2df58ed8e27be3f18eeb2fbe2402e4ff9e629 AUX netpbm-10.86.21-misc-deps.patch 1565 BLAKE2B a4d629ea9fe01efc45c799dac4bd3764368be33f264929bdc338bb724ace03471949467e5c84144636a9f4ee9130395dad77e23aa6686998bf9700dbde224cbf SHA512 f274ede7d11ed0f2a1825a4412a52fd9e30f5caf470c6111b606a87f1e67b16278c9f2a901d512ea3516ba033e30a3c08386cc5af1a555f868b7d7175fbfeed0 -AUX netpbm-10.86.21-test.patch 331 BLAKE2B 59451b2f1632afdd8e84bcec0ef91e0589604706b373281bf4963385fe971991711cc6ed4f169cc45aa460ac1db20de69039b137da1a2ec3d6cb82b60ae5f745 SHA512 e5c1a88cc03e227c7a7a01e9586ceacaf24a6752f4285f228b0176a8a12a6a9ac83d8ce1c5965e8f56ab652b5e42aa2cd535f1e121449fe668312b7e49720e4f -AUX netpbm-10.86.22-fix-ps-test.patch 15448 BLAKE2B cfe77600197fc39ef0be0ed793f5181db57fd718a6fed268a8afb2fd2b5afab404c3be3c89dc25d178f8fe2edc4d386e33f22f7b3bc826e9c90307ef3895830f SHA512 a521c771d2384cb86d87b4efdf05e0835adcbefb84d4e66e744b2f8bc40df5358f20c4824dce5a942ccc24b18168276278d65e8e9a529b7c09b157b3e02438bb AUX netpbm-11.0.0-misc-deps.patch 1446 BLAKE2B 721e926a83d50d04d4a407051ee077db5e5bf8fb1ae9aff1ff1d7859cf1bb0d5f74fa1143681b451d36323f93d5e7fa3876e485d6538958e30779cac081df5b8 SHA512 7135533660b15a113df5a38298725f895e8cbd6ac4695eb5f2d40bd214c43cb9d1c261063e0cea162a6ca6071cda5f4e0380d29eefa6af57e7d67ce319fe2216 AUX netpbm-11.1.0-fix-clang-O2.patch 773 BLAKE2B a8d2bef659d384b0f94560fec847d37731315f5cdb67e5474efb596672d146446c6d545caa816d74f9d4c32fe486ce49f8cb55f38e9706bae6b0ba79c0dbbb5e SHA512 0a0049415d5c252603c47325d69ae582bec76ac15f442682ef0a2ff8c5a8cd19e28543644883bde891f2a376a401f43ed923b184112f49c67d295b9215d519de -DIST netpbm-10.86.36.tar.xz 3700660 BLAKE2B c5f0acd0147f2ad66f69ae2ade56fcbb5286faddc7f8f3387e2269fd20ea2586a29d7e7dc96bd715fe12896eef47803b826031087e6be8166183ba7cf82aebf4 SHA512 b05df76760629881047c44799a905a491fb4c139a9af909d77cc4238fc82dfac37ba174df4f81cb1177716ad38a37b26eadcc3889d2c2057ff9d850697fad3c6 DIST netpbm-11.2.0.tar.xz 3777372 BLAKE2B d9a2de49db61f642df75fe1c1fcda752f837535ac7cc698fb50e7c2c93dacfe3894fc46b402af30d07e3617f0f421a36d8d6a3d846c07d6b3526724dce93283b SHA512 70bde6e6112ae595e18be588ea95d2b2acb08e42bb36d0fc93b9584c4b2adf72e35f80ff87823a8e3d98a8ffd0ff907401d351533b9170d7a11a28515c10fdbd -DIST netpbm-11.3.0.tar.xz 3778748 BLAKE2B da847e2c4a23d6fb404b868cfabfae7b82fe744c0b04b49ed0c02ef8877690f752995cb570326673f0ffd7b4b75ce8bf086859971611e9d76b49e3124536d582 SHA512 6efbfee9174912fb2979834b090657572d400fb84bf137b5faa5c4517b9d3d9457d8b482acff586902e71566e3c0a7e3bad4c87cfec15a0efda03553c1314bce -EBUILD netpbm-10.86.36.ebuild 6771 BLAKE2B 261ea89a2609e11f160fbcfb5a940963b77cfdf1820705566758a988d294635e3213ec4af3ce3ab37a74cde19ea875ac53dae8b2552f6e588dbd5e31230102cd SHA512 d9075e67b699f62852ed6e0fe747fd55b6bde0d97b7510cbdc56472ec328f5257899805defff19de56d9e3b548488e7b99ff35e170fed5080f6f15b786f43002 +DIST netpbm-11.3.1.tar.xz 3779152 BLAKE2B fa342670a72939c661290b344819cb8ba1bc5f0d09c49cbe68560077384c985a714c6808a4858e5f0eb6a8fb52be698eb075ff7892d0972f4eeb571c3ebd45ef SHA512 d43fdb7f2a91575cb17486ab9ca31d5c0757fd9756a230db9b9bfc3a786f58a2fbb4f6f0ce40d396245a8b1dd718b8aab0d80611ec23b19312bcd93c5d2548b3 EBUILD netpbm-11.2.0.ebuild 6830 BLAKE2B c07e114dd61e0aef2f08f93bd722f72fac8021bbe9d369b111084a706e64f93e76913074e74758bc37780abd13eff479e58f00b524daf1a6ba2171b57272d825 SHA512 9cc1e468d04a7e8538e4ed1964e5a34834c8b3e637c4db7c79dde6c0290500d713ed09f3d746a07f0c6bce9fbf812f5be497050d79c6360a65aaadb1e793c83e -EBUILD netpbm-11.3.0.ebuild 6840 BLAKE2B 079ef16532536ddbc0435da2c49c63eaef668a6e1f2542d8fa02acccb41272acabc760f47b06c83ca77e6044944ca00cbe753a6ba3edcf0df36869955051de30 SHA512 e4a794b998ade53ece428a675ba4f4208400385e10bf6ad3a433eb47e9e34e306a816c3c641254a08460e29cf4eefa8388f961e67c4e97e083ca64f0b6879969 +EBUILD netpbm-11.3.1.ebuild 6840 BLAKE2B 079ef16532536ddbc0435da2c49c63eaef668a6e1f2542d8fa02acccb41272acabc760f47b06c83ca77e6044944ca00cbe753a6ba3edcf0df36869955051de30 SHA512 e4a794b998ade53ece428a675ba4f4208400385e10bf6ad3a433eb47e9e34e306a816c3c641254a08460e29cf4eefa8388f961e67c4e97e083ca64f0b6879969 MISC metadata.xml 424 BLAKE2B 9ccc907d6c15cb1a7d6cfe4679d6fa9f488642948897ca34958a06b439ebcfb912cfb18fa9d93f15f19573aed4bd7083d277151c477410a59cd64b4c9c0446d4 SHA512 a987be2134a44cc916d5a026068219b8ccaa149e577eaf2a53a7802321793129777cc79b069df95ec9320f15279249a5f9d8a61509452ef02effcb6c66cf9e80 diff --git a/media-libs/netpbm/files/netpbm-10.86.21-test.patch b/media-libs/netpbm/files/netpbm-10.86.21-test.patch deleted file mode 100644 index b7758fdbd61e..000000000000 --- a/media-libs/netpbm/files/netpbm-10.86.21-test.patch +++ /dev/null @@ -1,10 +0,0 @@ -`print ("got color map\n");` removed from `editor/pnmquantall` so remove from test -Do this from the patch instead of ebuild because if upstream also fixes it the patch will fail, sed would not - ---- a/test/pnmquantall.ok -+++ b/test/pnmquantall.ok -@@ -1,4 +1,3 @@ --got color map - 2373957371 33838 - 3892560659 33838 - 1383839923 33838 diff --git a/media-libs/netpbm/files/netpbm-10.86.22-fix-ps-test.patch b/media-libs/netpbm/files/netpbm-10.86.22-fix-ps-test.patch deleted file mode 100644 index e8876120a181..000000000000 --- a/media-libs/netpbm/files/netpbm-10.86.22-fix-ps-test.patch +++ /dev/null @@ -1,506 +0,0 @@ -postscript tests fail because of pbmtolps -backport pbmtolps from netpbm-10.94.3, including tests -see also bug #670362 - ---- a/converter/pbm/pbmtolps.c -+++ b/converter/pbm/pbmtolps.c -@@ -1,181 +1,253 @@ --/* -- * pbmtolps -- convert a Portable BitMap into Postscript. The -- * output Postscript uses lines instead of the image operator to -- * generate a (device dependent) picture which will be imaged -- * much faster. -- * -- * The Postscript path length is constrained to be less that 1000 -- * points so that no limits are overrun on the Apple Laserwriter -- * and (presumably) no other printers. -- * -- * To do: -- * make sure encapsulated format is correct -- * repitition of black-white strips -- * make it more device independent (is this possible?) -- * -- * Author: -- * George Phillips -- * Department of Computer Science -- * University of British Columbia -- */ -- --#include --#include -+/*============================================================================= -+ pbmtolps -+=============================================================================== -+ -+ Convert a PBM image to Postscript. The output Postscript uses lines instead -+ of the image operator to generate a (device dependent) picture which will be -+ imaged much faster. -+ -+ The Postscript path length is constrained to be at most 1000 vertices so that -+ no limits are overrun on the Apple Laserwriter and (presumably) no other -+ printers. The typical limit is 1500. See "4.4 Path Construction" and -+ "Appendix B: Implementation Limits" in: PostScript Language Reference Manual -+ https://www.adobe.com/content/dam/acom/en/devnet/actionscript/ -+ articles/psrefman.pdf -+ -+ To do: -+ make sure encapsulated format is correct -+ repetition of black-white strips -+ make it more device independent (is this possible?) -+ -+ Author: -+ George Phillips -+ Department of Computer Science -+ University of British Columbia -+=============================================================================*/ -+#include - -+#include "pm_c_util.h" -+#include "mallocvar.h" - #include "nstring.h" -+#include "shhopt.h" - #include "pbm.h" - - --static int prev_white = -1; --static int prev_black = -1; --static char cmd = '\0'; --static int pointcount = 2; -- --#ifdef RUN --static int run = 1; --#endif -- --static char --morepoints(char cmd, int howmany_pbmtolps) { -- pointcount += 2; -- if (pointcount > 1000) { -- pointcount = 2; -- cmd += 'm' - 'a'; -- } -- return(cmd); -+static float const MAX_DPI = 5000; -+static float const MIN_DPI = 10; -+static unsigned int const MAX_PATH_VERTICES = 1000; -+ -+ -+struct CmdlineInfo { -+ /* All the information the user supplied in the command line, in a form -+ easy for the program to use. -+ */ -+ const char * inputFileName; /* File name of input file */ -+ unsigned int inputFileSpec; /* Input file name specified */ -+ float lineWidth; /* Line width, if specified */ -+ unsigned int lineWidthSpec; /* Line width specified */ -+ float dpi; /* Resolution in DPI, if specified */ -+ unsigned int dpiSpec; /* Resolution specified */ -+}; -+ -+ -+ -+static void -+validateDpi(float const dpi) { -+ -+ if (dpi > MAX_DPI || dpi < MIN_DPI) -+ pm_error("Specified DPI value out of range (%f)", dpi); - } - - - --static void --addstrip(int const white, -- int const black) { -- -- if (cmd) { --#ifdef RUN -- if (white == prev_white && black == prev_black) -- run++; -- else { -- if (run == 1) --#endif -- printf("%d %d %c ", -- prev_black, prev_white, morepoints(cmd, 2)); --#ifdef RUN -- else -- /* of course, we need to give a new command */ -- printf("%d %d %d %c ", -- prev_white, prev_black, run, -- morepoints(cmd + 'f' - 'a', 2 * run)); -- run = 1; -- } --#endif -+static void -+parseCommandLine(int argc, -+ const char ** const argv, -+ struct CmdlineInfo * const cmdlineP) { -+/*---------------------------------------------------------------------------- -+ Parse program command line described in Unix standard form by argc -+ and argv. Return the information in the options as *cmdlineP. -+-----------------------------------------------------------------------------*/ -+ optEntry * option_def; /* malloc'ed */ -+ /* Instructions to OptParseOptions3 on how to parse our options. */ -+ optStruct3 opt; -+ -+ unsigned int option_def_index; -+ -+ MALLOCARRAY_NOFAIL(option_def, 100); -+ -+ option_def_index = 0; /* incremented by OPTENTRY */ -+ OPTENT3(0, "linewidth", OPT_FLOAT, &cmdlineP->lineWidth, -+ &cmdlineP->lineWidthSpec, 0); -+ OPTENT3(0, "dpi", OPT_FLOAT, &cmdlineP->dpi, -+ &cmdlineP->dpiSpec, 0); -+ -+ opt.opt_table = option_def; -+ opt.short_allowed = FALSE; /* We have no short (old-fashioned) options */ -+ opt.allowNegNum = FALSE; /* We have no parms that are negative numbers */ -+ -+ pm_optParseOptions3(&argc, (char **)argv, opt, sizeof(opt), 0); -+ /* Uses and sets argc, argv, and some of *cmdlineP and others. */ -+ -+ if (cmdlineP->dpiSpec) -+ validateDpi(cmdlineP->dpi); -+ else -+ cmdlineP->dpi = 300; -+ -+ if (argc-1 < 1) -+ cmdlineP->inputFileName = "-"; -+ else { -+ if (argc-1 > 1) -+ pm_error("Program takes zero or one argument (filename). You " -+ "specified %u", argc-1); -+ else -+ cmdlineP->inputFileName = argv[1]; - } - -- prev_white = white; -- prev_black = black; -- cmd = 'a'; -+ if (cmdlineP->inputFileName[0] == '-' && -+ cmdlineP->inputFileName[1] == '\0') -+ cmdlineP->inputFileSpec = false; -+ else -+ cmdlineP->inputFileSpec = true; -+ -+ free(option_def); - } - - - --static void --nextline(void) { -- /* need to check run, should have an outcommand */ -- if (cmd) -- printf("%d %d %c\n", prev_black, prev_white, morepoints('c', 3)); -- else -- printf("%c\n", morepoints('b', 1)); -- cmd = '\0'; -+static void -+validateLineWidth(float const scCols, -+ float const scRows, -+ float const lineWidth) { -+ -+ if (lineWidth >= scCols || lineWidth >= scRows) -+ pm_error("Absurdly large -linewidth value (%f)", lineWidth); - } - - - --int --main(int argc, char ** argv) { -- FILE* fp; -- bit* bits; -- int row; -- int col; -- int rows; -- int cols; -- int format; -- int white; -- int black; -- const char* name; -- float dpi = 300.0; -- float sc_rows; -- float sc_cols; -- int i; -- const char* const usage = "[ -dpi n ] [ pbmfile ]"; -- -- -- pbm_init(&argc, argv); -- -- i = 1; -- if (i < argc && streq(argv[i], "-dpi")) { -- if (i == argc - 1) -- pm_usage(usage); -- sscanf(argv[i + 1], "%f", &dpi); -- i += 2; -- } -+static void -+doRaster(FILE * const ifP, -+ unsigned int const cols, -+ unsigned int const rows, -+ int const format, -+ FILE * const ofP) { - -- if (i < argc - 1) -- pm_usage(usage); -+ bit * bitrow; -+ unsigned int row; -+ unsigned int vertexCt; -+ /* Number of vertices drawn since last stroke command */ - -- if (i == argc) { -- name = "noname"; -- fp = stdin; -- } else { -- name = argv[i]; -- fp = pm_openr(name); -- } -- pbm_readpbminit(fp, &cols, &rows, &format); -- bits = pbm_allocrow(cols); -+ bitrow = pbm_allocrow(cols); -+ -+ for (row = 0, vertexCt = 0; row < rows; ++row) { -+ unsigned int col; -+ bool firstRun; - -- sc_rows = (float)rows / dpi * 72.0; -- sc_cols = (float)cols / dpi * 72.0; -+ firstRun = true; /* initial value */ -+ -+ pbm_readpbmrow(ifP, bitrow, cols, format); -+ -+ /* output white-strip + black-strip sequences */ - -- puts("%!PS-Adobe-2.0 EPSF-2.0"); -- puts("%%Creator: pbmtolps"); -- printf("%%%%Title: %s\n", name); -- printf("%%%%BoundingBox: %d %d %d %d\n", -- (int)(305.5 - sc_cols / 2.0), -- (int)(395.5 - sc_rows / 2.0), -- (int)(306.5 + sc_cols / 2.0), -- (int)(396.5 + sc_rows / 2.0)); -- puts("%%EndComments"); -- puts("%%EndProlog"); -- puts("gsave"); -- -- printf("%f %f translate\n", 306.0 - sc_cols / 2.0, 396.0 + sc_rows / 2.0); -- printf("72 %f div dup neg scale\n", dpi); -- puts("/a { 0 rmoveto 0 rlineto } def"); -- puts("/b { 0 row 1 add dup /row exch def moveto } def"); -- puts("/c { a b } def"); -- puts("/m { currentpoint stroke newpath moveto a } def"); -- puts("/n { currentpoint stroke newpath moveto b } def"); -- puts("/o { currentpoint stroke newpath moveto c } def"); -- puts("/row 0 def"); -- puts("newpath 0 0 moveto"); -- -- for (row = 0; row < rows; row++) { -- pbm_readpbmrow(fp, bits, cols, format); -- /* output white-strip+black-strip sequences */ - for (col = 0; col < cols; ) { -- for (white = 0; col < cols && bits[col] == PBM_WHITE; col++) -- white++; -- for (black = 0; col < cols && bits[col] == PBM_BLACK; col++) -- black++; -+ unsigned int whiteCt; -+ unsigned int blackCt; -+ -+ for (whiteCt = 0; col < cols && bitrow[col] == PBM_WHITE; ++col) -+ ++whiteCt; -+ for (blackCt = 0; col < cols && bitrow[col] == PBM_BLACK; ++col) -+ ++blackCt; -+ -+ if (blackCt > 0) { -+ if (vertexCt > MAX_PATH_VERTICES) { -+ printf("m "); -+ vertexCt = 0; -+ } -+ -+ if (firstRun) { -+ printf("%u %u moveto %u 0 rlineto\n", -+ whiteCt, row, blackCt); -+ firstRun = false; -+ } else -+ printf("%u %u a\n", blackCt, whiteCt); - -- if (black != 0) -- addstrip(white, black); -+ vertexCt += 2; -+ } - } -- nextline(); - } -- puts("stroke grestore showpage"); -- puts("%%Trailer"); -+ pbm_freerow(bitrow); -+} -+ -+ -+ -+static void -+pbmtolps(FILE * const ifP, -+ FILE * const ofP, -+ struct CmdlineInfo const cmdline) { -+ -+ const char * const psName = -+ cmdline.inputFileSpec ? cmdline.inputFileName : "noname"; -+ -+ int rows; -+ int cols; -+ int format; -+ float scRows, scCols; -+ /* Dimensions of the printed image in points */ -+ -+ pbm_readpbminit(ifP, &cols, &rows, &format); -+ -+ scRows = (float) rows / (cmdline.dpi / 72.0); -+ scCols = (float) cols / (cmdline.dpi / 72.0); -+ -+ if (cmdline.lineWidthSpec) -+ validateLineWidth(scCols, scRows, cmdline.lineWidth); -+ -+ fputs("%!PS-Adobe-2.0 EPSF-2.0\n", ofP); -+ fputs("%%Creator: pbmtolps\n", ofP); -+ fprintf(ofP, "%%%%Title: %s\n", psName); -+ fprintf(ofP, "%%%%BoundingBox: %d %d %d %d\n", -+ (int)(305.5 - scCols / 2.0), -+ (int)(395.5 - scRows / 2.0), -+ (int)(306.5 + scCols / 2.0), -+ (int)(396.5 + scRows / 2.0)); -+ fputs("%%EndComments\n", ofP); -+ fputs("%%EndProlog\n", ofP); -+ fputs("gsave\n", ofP); -+ -+ fprintf(ofP, "%f %f translate\n", -+ 306.0 - scCols / 2.0, 396.0 + scRows / 2.0); -+ fprintf(ofP, "72 %f div dup neg scale\n", cmdline.dpi); -+ -+ if (cmdline.lineWidthSpec) -+ fprintf(ofP, "%f setlinewidth\n", cmdline.lineWidth); -+ -+ fputs("/a { 0 rmoveto 0 rlineto } def\n", ofP); -+ fputs("/m { currentpoint stroke newpath moveto } def\n", ofP); -+ fputs("newpath 0 0 moveto\n", ofP); -+ -+ doRaster(ifP, cols, rows, format, ofP); -+ -+ fputs("stroke grestore showpage\n", ofP); -+ fputs("%%Trailer\n", ofP); -+} -+ -+ -+ -+int -+main(int argc, const char *argv[]) { -+ FILE * ifP; -+ struct CmdlineInfo cmdline; -+ -+ pm_proginit(&argc, argv); -+ -+ parseCommandLine(argc, argv, &cmdline); -+ -+ ifP = pm_openr(cmdline.inputFileName); -+ -+ pbmtolps(ifP, stdout, cmdline); - -- pm_close(fp); -+ pm_close(ifP); - -- exit(0); -+ return 0; - } ---- a/test/lps-roundtrip.ok -+++ b/test/lps-roundtrip.ok -@@ -0,0 +1 @@ -+match ---- a/test/lps-roundtrip.test -+++ b/test/lps-roundtrip.test -@@ -0,0 +1,22 @@ -+#! /bin/bash -+# This script tests: pbmtolps pstopnm -+# Also requires: gs pamdepth pamscale pnmcrop pnmpsnr -+ -+# The ordinary round-trip does not work because of the way ghostscript -+# renders: a line is considered wider than a single pixel and all pixels -+# it touches are set to black if the output is PBM. To work around this, -+# we tell pstopnm to output PGM at a high resolution (=large dpi value). -+ -+ -+test_pgm=${tmpdir}/testgrid.pgm -+ -+pamdepth 255 testgrid.pbm > ${test_pgm} -+ -+pbmtolps -dpi 72 testgrid.pbm | \ -+ pstopnm -dpi $((72*12)) -stdout -pgm | \ -+ pnmcrop -white | pamscale -xsize=14 -ysize=16 | \ -+ pnmpsnr -target=30 - ${test_pgm} -+ -+# ghostscript version 8.71: pnmpsnr lumina 33.14dB -+ -+rm ${test_pgm} ---- a/test/ps-alt-roundtrip.ok -+++ b/test/ps-alt-roundtrip.ok -@@ -1,3 +1,2 @@ - 2425386270 41 --2425386270 41 - 2916080186 235 ---- a/test/ps-alt-roundtrip.test -+++ b/test/ps-alt-roundtrip.test -@@ -1,21 +1,24 @@ - #! /bin/bash --# This script tests: pbmtoepsi pbmtopsg3 pbmtolps psidtopgm pstopnm -+# This script tests: pbmtoepsi pbmtopsg3 psidtopgm pstopnm - # Also requires: gs pnmcrop - - - # This script is for testing alternative (or minor) utilities that - # read/write Postscript and encapsulated Postscript: --# pbmtoepsi, pbmtopsg3, pbmtolps and psidtopgm. -+# pbmtoepsi, pbmtopsg3 and psidtopgm. - # - # We keep these tests separate from those for pnmtops and pstopnm - # which are far more popular. - # --# pbmtopsg3 and pbmtolps produce output that require pstopnm for decoding. -+# pbmtopsg3 produces output that requires pstopnm for decoding. -+# -+# We used to test pbmtolps here, but moved it out when gs changed its -+# rendering formula. - # - # Failure message - ## If ps-roundtrip.test succeeds and this test fails, it is most likely - ## a problem with one of the alternate Postscipt utilities: --## pbmtoepsi, pbmtopsg3, pbmtolps or psidtopgm. -+## pbmtoepsi, pbmtopsg3, or psidtopgm. - ## If both tests fail it indicates a problem with pstopnm or gs. - - # pstopnm does not use libnetpbm functions for output. -@@ -33,18 +36,8 @@ - rm ${testgrid1_ps} - - --# Test 2. Should print: 2425386270 41 --testgrid2_ps=${tmpdir}/testgrid2.ps -- --pbmtolps -dpi 72 testgrid.pbm \ -- > ${testgrid2_ps} && \ --pstopnm -xborder=0 -yborder=0 -dpi=72 -stdout \ -- -quiet ${testgrid2_ps} -pbm | \ -- pnmcrop | cksum -- --rm ${testgrid2_ps} - --# Test 3. Should print: 2916080186 235 -+# Test 2. Should print: 2916080186 235 - # Output is pgm maxval=1 with black and white inverted. - # - testgrid_epsi=${tmpdir}/testgrid.epsi ---- a/test/Test-Order -+++ b/test/Test-Order -@@ -183,5 +183,6 @@ - - fiasco-roundtrip.test - jpeg-roundtrip.test -+lps-roundtrip.test - tiffcmyk-roundtrip.test - yuv-roundtrip.test diff --git a/media-libs/netpbm/netpbm-10.86.36.ebuild b/media-libs/netpbm/netpbm-10.86.36.ebuild deleted file mode 100644 index 1cf3b450fbef..000000000000 --- a/media-libs/netpbm/netpbm-10.86.36.ebuild +++ /dev/null @@ -1,243 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic multilib toolchain-funcs - -# Upstream has 3 flavors of netpbm: super stable, stable and advanced. -# They only provide a tarball for super stable, but super stable is a bit lagging. -# So we package the stable branch of their svn (currently versions 10.86.xx) on SLOT "0/stable" -# and the advanced branch of their svn (currently versions 11.aa.bb) on SLOT "0/advanced". -# The stable branch is stabilized according to usual Gentoo rules, while the -# advanced branch will not be stabilized. -# A detailed explanation is here https://netpbm.sourceforge.net/release.html - -# libnetpbm.so is not 100% ABI compatible between stable and advanced, so -# packages that depend on it should use "media-libs/netpbm:=" - -DESCRIPTION="A set of utilities for converting to/from the netpbm (and related) formats" -HOMEPAGE="https://netpbm.sourceforge.net/" -SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${P}.tar.xz" - -LICENSE="Artistic BSD GPL-2 IJG LGPL-2.1 MIT public-domain" -SLOT="0/stable" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" -IUSE="jbig jpeg png postscript rle cpu_flags_x86_sse2 static-libs svga tiff X xml" - -# app-text/ghostscript-gpl is really needed for postscript -# some utilities execute /usr/bin/gs -# also some installed programs are perl scripts -RDEPEND=" - dev-lang/perl - jbig? ( media-libs/jbigkit:= ) - jpeg? ( media-libs/libjpeg-turbo:=[static-libs?] ) - png? ( - >=media-libs/libpng-1.4:0= - sys-libs/zlib - ) - postscript? ( - app-text/ghostscript-gpl - sys-libs/zlib - ) - rle? ( media-libs/urt:= ) - svga? ( media-libs/svgalib ) - tiff? ( >=media-libs/tiff-3.5.5:= ) - xml? ( dev-libs/libxml2 ) - X? ( x11-libs/libX11 ) -" - -DEPEND=" - ${RDEPEND} - x11-base/xorg-proto -" - -BDEPEND=" - app-arch/xz-utils - sys-devel/flex - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/netpbm-10.86.21-build.patch - "${FILESDIR}"/netpbm-10.86.21-test.patch #450530 - "${FILESDIR}"/netpbm-10.86.21-misc-deps.patch - "${FILESDIR}"/netpbm-10.86.22-fix-ps-test.patch #670362 -) - -netpbm_libtype() { - case ${CHOST} in - *-darwin*) echo dylib;; - *) echo unixshared;; - esac -} - -netpbm_libsuffix() { - local suffix=$(get_libname) - echo ${suffix//\.} -} - -netpbm_ldshlib() { - case ${CHOST} in - *-darwin*) echo '$(LDFLAGS) -dynamiclib -install_name $(SONAME)';; - *) echo '$(LDFLAGS) -shared -Wl,-soname,$(SONAME)';; - esac -} - -netpbm_config_lib() { - usex ${1} -l${2:-$1} NONE -} - -# for bug #828127 -netpbm_cflags_for_build() { - if is-flagq -fPIC; then - echo -fPIC - fi -} - -src_prepare() { - default - - # make sure we use system libs - sed -i '/SUPPORT_SUBDIRS/s:urt::' GNUmakefile || die - rm -r urt converter/other/jbig/libjbig converter/other/jpeg2000/libjasper || die - - # take care of the importinc stuff ourselves by only doing it once - # at the top level and having all subdirs use that one set #149843 - sed -i \ - -e '/^importinc:/s|^|importinc:\nmanual_|' \ - -e '/-Iimportinc/s|-Iimp|-I"$(BUILDDIR)"/imp|g'\ - common.mk || die - sed -i \ - -e '/%.c/s: importinc$::' \ - common.mk lib/Makefile lib/util/Makefile || die - sed -i \ - -e 's:pkg-config:$(PKG_CONFIG):' \ - GNUmakefile converter/other/Makefile other/pamx/Makefile || die - - # The postscript knob is currently bound up with a fork test. - if ! use postscript ; then - sed -i \ - -e 's:$(DONT_HAVE_PROCESS_MGMT):Y:' \ - converter/other/Makefile generator/Makefile || die - sed -i -r \ - -e 's:(pbmtextps|pnmtops|pstopnm).*::' \ - test/all-in-place.{ok,test} || die - sed -i -e 's:lps-roundtrip.*::' test/Test-Order || die - sed -i -e '/^$/d' test/all-in-place.ok || die - sed -i '2iexit 80' test/ps-{alt-,flate-,}roundtrip.test || die - fi - - # the new postscript test needs +x - chmod +x test/lps-roundtrip.test - - # Do not test png if not built - if ! use png ; then - sed -i -r \ - -e 's:(pamtopng|pngtopam|pnmtopng).*::' \ - test/all-in-place.{ok,test} || die - sed -i -e '/^$/d' test/all-in-place.ok || die - - sed -i -r \ - -e 's:(pamrgbatopng|pngtopnm).*::' \ - test/legacy-names.{ok,test} || die - sed -i -e '/^$/d' test/legacy-names.ok || die - sed -i -e 's:png-roundtrip.*::' test/Test-Order || die - fi - - # this test requires LC_ALL=en_US.iso88591, not available on musl - if use elibc_musl; then - sed -i -e 's:pbmtext-iso88591.*::' test/Test-Order || die - fi -} - -src_configure() { - cat config.mk.in - >> config.mk <<-EOF || die "writing config.mk failed" - # Misc stuff - BUILD_FIASCO = N - SYMLINK = ln -sf - - # These vars let src_test work by default - PKGDIR_DEFAULT = ${T}/netpbm - RESULTDIR_DEFAULT = ${T}/netpbm-test - - # Toolchain options - CC = $(tc-getCC) -Wall - LD = \$(CC) - CC_FOR_BUILD = $(tc-getBUILD_CC) - LD_FOR_BUILD = \$(CC_FOR_BUILD) - AR = $(tc-getAR) - RANLIB = $(tc-getRANLIB) - PKG_CONFIG = $(tc-getPKG_CONFIG) - - STRIPFLAG = - CFLAGS_SHLIB = -fPIC - CFLAGS_FOR_BUILD += $(netpbm_cflags_for_build) - - LDRELOC = \$(LD) -r - LDSHLIB = $(netpbm_ldshlib) - LINKER_CAN_DO_EXPLICIT_LIBRARY = N # we can, but dont want to - LINKERISCOMPILER = Y - NETPBMLIBSUFFIX = $(netpbm_libsuffix) - NETPBMLIBTYPE = $(netpbm_libtype) - STATICLIB_TOO = $(usex static-libs Y N) - - # The var is called SSE, but the code is actually SSE2. - WANT_SSE = $(usex cpu_flags_x86_sse2 Y N) - - # Gentoo build options - TIFFLIB = $(netpbm_config_lib tiff) - # Let tiff worry about its own dependencies #395753 - TIFFLIB_NEEDS_JPEG = N - TIFFLIB_NEEDS_Z = N - JPEGLIB = $(netpbm_config_lib jpeg) - PNGLIB = $(netpbm_config_lib png) - ZLIB = $($(tc-getPKG_CONFIG) --libs zlib) - LINUXSVGALIB = $(netpbm_config_lib svga vga) - XML2_LIBS = $(netpbm_config_lib xml xml2) - JBIGLIB = $(netpbm_config_lib jbig) - JBIGHDR_DIR = - JASPERLIB = NONE - JASPERHDR_DIR = - URTLIB = $(netpbm_config_lib rle) - URTHDR_DIR = - X11LIB = $(netpbm_config_lib X X11) - X11HDR_DIR = - EOF -} - -src_compile() { - emake -j1 pm_config.h version.h manual_importinc #149843 - emake -} - -src_test() { - # The code wants to install everything first and then test the result. - emake install.{bin,lib,data} - emake check -} - -src_install() { - # Subdir make targets like to use `mkdir` all over the place - # without any actual dependencies, thus the -j1. - emake -j1 package pkgdir="${ED}"/usr - - if [[ $(get_libdir) != "lib" ]] ; then - mv "${ED}"/usr/lib "${ED}"/usr/$(get_libdir) || die - fi - - # Remove cruft that we don't need, and move around stuff we want - rm "${ED}"/usr/{README,VERSION,{pkgconfig,config}_template,pkginfo} || die - - dodir /usr/share - mv "${ED}"/usr/misc "${ED}"/usr/share/netpbm || die - - doman userguide/*.[0-9] - dodoc README - - cd doc || die - dodoc HISTORY Netpbm.programming USERDOC - docinto html - dodoc -r *.html - dodoc -r ../userguide/*.html -} diff --git a/media-libs/netpbm/netpbm-11.3.0.ebuild b/media-libs/netpbm/netpbm-11.3.0.ebuild deleted file mode 100644 index 886d2f5cab79..000000000000 --- a/media-libs/netpbm/netpbm-11.3.0.ebuild +++ /dev/null @@ -1,258 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic multilib toolchain-funcs - -# Upstream has 3 flavors of netpbm: super stable, stable and advanced. -# They only provide a tarball for super stable, but super stable is a bit lagging. -# So we package the stable branch of their svn (currently versions 11.2.xx) on SLOT "0/stable[.rev]" -# and the advanced branch of their svn (currently versions 11.3.yy) on SLOT "0/advanced[.rev]". -# The stable branch is stabilized according to usual Gentoo rules, while the -# advanced branch will not be stabilized. -# A detailed explanation is here https://netpbm.sourceforge.net/release.html - -DESCRIPTION="A set of utilities for converting to/from the netpbm (and related) formats" -HOMEPAGE="https://netpbm.sourceforge.net/" -SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${P}.tar.xz" - -LICENSE="Artistic BSD GPL-2 IJG LGPL-2.1 MIT public-domain" -SLOT="0/advanced.103" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" -IUSE="jbig jpeg png postscript rle cpu_flags_x86_sse2 static-libs svga tiff X xml" - -# app-text/ghostscript-gpl is really needed for postscript -# some utilities execute /usr/bin/gs -# some installed programs are perl scripts -RDEPEND=" - dev-lang/perl - jbig? ( media-libs/jbigkit:= ) - jpeg? ( media-libs/libjpeg-turbo:=[static-libs?] ) - png? ( - >=media-libs/libpng-1.4:0= - sys-libs/zlib - ) - postscript? ( - app-text/ghostscript-gpl - sys-libs/zlib - ) - rle? ( media-libs/urt:= ) - svga? ( media-libs/svgalib ) - tiff? ( >=media-libs/tiff-3.5.5:= ) - xml? ( dev-libs/libxml2 ) - X? ( x11-libs/libX11 ) -" -DEPEND=" - ${RDEPEND} - x11-base/xorg-proto -" -BDEPEND=" - app-arch/xz-utils - sys-devel/flex - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/netpbm-10.86.21-build.patch - "${FILESDIR}"/netpbm-11.0.0-misc-deps.patch - "${FILESDIR}"/netpbm-11.1.0-fix-clang-O2.patch -) - -netpbm_libtype() { - case ${CHOST} in - *-darwin*) echo dylib;; - *) echo unixshared;; - esac -} - -netpbm_libsuffix() { - local suffix=$(get_libname) - echo ${suffix//\.} -} - -netpbm_ldshlib() { - case ${CHOST} in - *-darwin*) echo '$(LDFLAGS) -dynamiclib -install_name $(SONAME)';; - *) echo '$(LDFLAGS) -shared -Wl,-soname,$(SONAME)';; - esac -} - -netpbm_config_lib() { - usex ${1} -l${2:-$1} NONE -} - -# for bug #828127 -netpbm_cflags_for_build() { - if is-flagq -fPIC; then - echo -fPIC - fi -} - -src_prepare() { - default - - # make sure we use system libs - sed -i '/SUPPORT_SUBDIRS/s:urt::' GNUmakefile || die - rm -r urt converter/other/jbig/libjbig converter/other/jpeg2000/libjasper || die - - # fix typo in a test - sed -i \ - -e 's:^o#! /bin/sh:#! /bin/sh:' \ - test/stdin-ppm3.test || die - - # take care of the importinc stuff ourselves by only doing it once - # at the top level and having all subdirs use that one set #149843 - sed -i \ - -e '/^importinc:/s|^|importinc:\nmanual_|' \ - -e '/-Iimportinc/s|-Iimp|-I"$(BUILDDIR)"/imp|g'\ - common.mk || die - sed -i \ - -e '/%.c/s: importinc$::' \ - common.mk lib/Makefile lib/util/Makefile || die - sed -i \ - -e 's:pkg-config:$(PKG_CONFIG):' \ - GNUmakefile converter/other/Makefile other/pamx/Makefile || die - - # The postscript knob is currently bound up with a fork test. - if ! use postscript ; then - sed -i \ - -e 's:$(DONT_HAVE_PROCESS_MGMT):Y:' \ - converter/other/Makefile generator/Makefile || die - sed -i -r \ - -e 's:(pbmtextps|pnmtops|pstopnm).*::' \ - test/all-in-place.{ok,test} || die - sed -i \ - -e 's:lps-roundtrip.*::' \ - -e 's:pbmtextps-dump.*::' \ - -e 's:pbmtextps.*::' \ - test/Test-Order || die - sed -i \ - -e '/^$/d' \ - test/all-in-place.ok || die - sed -i \ - '2iexit 80' \ - test/ps-{alt-,flate-,}roundtrip.test || die - fi - - # the new postscript test needs +x - chmod +x test/lps-roundtrip.test || die - - # Do not test png if not built - if ! use png ; then - sed -i -E \ - -e 's:(pamtopng|pngtopam|pnmtopng).*::' \ - test/all-in-place.{ok,test} || die - sed -i \ - -e '/^$/d' \ - test/all-in-place.ok || die - - sed -i -E \ - -e 's:(pamrgbatopng|pngtopnm).*::' \ - test/legacy-names.{ok,test} || die - sed -i \ - -e '/^$/d' \ - test/legacy-names.ok || die - sed -i \ - -e 's:png-roundtrip.*::' \ - -e 's:winicon-roundtrip.*::' \ - test/Test-Order || die - fi - - # this test requires LC_ALL=en_US.iso88591, not available on musl - if use elibc_musl; then - sed -i \ - -e 's:pbmtext-iso88591.*::' \ - test/Test-Order || die - fi -} - -src_configure() { - cat config.mk.in - >> config.mk <<-EOF || die "writing config.mk failed" - # Misc stuff - BUILD_FIASCO = N - SYMLINK = ln -sf - - # These vars let src_test work by default - PKGDIR_DEFAULT = ${T}/netpbm - RESULTDIR_DEFAULT = ${T}/netpbm-test - - # Toolchain options - CC = $(tc-getCC) -Wall - LD = \$(CC) - CC_FOR_BUILD = $(tc-getBUILD_CC) - LD_FOR_BUILD = \$(CC_FOR_BUILD) - AR = $(tc-getAR) - RANLIB = $(tc-getRANLIB) - PKG_CONFIG = $(tc-getPKG_CONFIG) - - STRIPFLAG = - CFLAGS_SHLIB = -fPIC - CFLAGS_FOR_BUILD += $(netpbm_cflags_for_build) - - LDRELOC = \$(LD) -r - LDSHLIB = $(netpbm_ldshlib) - LINKER_CAN_DO_EXPLICIT_LIBRARY = N # we can, but dont want to - LINKERISCOMPILER = Y - NETPBMLIBSUFFIX = $(netpbm_libsuffix) - NETPBMLIBTYPE = $(netpbm_libtype) - STATICLIB_TOO = $(usex static-libs Y N) - - # The var is called SSE, but the code is actually SSE2. - WANT_SSE = $(usex cpu_flags_x86_sse2 Y N) - - # Gentoo build options - TIFFLIB = $(netpbm_config_lib tiff) - # Let tiff worry about its own dependencies #395753 - TIFFLIB_NEEDS_JPEG = N - TIFFLIB_NEEDS_Z = N - JPEGLIB = $(netpbm_config_lib jpeg) - PNGLIB = $(netpbm_config_lib png) - ZLIB = $($(tc-getPKG_CONFIG) --libs zlib) - LINUXSVGALIB = $(netpbm_config_lib svga vga) - XML2_LIBS = $(netpbm_config_lib xml xml2) - JBIGLIB = $(netpbm_config_lib jbig) - JBIGHDR_DIR = - JASPERLIB = NONE - JASPERHDR_DIR = - URTLIB = $(netpbm_config_lib rle) - URTHDR_DIR = - X11LIB = $(netpbm_config_lib X X11) - X11HDR_DIR = - EOF -} - -src_compile() { - emake -j1 pm_config.h version.h manual_importinc #149843 - emake -} - -src_test() { - # The code wants to install everything first and then test the result. - emake install.{bin,lib,data} - emake check -} - -src_install() { - # Subdir make targets like to use `mkdir` all over the place - # without any actual dependencies, thus the -j1. - emake -j1 package pkgdir="${ED}"/usr - - if [[ $(get_libdir) != "lib" ]] ; then - mv "${ED}"/usr/lib "${ED}"/usr/$(get_libdir) || die - fi - - # Remove cruft that we don't need, and move around stuff we want - rm "${ED}"/usr/{README,VERSION,{pkgconfig,config}_template,pkginfo} || die - - dodir /usr/share - mv "${ED}"/usr/misc "${ED}"/usr/share/netpbm || die - - doman userguide/*.[0-9] - dodoc README - - cd doc || die - dodoc HISTORY Netpbm.programming USERDOC - docinto html - dodoc -r ../userguide/*.html -} diff --git a/media-libs/netpbm/netpbm-11.3.1.ebuild b/media-libs/netpbm/netpbm-11.3.1.ebuild new file mode 100644 index 000000000000..886d2f5cab79 --- /dev/null +++ b/media-libs/netpbm/netpbm-11.3.1.ebuild @@ -0,0 +1,258 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic multilib toolchain-funcs + +# Upstream has 3 flavors of netpbm: super stable, stable and advanced. +# They only provide a tarball for super stable, but super stable is a bit lagging. +# So we package the stable branch of their svn (currently versions 11.2.xx) on SLOT "0/stable[.rev]" +# and the advanced branch of their svn (currently versions 11.3.yy) on SLOT "0/advanced[.rev]". +# The stable branch is stabilized according to usual Gentoo rules, while the +# advanced branch will not be stabilized. +# A detailed explanation is here https://netpbm.sourceforge.net/release.html + +DESCRIPTION="A set of utilities for converting to/from the netpbm (and related) formats" +HOMEPAGE="https://netpbm.sourceforge.net/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${P}.tar.xz" + +LICENSE="Artistic BSD GPL-2 IJG LGPL-2.1 MIT public-domain" +SLOT="0/advanced.103" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="jbig jpeg png postscript rle cpu_flags_x86_sse2 static-libs svga tiff X xml" + +# app-text/ghostscript-gpl is really needed for postscript +# some utilities execute /usr/bin/gs +# some installed programs are perl scripts +RDEPEND=" + dev-lang/perl + jbig? ( media-libs/jbigkit:= ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs?] ) + png? ( + >=media-libs/libpng-1.4:0= + sys-libs/zlib + ) + postscript? ( + app-text/ghostscript-gpl + sys-libs/zlib + ) + rle? ( media-libs/urt:= ) + svga? ( media-libs/svgalib ) + tiff? ( >=media-libs/tiff-3.5.5:= ) + xml? ( dev-libs/libxml2 ) + X? ( x11-libs/libX11 ) +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +BDEPEND=" + app-arch/xz-utils + sys-devel/flex + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/netpbm-10.86.21-build.patch + "${FILESDIR}"/netpbm-11.0.0-misc-deps.patch + "${FILESDIR}"/netpbm-11.1.0-fix-clang-O2.patch +) + +netpbm_libtype() { + case ${CHOST} in + *-darwin*) echo dylib;; + *) echo unixshared;; + esac +} + +netpbm_libsuffix() { + local suffix=$(get_libname) + echo ${suffix//\.} +} + +netpbm_ldshlib() { + case ${CHOST} in + *-darwin*) echo '$(LDFLAGS) -dynamiclib -install_name $(SONAME)';; + *) echo '$(LDFLAGS) -shared -Wl,-soname,$(SONAME)';; + esac +} + +netpbm_config_lib() { + usex ${1} -l${2:-$1} NONE +} + +# for bug #828127 +netpbm_cflags_for_build() { + if is-flagq -fPIC; then + echo -fPIC + fi +} + +src_prepare() { + default + + # make sure we use system libs + sed -i '/SUPPORT_SUBDIRS/s:urt::' GNUmakefile || die + rm -r urt converter/other/jbig/libjbig converter/other/jpeg2000/libjasper || die + + # fix typo in a test + sed -i \ + -e 's:^o#! /bin/sh:#! /bin/sh:' \ + test/stdin-ppm3.test || die + + # take care of the importinc stuff ourselves by only doing it once + # at the top level and having all subdirs use that one set #149843 + sed -i \ + -e '/^importinc:/s|^|importinc:\nmanual_|' \ + -e '/-Iimportinc/s|-Iimp|-I"$(BUILDDIR)"/imp|g'\ + common.mk || die + sed -i \ + -e '/%.c/s: importinc$::' \ + common.mk lib/Makefile lib/util/Makefile || die + sed -i \ + -e 's:pkg-config:$(PKG_CONFIG):' \ + GNUmakefile converter/other/Makefile other/pamx/Makefile || die + + # The postscript knob is currently bound up with a fork test. + if ! use postscript ; then + sed -i \ + -e 's:$(DONT_HAVE_PROCESS_MGMT):Y:' \ + converter/other/Makefile generator/Makefile || die + sed -i -r \ + -e 's:(pbmtextps|pnmtops|pstopnm).*::' \ + test/all-in-place.{ok,test} || die + sed -i \ + -e 's:lps-roundtrip.*::' \ + -e 's:pbmtextps-dump.*::' \ + -e 's:pbmtextps.*::' \ + test/Test-Order || die + sed -i \ + -e '/^$/d' \ + test/all-in-place.ok || die + sed -i \ + '2iexit 80' \ + test/ps-{alt-,flate-,}roundtrip.test || die + fi + + # the new postscript test needs +x + chmod +x test/lps-roundtrip.test || die + + # Do not test png if not built + if ! use png ; then + sed -i -E \ + -e 's:(pamtopng|pngtopam|pnmtopng).*::' \ + test/all-in-place.{ok,test} || die + sed -i \ + -e '/^$/d' \ + test/all-in-place.ok || die + + sed -i -E \ + -e 's:(pamrgbatopng|pngtopnm).*::' \ + test/legacy-names.{ok,test} || die + sed -i \ + -e '/^$/d' \ + test/legacy-names.ok || die + sed -i \ + -e 's:png-roundtrip.*::' \ + -e 's:winicon-roundtrip.*::' \ + test/Test-Order || die + fi + + # this test requires LC_ALL=en_US.iso88591, not available on musl + if use elibc_musl; then + sed -i \ + -e 's:pbmtext-iso88591.*::' \ + test/Test-Order || die + fi +} + +src_configure() { + cat config.mk.in - >> config.mk <<-EOF || die "writing config.mk failed" + # Misc stuff + BUILD_FIASCO = N + SYMLINK = ln -sf + + # These vars let src_test work by default + PKGDIR_DEFAULT = ${T}/netpbm + RESULTDIR_DEFAULT = ${T}/netpbm-test + + # Toolchain options + CC = $(tc-getCC) -Wall + LD = \$(CC) + CC_FOR_BUILD = $(tc-getBUILD_CC) + LD_FOR_BUILD = \$(CC_FOR_BUILD) + AR = $(tc-getAR) + RANLIB = $(tc-getRANLIB) + PKG_CONFIG = $(tc-getPKG_CONFIG) + + STRIPFLAG = + CFLAGS_SHLIB = -fPIC + CFLAGS_FOR_BUILD += $(netpbm_cflags_for_build) + + LDRELOC = \$(LD) -r + LDSHLIB = $(netpbm_ldshlib) + LINKER_CAN_DO_EXPLICIT_LIBRARY = N # we can, but dont want to + LINKERISCOMPILER = Y + NETPBMLIBSUFFIX = $(netpbm_libsuffix) + NETPBMLIBTYPE = $(netpbm_libtype) + STATICLIB_TOO = $(usex static-libs Y N) + + # The var is called SSE, but the code is actually SSE2. + WANT_SSE = $(usex cpu_flags_x86_sse2 Y N) + + # Gentoo build options + TIFFLIB = $(netpbm_config_lib tiff) + # Let tiff worry about its own dependencies #395753 + TIFFLIB_NEEDS_JPEG = N + TIFFLIB_NEEDS_Z = N + JPEGLIB = $(netpbm_config_lib jpeg) + PNGLIB = $(netpbm_config_lib png) + ZLIB = $($(tc-getPKG_CONFIG) --libs zlib) + LINUXSVGALIB = $(netpbm_config_lib svga vga) + XML2_LIBS = $(netpbm_config_lib xml xml2) + JBIGLIB = $(netpbm_config_lib jbig) + JBIGHDR_DIR = + JASPERLIB = NONE + JASPERHDR_DIR = + URTLIB = $(netpbm_config_lib rle) + URTHDR_DIR = + X11LIB = $(netpbm_config_lib X X11) + X11HDR_DIR = + EOF +} + +src_compile() { + emake -j1 pm_config.h version.h manual_importinc #149843 + emake +} + +src_test() { + # The code wants to install everything first and then test the result. + emake install.{bin,lib,data} + emake check +} + +src_install() { + # Subdir make targets like to use `mkdir` all over the place + # without any actual dependencies, thus the -j1. + emake -j1 package pkgdir="${ED}"/usr + + if [[ $(get_libdir) != "lib" ]] ; then + mv "${ED}"/usr/lib "${ED}"/usr/$(get_libdir) || die + fi + + # Remove cruft that we don't need, and move around stuff we want + rm "${ED}"/usr/{README,VERSION,{pkgconfig,config}_template,pkginfo} || die + + dodir /usr/share + mv "${ED}"/usr/misc "${ED}"/usr/share/netpbm || die + + doman userguide/*.[0-9] + dodoc README + + cd doc || die + dodoc HISTORY Netpbm.programming USERDOC + docinto html + dodoc -r ../userguide/*.html +} -- cgit v1.2.3