- update dcraw to 9.04 - remove the snprintf patches; we're generally not doing this for anything new in ports, and without upstream taking them back, it makes maintenance an absolute nightmare
ok? Index: Makefile =================================================================== RCS file: /cvs/ports/graphics/dcraw/Makefile,v retrieving revision 1.11 diff -u -p -r1.11 Makefile --- Makefile 6 Jun 2008 13:20:19 -0000 1.11 +++ Makefile 16 Sep 2010 08:40:42 -0000 @@ -2,15 +2,12 @@ COMMENT = digital camera RAW format conversion tool -DISTNAME = dcraw-8.86 +DISTNAME = dcraw-9.04 CATEGORIES = graphics HOMEPAGE = http://www.cybercom.net/~dcoffin/dcraw/ MASTER_SITES = http://cybercom.net/~dcoffin/dcraw/archive/ - -LIB_DEPENDS = jpeg.>=6::graphics/jpeg \ - lcms::graphics/lcms # Some code is completely free, some is under the GPL PERMIT_PACKAGE_CDROM = Yes @@ -18,7 +15,10 @@ PERMIT_PACKAGE_FTP = Yes PERMIT_DISTFILES_CDROM =Yes PERMIT_DISTFILES_FTP = Yes -WANTLIB = c m +WANTLIB = c jpeg lcms m + +LIB_DEPENDS = ::graphics/jpeg \ + ::graphics/lcms NO_REGRESS = Yes SEPARATE_BUILD = simple Index: distinfo =================================================================== RCS file: /cvs/ports/graphics/dcraw/distinfo,v retrieving revision 1.9 diff -u -p -r1.9 distinfo --- distinfo 25 Jul 2008 22:19:01 -0000 1.9 +++ distinfo 16 Sep 2010 08:40:42 -0000 @@ -1,5 +1,5 @@ -MD5 (dcraw-8.86.tar.gz) = h0qRQNaJJ5kQJMIr9C+UFQ== -RMD160 (dcraw-8.86.tar.gz) = 1YnSeRM/DngItdHfO8XV9OKaxVY= -SHA1 (dcraw-8.86.tar.gz) = VwbfoAQSnklYW/Vi2ezw4BGsRT4= -SHA256 (dcraw-8.86.tar.gz) = r4mtc1LBv3DA+PVysd2AYhM9M7/waHe5I5yj9R6vQmw= -SIZE (dcraw-8.86.tar.gz) = 148079 +MD5 (dcraw-9.04.tar.gz) = twUu9f/pEnMK0Ovk2ybnDg== +RMD160 (dcraw-9.04.tar.gz) = bq4oJCq8OqCyIvIn+wX/a4/4QCI= +SHA1 (dcraw-9.04.tar.gz) = xloMe7UszdBcKtzPSzQ/TQyqtA4= +SHA256 (dcraw-9.04.tar.gz) = wBMZ7UiqeQf3IJ8TuY3uk6d79M1AeCZlL/f7Rm8ZPMU= +SIZE (dcraw-9.04.tar.gz) = 160533 Index: patches/patch-dcraw_c =================================================================== RCS file: patches/patch-dcraw_c diff -N patches/patch-dcraw_c --- patches/patch-dcraw_c 6 Jun 2008 13:20:19 -0000 1.7 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,231 +0,0 @@ ---- dcraw.c.orig Tue Apr 29 14:22:52 2008 -+++ dcraw.c Sun Jun 1 03:10:50 2008 -@@ -1253,8 +1253,8 @@ void CLASS nikon_3700() - bits = (dp[8] & 3) << 4 | (dp[20] & 3); - for (i=0; i < sizeof table / sizeof *table; i++) - if (bits == table[i].bits) { -- strcpy (make, table[i].make ); -- strcpy (model, table[i].model); -+ strlcpy (make, table[i].make, sizeof make); -+ strlcpy (model, table[i].model, sizeof model); - } - } - -@@ -3030,7 +3030,7 @@ void CLASS foveon_interpolate() - FORC3 diag[c][i] = LAST(1,1)*LAST(2,2) - LAST(1,2)*LAST(2,1); - #undef LAST - FORC3 div[c] = diag[c][0]*0.3127 + diag[c][1]*0.329 + diag[c][2]*0.3583; -- sprintf (str, "%sRGBNeutral", model2); -+ snprintf (str, sizeof str, "%sRGBNeutral", model2); - if (foveon_camf_param ("IncludeBlocks", str)) - foveon_fixed (div, 3, str); - num = 0; -@@ -3397,9 +3397,9 @@ void CLASS bad_pixels (char *fname) - if (*cp == '\\') *cp = '/'; - #endif - cp = fname + strlen(fname); -- if (cp[-1] == '/') cp--; -+ if (cp[-1] == '/') cp--, *cp = '\0'; - while (*fname == '/') { -- strcpy (cp, "/.badpixels"); -+ strlcat (fname, "/.badpixels", len); - if ((fp = fopen (fname, "r"))) break; - if (cp == fname) break; - while (*--cp != '/'); -@@ -4798,7 +4798,7 @@ void CLASS parse_mos (int offset) - if (!strcmp(data,"ShootObj_back_type")) { - fscanf (ifp, "%d", &i); - if ((unsigned) i < sizeof mod / sizeof (*mod)) -- strcpy (model, mod[i]); -+ strlcpy (model, mod[i], sizeof model); - } - if (!strcmp(data,"icc_camera_to_tone_matrix")) { - for (i=0; i < 9; i++) -@@ -5130,7 +5130,7 @@ int CLASS parse_tiff_ifd (int base) - if (flip % 180 == 90) SWAP(width,height); - filters = flip = 0; - } -- sprintf (model, "Ixpress %d-Mp", height*width/1000000); -+ snprintf (model, sizeof model, "Ixpress %d-Mp", height*width/1000000); - load_raw = &CLASS imacon_full_load_raw; - if (filters) { - if (left_margin & 1) filters = 0x61616161; -@@ -5438,6 +5438,7 @@ void CLASS parse_external_jpeg() - { - char *file, *ext, *jname, *jfile, *jext; - FILE *save=ifp; -+ size_t ifsize; - - ext = strrchr (ifname, '.'); - file = strrchr (ifname, '/'); -@@ -5445,13 +5446,15 @@ void CLASS parse_external_jpeg() - if (!file) file = ifname-1; - file++; - if (!ext || strlen(ext) != 4 || ext-file != 8) return; -- jname = (char *) malloc (strlen(ifname) + 1); -+ ifsize = strlen(ifname) + 1; -+ jname = (char *) malloc (ifsize); - merror (jname, "parse_external()"); -- strcpy (jname, ifname); -+ strlcpy (jname, ifname, ifsize); - jfile = file - ifname + jname; - jext = ext - ifname + jname; - if (strcasecmp (ext, ".jpg")) { -- strcpy (jext, isupper(ext[1]) ? ".JPG":".jpg"); -+ *jext = '\0'; -+ strlcat(ifname, isupper(ext[1]) ? ".JPG":".jpg", ifsize); - memcpy (jfile, file+4, 4); - memcpy (jfile+4, file, 4); - } else -@@ -5668,7 +5671,7 @@ void CLASS parse_sinar_ia() - fread (make, 64, 1, ifp); - make[63] = 0; - if ((cp = strchr(make,' '))) { -- strcpy (model, cp+1); -+ strlcpy (model, cp+1, sizeof model); - *cp = 0; - } - raw_width = get2(); -@@ -5846,7 +5849,7 @@ void CLASS parse_smal (int offset, int fsize) - raw_height = height = get2(); - raw_width = width = get2(); - strcpy (make, "SMaL"); -- sprintf (model, "v%d %dx%d", ver, width, height); -+ snprintf (model, sizeof model, "v%d %dx%d", ver, width, height); - if (ver == 6) load_raw = &CLASS smal_v6_load_raw; - if (ver == 9) load_raw = &CLASS smal_v9_load_raw; - } -@@ -5874,7 +5877,7 @@ void CLASS parse_cine() - } - fseek (ifp, off_setup+792, SEEK_SET); - strcpy (make, "CINE"); -- sprintf (model, "%d", get4()); -+ snprintf (model, sizeof model, "%d", get4()); - fseek (ifp, 12, SEEK_CUR); - switch ((i=get4()) & 0xffffff) { - case 3: filters = 0x94949494; break; -@@ -5973,11 +5976,11 @@ void CLASS parse_foveon() - if (!strcmp (name, "ISO")) - iso_speed = atoi(value); - if (!strcmp (name, "CAMMANUF")) -- strcpy (make, value); -+ strlcpy (make, value, sizeof make); - if (!strcmp (name, "CAMMODEL")) -- strcpy (model, value); -+ strlcpy (model, value, sizeof model); - if (!strcmp (name, "WB_DESC")) -- strcpy (model2, value); -+ strlcpy (model2, value, sizeof model2); - if (!strcmp (name, "TIME")) - timestamp = atoi(value); - if (!strcmp (name, "EXPTIME")) -@@ -6396,7 +6399,7 @@ void CLASS adobe_coeff (char *make, char *model) - char name[130]; - int i, j; - -- sprintf (name, "%s %s", make, model); -+ snprintf (name, sizeof name, "%s %s", make, model); - for (i=0; i < sizeof table / sizeof *table; i++) - if (!strncmp (name, table[i].prefix, strlen(table[i].prefix))) { - if (table[i].black) black = (ushort) table[i].black; -@@ -6634,8 +6637,8 @@ void CLASS identify() - else - for (i=0; i < sizeof table / sizeof *table; i++) - if (fsize == table[i].fsize) { -- strcpy (make, table[i].make ); -- strcpy (model, table[i].model); -+ strlcpy (make, table[i].make, sizeof make); -+ strlcpy (model, table[i].model, sizeof model); - if (table[i].withjpeg) - parse_external_jpeg(); - } -@@ -6644,7 +6647,7 @@ void CLASS identify() - - for (i=0; i < sizeof corp / sizeof *corp; i++) - if (strstr (make, corp[i])) /* Simplify company names */ -- strcpy (make, corp[i]); -+ strlcpy (make, corp[i], sizeof make); - if (!strncmp (make,"KODAK",5)) - make[16] = model[16] = 0; - cp = make + strlen(make); /* Remove trailing spaces */ -@@ -7035,7 +7038,7 @@ cp_e2500: - load_raw = &CLASS unpacked_load_raw; - } else if (!strcmp(make,"FUJIFILM")) { - if (!strcmp(model+7,"S2Pro")) { -- strcpy (model+7," S2Pro"); -+ strcpy (model + 7, " S2Pro"); - height = 2144; - width = 2880; - flip = 6; -@@ -7077,7 +7080,7 @@ cp_e2500: - } else if (!strncmp(model,"ALPHA",5) || - !strncmp(model,"DYNAX",5) || - !strncmp(model,"MAXXUM",6)) { -- sprintf (model+20, "DYNAX %-10s", model+6+(model[0]=='M')); -+ snprintf (model+20, sizeof model - 20, "DYNAX %-10s", model+6+(model[0]=='M')); - adobe_coeff (make, model+20); - load_raw = &CLASS packed_12_load_raw; - } else if (!strncmp(model,"DiMAGE G",8)) { -@@ -7618,7 +7621,7 @@ qt_common: - pre_mul[2] = 1.504; - } - if (!model[0]) -- sprintf (model, "%dx%d", width, height); -+ snprintf (model, sizeof model, "%dx%d", width, height); - if (filters == UINT_MAX) filters = 0x94949494; - if (raw_color) adobe_coeff (make, model); - if (thumb_offset && !thumb_height) { -@@ -7782,8 +7785,8 @@ void CLASS convert_to_rgb() - } - for (i=0; i < phead[0]/4; i++) - oprof[i] = htonl(oprof[i]); -- strcpy ((char *)oprof+pbody[2]+8, "auto-generated by dcraw"); -- strcpy ((char *)oprof+pbody[5]+12, name[output_color-1]); -+ strlcpy ((char *)oprof+pbody[2]+8, "auto-generated by dcraw", sizeof oprof-pbody[2]-8); -+ strlcpy ((char *)oprof+pbody[5]+12, name[output_color-1], sizeof oprof-pbody[5]-12); - for (i=0; i < 3; i++) - for (j=0; j < colors; j++) - for (out_cam[i][j] = k=0; k < 3; k++) -@@ -8033,7 +8036,7 @@ void CLASS tiff_head (struct tiff_hdr *th, int full) - strncpy (th->model, model, 64); - strcpy (th->soft, "dcraw v"VERSION); - t = gmtime (×tamp); -- sprintf (th->date, "%04d:%02d:%02d %02d:%02d:%02d", -+ snprintf (th->date, sizeof th->date, "%04d:%02d:%02d %02d:%02d:%02d", - t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); - strncpy (th->artist, artist, 64); - } -@@ -8111,6 +8114,7 @@ int CLASS main (int argc, char **argv) - char opm, opt, *ofname, *sp, *cp, *bpfile=0, *dark_frame=0; - const char *write_ext; - struct utimbuf ut; -+ size_t ofsize; - FILE *ofp; - #ifndef NO_LCMS - char *cam_profile=0, *out_profile=0; -@@ -8432,19 +8436,20 @@ thumbnail: - write_ext = ".tiff"; - else - write_ext = ".pgm\0.ppm\0.ppm\0.pam" + colors*5-5; -- ofname = (char *) malloc (strlen(ifname) + 64); -+ ofsize = strlen(ifname) + 64; -+ ofname = (char *) malloc (ofsize); - merror (ofname, "main()"); - if (write_to_stdout) - strcpy (ofname,_("standard output")); - else { -- strcpy (ofname, ifname); -+ strlcpy (ofname, ifname, ofsize); - if ((cp = strrchr (ofname, '.'))) *cp = 0; - if (multi_out) -- sprintf (ofname+strlen(ofname), "_%0*d", -+ snprintf (ofname+strlen(ofname), ofsize-strlen(ofname), "_%0*d", - snprintf(0,0,"%d",is_raw-1), shot_select); - if (thumbnail_only) -- strcat (ofname, ".thumb"); -- strcat (ofname, write_ext); -+ strlcat (ofname, ".thumb", ofsize); -+ strlcat (ofname, write_ext, ofsize); - ofp = fopen (ofname, "wb"); - if (!ofp) { - status = 1; Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/graphics/dcraw/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 PLIST --- pkg/PLIST 7 Apr 2005 21:36:31 -0000 1.1.1.1 +++ pkg/PLIST 16 Sep 2010 08:40:42 -0000 @@ -1,3 +1,3 @@ @comment $OpenBSD: PLIST,v 1.1.1.1 2005/04/07 21:36:31 sturm Exp $ -bin/dcraw +...@bin bin/dcraw @man man/man1/dcraw.1