diff --git a/pkgs/development/libraries/urt/default.nix b/pkgs/development/libraries/urt/default.nix new file mode 100644 index 000000000000..8570af2b2834 --- /dev/null +++ b/pkgs/development/libraries/urt/default.nix @@ -0,0 +1,61 @@ +{stdenv, fetchurl, ncompress}: + +stdenv.mkDerivation rec { + name = "urt-${version}"; + version = "3.1b"; + + src = fetchurl { + url = ftp://ftp.iastate.edu/pub/utah-raster/urt-3.1b.tar.Z; + sha256 = "0hbb3avgvkfb2cksqn6cmmgcr0278nb2qd1srayqx0876pq6g2vd"; + }; + + buildInputs = [ ncompress ]; + + unpackPhase = '' + mkdir urt + tar xvf "$src" -C urt + ''; + patchFlags = "-p0 -d urt"; + patches = [ ./urt-3.1b-build-fixes.patch ./urt-3.1b-compile-updates.patch + ./urt-3.1b-make.patch ./urt-3.1b-rle-fixes.patch ./urt-3.1b-tempfile.patch ]; + postPatch = '' + cd urt + + rm bin/README + rm man/man1/template.1 + + # stupid OS X declares a stack_t type already + sed -i -e 's:stack_t:_urt_stack:g' tools/clock/rleClock.c + + sed -i -e '/^CFLAGS/s: -O : :' makefile.hdr + + cp "${./gentoo-config}" config/gentoo + ''; + configurePhase = '' + ./Configure config/gentoo + ''; + postInstall = '' + mkdir -p $out/bin + cp bin/* $out/bin + + mkdir -p $out/lib + cp lib/librle.a $out/lib + + mkdir -p $out/include + cp include/rle*.h $out/include + + mkdir -p $out/share/man/man1 + cp man/man1/*.1 $out/share/man/man1 + + mkdir -p $out/share/man/man3 + cp man/man3/*.3 $out/share/man/man3 + + mkdir -p $out/share/man/man5 + cp man/man5/*.5 $out/share/man/man5 + ''; + + meta = { + homepage = http://www.cs.utah.edu/gdc/projects/urt/; + description = "The Utah Raster Toolkit is a library for dealing with raster images"; + }; +} \ No newline at end of file diff --git a/pkgs/development/libraries/urt/gentoo-config b/pkgs/development/libraries/urt/gentoo-config new file mode 100644 index 000000000000..a2d9ec3faf2f --- /dev/null +++ b/pkgs/development/libraries/urt/gentoo-config @@ -0,0 +1,52 @@ +#define ABEKASA60 +#define ABEKASA62 +#define ALIAS +##define CGM +#define CUBICOMP +##define DVIRLE +#define GRAYFILES +#define MACPAINT +##define PBMPLUS +##define SUNRASTER +#define TARGA +#define VICAR +#define WASATCH +#define WAVEFRONT + +#define GCC + +#define CONST_DECL +#define NO_MAKE_MAKEFILE +#define USE_TIME_H +#define SYS_V_SETPGRP +#define USE_PROTOTYPES +#define USE_RANDOM +#define USE_STDARG +#define USE_STDLIB_H +#define USE_UNISTD_H +#define USE_STRING_H +#define VOID_STAR +#define USE_XLIBINT_H +#define X_SHARED_MEMORY + +#defpath DEST bin +#defpath RI include +#defpath RL lib + +ROFF = nroff +ROFFOPT = -man +ROFFPIPE = | lpr + +INCTIFF = +LIBTIFF = -ltiff +INCX11 = +LIBX11 = -lX11 + +# Most people have migrated X11 to /usr/lib, but just in case ... +check_x11=$(shell \ + echo 'int main(){}' > test.c ; \ + if ! $(CC) test.c -lX11 -o .urt-x11-test 2>/dev/null ; then \ + echo "-L/usr/X11R6/lib" ; \ + fi ; \ + rm -f .urt-x11-test test.c) +LIBX11 += $(call check_x11) diff --git a/pkgs/development/libraries/urt/urt-3.1b-build-fixes.patch b/pkgs/development/libraries/urt/urt-3.1b-build-fixes.patch new file mode 100644 index 000000000000..fc2bacddb30c --- /dev/null +++ b/pkgs/development/libraries/urt/urt-3.1b-build-fixes.patch @@ -0,0 +1,151 @@ +some hosts are more anal about ar usage than others +http://bugs.gentoo.org/107428 + +respect user LDFLAGS +http://bugs.gentoo.org/126872 + +--- lib/makefile.src ++++ lib/makefile.src +@@ -181,8 +181,7 @@ + # Rebuild the library from all the .o files. + buildlib: $(OBJS) + -rm -f $(LIBNAME) +- ar rc $(LIBNAME) +- ar q $(LIBNAME) $(OBJS) ++ ar rc $(LIBNAME) $(OBJS) + #ifndef NO_RANLIB + ranlib $(LIBNAME) + #endif +--- tools/clock/makefile.src ++++ tools/clock/makefile.src +@@ -6,7 +6,7 @@ install: rleClock + mv rleClock ../rleClock.out + + rleClock:rleClock.o font.o +- ${CC} ${CFLAGS} rleClock.o font.o -lm ${LIBS} -o rleClock ++ ${CC} ${CFLAGS} ${LDFLAGS} rleClock.o font.o ${LIBS} -o rleClock -lm + + font.c:font.src makeFont + chmod +x makeFont +--- tools/makefile.src ++++ tools/makefile.src +@@ -62,21 +62,21 @@ applymap.out rlebg.out: $(RI)/rle_raw.h + pyrlib.o: pyrlib.c $(RI)/pyramid.h $(RI)/rle.h $(RI)/rle_config.h + $(CC) $(CFLAGS) pyrlib.c -c + pyrmask.out: pyrlib.o pyrmask.c $(RI)/pyramid.h +- $(CC) $(CFLAGS) -I$(RI) pyrmask.c pyrlib.o $(LIBS) -lm -o pyrmask.new ++ $(CC) $(LDFLAGS) $(CFLAGS) -I$(RI) pyrmask.c pyrlib.o $(LIBS) -lm -o pyrmask.new + mv pyrmask.new pyrmask.out + + fant.out: fant.o mallocNd.o +- $(CC) $(CFLAGS) -I$(RI) fant.o mallocNd.o $(LIBS) -lm -o fant.new ++ $(CC) $(LDFLAGS) $(CFLAGS) -I$(RI) fant.o mallocNd.o $(LIBS) -lm -o fant.new + mv fant.new fant.out + + # rlebox and crop use some common code. + rle_box.o: $(RI)/rle.h $(RI)/rle_config.h $(RI)/rle_raw.h + + crop.out: crop.c rle_box.o +- ${CC} ${CFLAGS} crop.c rle_box.o ${LIBS} -o crop.new ++ ${CC} ${LDFLAGS} ${CFLAGS} crop.c rle_box.o ${LIBS} -o crop.new + mv crop.new crop.out + rlebox.out: rlebox.c rle_box.o +- ${CC} ${CFLAGS} rlebox.c rle_box.o ${LIBS} -o rlebox.new ++ ${CC} ${LDFLAGS} ${CFLAGS} rlebox.c rle_box.o ${LIBS} -o rlebox.new + mv rlebox.new rlebox.out + + # rleClock has it's own directory, must be built special +@@ -100,7 +100,7 @@ clean: clean-pgm + .SUFFIXES: + .SUFFIXES: .out .c .o + .c.out: +- $(CC) $(CFLAGS) $< $(LIBS) -lm -o $*.new ++ $(CC) $(LDFLAGS) $(CFLAGS) $< $(LIBS) -lm -o $*.new + mv $*.new $@ + + .c.o: +--- cnv/makefile.src ++++ cnv/makefile.src +@@ -76,13 +76,13 @@ PBMDIR = + # ppmtorle - ppm format to RLE + # rletoppm - RLE to ppm format + pgmtorle.out: pgmtorle.c +- $(CC) $(CFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new + mv $*.new $@ + ppmtorle.out: ppmtorle.c +- $(CC) $(CFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new + mv $*.new $@ + rletoppm.out: rletoppm.c +- $(CC) $(CFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new + mv $*.new $@ + #endif + +@@ -95,10 +95,10 @@ rletoppm.out: rletoppm.c + # iristorle/rletoiris - Convert between RLE and SGI image format. + # + iristorle.out: iristorle.c +- $(CC) $(CFLAGS) -I/usr/include/gl $*.c $(LIBS) -limage -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) -I/usr/include/gl $*.c $(LIBS) -limage -o $*.new + mv $*.new $@ + rletoiris.out: rletoiris.c +- $(CC) $(CFLAGS) -I/usr/include/gl $*.c $(LIBS) -limage -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) -I/usr/include/gl $*.c $(LIBS) -limage -o $*.new + mv $*.new $@ + #endif + +@@ -108,10 +108,10 @@ TIFFDIR = + # tifftorle - Convert TIFF images to RLE + # rletotiff - Convert RLE images to TIFF + rletotiff.out: rletotiff.c +- $(CC) $(CFLAGS) $(INCTIFF) $*.c $(LIBS) $(LIBTIFF) -lm -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) $(INCTIFF) $*.c $(LIBS) $(LIBTIFF) -lm -o $*.new + mv $*.new $@ + tifftorle.out: tifftorle.c +- $(CC) $(CFLAGS) $(INCTIFF) $*.c $(LIBS) $(LIBTIFF) -lm -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) $(INCTIFF) $*.c $(LIBS) $(LIBTIFF) -lm -o $*.new + mv $*.new $@ + #endif + +@@ -125,7 +125,7 @@ tifftorle.out: tifftorle.c + # Will build with the default rule. + # rletorla - RLE to Wavefront RLA + rletorla.out: rletorla.c +- $(CC) $(CFLAGS) $*.c $(LIBS) $(LIBWAVEFRONT) -lm -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBS) $(LIBWAVEFRONT) -lm -o $*.new + mv $*.new $@ + #endif WAVEFRONT + +@@ -144,7 +144,7 @@ pristine: pristine-pgm + .SUFFIXES: + .SUFFIXES: .out .c + .c.out: +- $(CC) $(CFLAGS) $*.c $(LIBS) -lm -o $*.new ++ $(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBS) -lm -o $*.new + mv $*.new $@ + + # Dependency lines. Make sure to #ifdef them. +--- cnv/rletoabA62/makefile.src ++++ cnv/rletoabA62/makefile.src +@@ -15,7 +15,7 @@ all : $(PGMS) + # Executables. The .out will be stripped off in the install action. + + rletoabA62.out : rletoabA62.o rle.o +- $(CC) $(CFLAGS) -o rletoabA62.new \ ++ $(CC) $(CFLAGS) $(LDFLAGS) -o rletoabA62.new \ + rletoabA62.o rle.o $(LIBS) + mv rletoabA62.new rletoabA62.out + +--- cnv/rletogif/makefile.src ++++ cnv/rletogif/makefile.src +@@ -15,7 +15,7 @@ all: $(PGMS) + # The executable. The ".out" will be stripped off in the install action. + + rletogif.out: ${OBJ} +- ${CC} ${CFLAGS} ${OBJ} ${LIBS} -o rletogif.new ++ ${CC} ${CFLAGS} ${LDFLAGS} ${OBJ} ${LIBS} -o rletogif.new + mv rletogif.new rletogif.out + + # Incremental install, copies executable to DEST dir. diff --git a/pkgs/development/libraries/urt/urt-3.1b-compile-updates.patch b/pkgs/development/libraries/urt/urt-3.1b-compile-updates.patch new file mode 100644 index 000000000000..105f7c41f6a7 --- /dev/null +++ b/pkgs/development/libraries/urt/urt-3.1b-compile-updates.patch @@ -0,0 +1,141 @@ +--- get/getx11/XGetHClrs.c ++++ get/getx11/XGetHClrs.c +@@ -1,5 +1,4 @@ + #ifndef XLIBINT_H_NOT_AVAILABLE +-#include + + /* $XConsortium: XGetHClrs.c,v 11.10 88/09/06 16:07:50 martin Exp $ */ + /* Copyright Massachusetts Institute of Technology 1986 */ +--- tools/mallocNd.c ++++ tools/mallocNd.c +@@ -67,7 +67,7 @@ + + /* Imports */ + #include +-extern char *malloc(); ++#include + + /* Forward declarations */ + char *BuildIndirectionTable(); +--- tools/into.c ++++ tools/into.c +@@ -40,8 +40,8 @@ + static char buf[MAXPATHLEN+1]; + short forceflg; /* overwrite an unwritable file? */ + +-extern int errno; +-extern char *sys_errlist[]; ++#include ++#include + + void + main(argc, argv) +@@ -103,7 +103,7 @@ + if (ferror(outf)) + { + fprintf(stderr, "into: %s, \"%s\" not modified\n", +- sys_errlist[errno], argv[1]); ++ strerror(errno), argv[1]); + unlink(buf); + exit(1); + } +--- cnv/tex/dvirle2.c ++++ cnv/tex/dvirle2.c +@@ -55,7 +55,6 @@ + void DumpTopOfBand(), MoveDown(), WriteBuf(), WriteBlanks(); + + char *ProgName; +-extern int errno; + extern char *optarg; + extern int optind; + +--- cnv/wasatchrle.c ++++ cnv/wasatchrle.c +@@ -32,7 +32,6 @@ + #include + #include "rle.h" + +-extern int errno; + + /* "short" in our world is 16 bits. Beware of swyte-bopping. */ + +--- get/getx11/x11_stuff.c ++++ get/getx11/x11_stuff.c +@@ -155,7 +155,6 @@ + IPC_CREAT|0777 ); + if ( img->shm_img.shmid < 0 ) + { +- extern int errno; + if ( errno == ENOSPC ) + { + if ( !no_shared_space ) +@@ -361,7 +360,6 @@ Boolean reallocate; + XDestroyImage( image ); + if ( img->shm_pix.shmid < 0 ) + { +- extern int errno; + if ( errno == ENOSPC ) + { + if ( !no_shared_space ) +--- get/qcr/qcr.h ++++ get/qcr/qcr.h +@@ -6,8 +6,6 @@ + #define GREEN 1 + #define BLUE 2 + +-extern int errno; +- + /* Command defs for QCR-Z Film Recorder */ + + /* These are for 8 bit Look Up Tables */ +--- get/gettaac.c ++++ get/gettaac.c +@@ -24,6 +24,7 @@ + * Send bug fixes and improvements to: ksp@maxwell.nde.swri.edu + */ + ++#include + #include + #include + #include +@@ -459,7 +460,6 @@ char *template; + char nonUnique; + char twiddleUserCompletion; + +- extern int errno; + struct direct *nameEntry; + DIR *dirChan; + struct passwd *pwdEntry; +--- tools/clock/rleClock.c ++++ tools/clock/rleClock.c +@@ -598,7 +598,7 @@ + { TRUE, "-tf", STRING, "Text area format string", (char *)&FormatString }, + { FALSE, "-Xm", BOOL, "Output the alpha channel on RGB", (char *)&DebugAlpha }, + { FALSE, "-D", BOOL, "Turn on debugging", (char *)&Debug }, +- NULL ++ { FALSE, NULL } + }; + + void +--- tools/to8.c ++++ tools/to8.c +@@ -175,7 +175,7 @@ + * Give it a background color of black, since the real background + * will be dithered anyway. + */ +- if ( in_hdr.background != NULL ) ++ if ( in_hdr.background != 0 ) + { + out_hdr.bg_color = (int *)malloc( sizeof( int ) ); + RLE_CHECK_ALLOC( cmd_name( argv ), out_hdr.bg_color, 0 ); +--- cnv/rletoabA62/rletoabA62.c ++++ cnv/rletoabA62/rletoabA62.c +@@ -157,7 +157,7 @@ + exit(1); + } + if (optind < argc) { +- if ((file = open(argv[optind], 0)) == NULL) { ++ if ((file = open(argv[optind], 0)) == -1) { + perror(argv[optind]); + exit(1); + } diff --git a/pkgs/development/libraries/urt/urt-3.1b-make.patch b/pkgs/development/libraries/urt/urt-3.1b-make.patch new file mode 100644 index 000000000000..310675dd395d --- /dev/null +++ b/pkgs/development/libraries/urt/urt-3.1b-make.patch @@ -0,0 +1,75 @@ +Index: makefile.src +=================================================================== +--- makefile.src ++++ makefile.src +@@ -17,7 +17,7 @@ all: default + # clean deletes all but source, pristine (below) deletes installed stuff, too + default clean: doit + @for d in $(DIRS) ; do \ +- ( cd $$d ; echo make $@ on $$d ; make $(MFLAGS) $@ ) ; \ ++ ( cd $$d ; echo $(MAKE) $@ on $$d ; $(MAKE) $(MFLAGS) $@ ) ; \ + done + + # install puts library, binaries and documentation into global location +@@ -29,7 +29,7 @@ MAKE_TARGET = + + install $(MAKE_TARGET) pristine depend:: doit + @for d in $(ALLDIRS) ; do \ +- ( cd $$d ; echo make $@ on $$d ; make $(MFLAGS) $@ ) ; \ ++ ( cd $$d ; echo $(MAKE) $@ on $$d ; $(MAKE) $(MFLAGS) $@ ) ; \ + done + + +Index: tools/makefile.src +=================================================================== +--- tools/makefile.src ++++ tools/makefile.src +@@ -82,7 +82,7 @@ rlebox.out: rlebox.c rle_box.o + # rleClock has it's own directory, must be built special + + rleClock.out: clock/font.c clock/font.h clock/font.src clock/rleClock.c +- (cd clock ; make) ++ (cd clock ; $(MAKE)) + + # Incremental install, copies everything ("$?") since last install to DEST dir. + install: $(PGMS) install-pgm +Index: makefile.tlr +=================================================================== +--- makefile.tlr ++++ makefile.tlr +@@ -7,7 +7,7 @@ subdirs: + @sh -c "if test 'x$(DIRS)' != x ; then eval \ + 'set -e ; for dir in $(DIRS) ; do \ + (cd \$$dir ; echo Make ${HERE}\$$dir ; \ +- make $(MFLAGS) $(DIRMFLAGS) ) ; \ ++ $(MAKE) $(MFLAGS) $(DIRMFLAGS) ) ; \ + done' ; \ + else \ + true ; \ +@@ -46,7 +46,7 @@ install-subdirs: subdirs + @sh -c "if test 'x$(DIRS)' != x ; then eval \ + 'for dir in $(DIRS) ; do \ + (cd \$$dir ; echo Install ${HERE}\$$dir ; \ +- make $(MFLAGS) $(DIRMFLAGS) install) ; \ ++ $(MAKE) $(MFLAGS) $(DIRMFLAGS) install) ; \ + done' ; \ + else \ + true ; \ +@@ -105,7 +105,7 @@ pristine-pgm: clean-pgm + 'for dir in $(ALLDIRS); do \ + if test -d $$dir ; then \ + (cd $$dir; echo Make ${HERE}$$dir pristine ; \ +- make $(MFLAGS) pristine); \ ++ $(MAKE) $(MFLAGS) pristine); \ + else \ + true; \ + fi; \ +@@ -124,7 +124,7 @@ clean-pgm: + 'for dir in $(ALLDIRS); do \ + if test -d $$dir ; then \ + (cd $$dir; echo Clean ${HERE}$$dir ; \ +- make $(MFLAGS) clean); \ ++ $(MAKE) $(MFLAGS) clean); \ + else \ + true; \ + fi; \ diff --git a/pkgs/development/libraries/urt/urt-3.1b-rle-fixes.patch b/pkgs/development/libraries/urt/urt-3.1b-rle-fixes.patch new file mode 100644 index 000000000000..3720806960fe --- /dev/null +++ b/pkgs/development/libraries/urt/urt-3.1b-rle-fixes.patch @@ -0,0 +1,203 @@ +Fixes taken from netpbm + +--- lib/rle_global.c ++++ lib/rle_global.c +@@ -76,7 +76,7 @@ rle_hdr rle_dflt_hdr = { + 8, /* cmaplen (log2 of length of color map) */ + NULL, /* pointer to color map */ + NULL, /* pointer to comment strings */ +- stdout, /* output file */ ++ NULL, /* output file -- must be set dynamically */ + { 7 }, /* RGB channels only */ + 0L, /* Can't free name and file fields. */ + "Urt", /* Default "program name". */ +--- lib/rle_hdr.c ++++ lib/rle_hdr.c +@@ -269,6 +273,9 @@ + { + rle_hdr *ret_hdr; + ++ rle_dflt_hdr.rle_file = stdout; ++ /* The rest of rle_dflt_hdr is set by the loader's data initialization */ ++ + if ( the_hdr == &rle_dflt_hdr ) + return the_hdr; + +--- lib/dither.c ++++ lib/dither.c +@@ -38,10 +38,10 @@ void make_square(); + #endif + + static int magic4x4[4][4] = { +- 0, 14, 3, 13, +- 11, 5, 8, 6, +- 12, 2, 15, 1, +- 7, 9, 4, 10 ++{ 0, 14, 3, 13}, ++{ 11, 5, 8, 6}, ++{ 12, 2, 15, 1}, ++{ 7, 9, 4, 10} + }; + + /* basic dithering macro */ +--- lib/rle_open_f.c ++++ lib/rle_open_f.c +@@ -9,7 +9,11 @@ + */ + + #include "rle_config.h" ++#define _XOPEN_SOURCE /* Make sure fdopen() is in stdio.h */ ++ + #include ++#include ++#include + + #ifndef NO_OPEN_PIPES + /* Need to have a SIGCLD signal catcher. */ +@@ -260,7 +260,6 @@ + int pipefd[2]; + int i; + char *argv[4]; +- extern int errno; + + /* Check args. */ + if ( *mode != 'r' && *mode != 'w' ) +--- lib/rle_getcom.c ++++ lib/rle_getcom.c +@@ -53,11 +53,12 @@ + { + for ( ; *n != '\0' && *n != '=' && *n == *v; n++, v++ ) + ; +- if (*n == '\0' || *n == '=') ++ if (*n == '\0' || *n == '=') { + if ( *v == '\0' ) + return v; + else if ( *v == '=' ) + return ++v; ++ } + + return NULL; + } +--- lib/scanargs.c ++++ lib/scanargs.c +@@ -128,10 +130,10 @@ + va_list argl; + { + +- register check; /* check counter to be sure all argvs ++ int check; /* check counter to be sure all argvs + are processed */ + register CONST_DECL char *cp; +- register cnt; ++ int cnt; + int optarg = 0; /* where optional args start */ + int nopt = 0; + char tmpflg, /* temp flag */ +@@ -375,11 +377,12 @@ + if ( optarg > 0 ) /* end optional args? */ + { + /* Eat the arg, too, if necessary */ +- if ( list_cnt == 0 ) ++ if ( list_cnt == 0 ) { + if ( typchr == 's' ) + (void)va_arg( argl, char * ); + else + (void)va_arg( argl, ptr ); ++ } + break; + } + else +@@ -567,7 +570,7 @@ + * Do conversion for n and N types + */ + tmpflg = typchr; +- if (typchr == 'n' || typchr == 'N' ) ++ if (typchr == 'n' || typchr == 'N' ) { + if (*argp != '0') + tmpflg = 'd'; + else if (*(argp+1) == 'x' || +@@ -578,6 +581,7 @@ + } + else + tmpflg = 'o'; ++ } + if (typchr == 'N') + tmpflg = toupper( tmpflg ); + +--- lib/inv_cmap.c ++++ lib/inv_cmap.c +@@ -42,7 +42,7 @@ + static long cbinc, cginc, crinc; + static unsigned long *gdp, *rdp, *cdp; + static unsigned char *grgbp, *rrgbp, *crgbp; +-static gstride, rstride; ++static long gstride, rstride; + static long x, xsqr, colormax; + static int cindex; + #ifdef INSTRUMENT_IT +--- lib/rle_getrow.c ++++ lib/rle_getrow.c +@@ -351,7 +351,7 @@ + bzero( (char *)scanline[-1] + the_hdr->xmin, + the_hdr->xmax - the_hdr->xmin + 1 ); + for ( nc = 0; nc < the_hdr->ncolors; nc++ ) +- if ( RLE_BIT( *the_hdr, nc ) ) ++ if ( RLE_BIT( *the_hdr, nc ) ) { + /* Unless bg color given explicitly, use 0. */ + if ( the_hdr->background != 2 || the_hdr->bg_color[nc] == 0 ) + bzero( (char *)scanline[nc] + the_hdr->xmin, +@@ -360,6 +360,7 @@ + bfill( (char *)scanline[nc] + the_hdr->xmin, + the_hdr->xmax - the_hdr->xmin + 1, + the_hdr->bg_color[nc] ); ++ } + } + + /* If skipping, then just return */ +@@ -367,7 +368,7 @@ + { + the_hdr->priv.get.vert_skip--; + the_hdr->priv.get.scan_y++; +- if ( the_hdr->priv.get.vert_skip > 0 ) ++ if ( the_hdr->priv.get.vert_skip > 0 ) { + if ( the_hdr->priv.get.scan_y >= the_hdr->ymax ) + { + int y = the_hdr->priv.get.scan_y; +@@ -377,6 +378,7 @@ + } + else + return the_hdr->priv.get.scan_y; ++ } + } + + /* If EOF has been encountered, return also */ +@@ -457,11 +459,12 @@ + else + nc = DATUM(inst); + nc++; +- if ( debug_f ) ++ if ( debug_f ) { + if ( RLE_BIT( *the_hdr, channel ) ) + fprintf( stderr, "Pixel data %d (to %d):", nc, scan_x+nc ); + else + fprintf( stderr, "Pixel data %d (to %d)\n", nc, scan_x+nc); ++ } + if ( RLE_BIT( *the_hdr, channel ) ) + { + /* Don't fill past end of scanline! */ +--- lib/rle_putcom.c ++++ lib/rle_putcom.c +@@ -53,11 +53,12 @@ + { + for ( ; *n != '\0' && *n != '=' && *n == *v; n++, v++ ) + ; +- if (*n == '\0' || *n == '=') ++ if (*n == '\0' || *n == '=') { + if ( *v == '\0' ) + return v; + else if ( *v == '=' ) + return ++v; ++ } + + return NULL; + } diff --git a/pkgs/development/libraries/urt/urt-3.1b-tempfile.patch b/pkgs/development/libraries/urt/urt-3.1b-tempfile.patch new file mode 100644 index 000000000000..12acce151b5d --- /dev/null +++ b/pkgs/development/libraries/urt/urt-3.1b-tempfile.patch @@ -0,0 +1,19 @@ +--- tools/rlecat.c ++++ tools/rlecat.c +@@ -110,8 +110,14 @@ + nflag = 0; /* Not really repeating! */ + else + { +- mktemp( temp ); /* Make a temporary file name */ +- tmpfile = rle_open_f( cmd_name( argv ), temp, "w+" ); ++ /* we dont have to use rle_open_f() because all it does in ++ * this case is run fopen() ... we're creating a file so all ++ * the checks for opening an existing file aren't needed */ ++ int fd = mkstemp(temp); ++ if (fd == -1 || (tmpfile = fdopen(fd, "w+")) == NULL) { ++ perror("Unable to open tempfile"); ++ exit(-1); ++ } + } + } + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c2294748f22d..69beaad6cd03 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3845,6 +3845,8 @@ let inherit postgresql mysql sqlite; }); + urt = callPackage ../development/libraries/urt { }; + vamp = callPackage ../development/libraries/audio/vamp { }; vigra = callPackage ../development/libraries/vigra { };