FreeBSD Bugzilla – Attachment 239118 Details for
Bug 268528
devel/nasm: spawned thousends of gmake processes, bringing machine down
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
nasm update
0001-devel-nasm-Update-to-2.16.01.patch (text/plain), 15.27 KB, created by
Lorenzo Salvadore
on 2022-12-29 12:14:53 UTC
(
hide
)
Description:
nasm update
Filename:
MIME Type:
Creator:
Lorenzo Salvadore
Created:
2022-12-29 12:14:53 UTC
Size:
15.27 KB
patch
obsolete
>From 5805efc58a8f6b1b28bf5d804e33778d0ba1f70d Mon Sep 17 00:00:00 2001 >From: Lorenzo Salvadore <salvadore@FreeBSD.org> >Date: Thu, 29 Dec 2022 11:48:39 +0100 >Subject: [PATCH] devel/nasm: Update to 2.16.01 >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >- The first attempt to update devel/nasm to version 2.16.01 failed due >to a bug in tmpfs with updating timestamps using ": >". In particular, >the bug is reproduced in poudriere using default configuration due to >USE_TMPFS="all". > >The bug in tmpfs is being fixed, starting with commit >860399eb86cc431412bfbce0ab76c6652e5b6c07 in the src repository. Until >the commit is merged in all officially supported FreeBSD versions, the >patch files/patch-Makefile.in is necessary: it is a workaround that >replaces ": >" with "touch" in Makefile.in [1]. > >- The file files/patch-d85890aa.c is being removed as it is now obsolete: >the commit from which the patch was taken is already included in the >update. > >- The RDOFF option has been removed as, according to the 2.16 changelog, >"Support for the rdf format has been discontinued and all the RDOFF >utilities has been removed." [2] > >Because of the RDOFF option removal, the list of installed files is now >much shorter and pkg-plist has been replaced by PLIST_FILES as suggest >by portlint. > >Changes: https://nasm.us/doc/nasmdocc.html > >PR: 268528 [1,2] >Reported by: Johan Ström <johan@stromnet.se> and many others [1,2] >--- > devel/nasm/Makefile | 13 +- > devel/nasm/distinfo | 10 +- > devel/nasm/files/patch-Makefile.in | 33 ++++ > devel/nasm/files/patch-d85890aa.c | 301 ----------------------------- > devel/nasm/pkg-plist | 22 --- > 5 files changed, 44 insertions(+), 335 deletions(-) > create mode 100644 devel/nasm/files/patch-Makefile.in > delete mode 100644 devel/nasm/files/patch-d85890aa.c > delete mode 100644 devel/nasm/pkg-plist > >diff --git a/devel/nasm/Makefile b/devel/nasm/Makefile >index 9e6f8bdf83a1..e5a0edc1ae8c 100644 >--- a/devel/nasm/Makefile >+++ b/devel/nasm/Makefile >@@ -1,5 +1,5 @@ > PORTNAME= nasm >-PORTVERSION= 2.15.05 >+PORTVERSION= 2.16.01 > PORTEPOCH= 2 > CATEGORIES= devel lang > MASTER_SITES= https://www.nasm.us/pub/nasm/releasebuilds/${PORTVERSION}/ \ >@@ -21,20 +21,19 @@ GNU_CONFIGURE= yes > CONFIGURE_ENV= ac_cv_func_strspn=yes > > MAKE_ARGS+= INSTALLROOT=${STAGEDIR} >-INSTALL_TARGET= install #needed for RDOFF_INSTALL_TARGET > >+PLIST_FILES= bin/nasm \ >+ bin/ndisasm \ >+ man/man1/nasm.1.gz \ >+ man/man1/ndisasm.1.gz > PORTDOCS= * > >-OPTIONS_DEFINE= DOCS RDOFF >+OPTIONS_DEFINE= DOCS > OPTIONS_SUB= yes > >-RDOFF_DESC= Install tools to handle RDOFF object files >- > DOCS_DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ > ${DISTNAME}-xdoc${EXTRACT_SUFX} > >-RDOFF_INSTALL_TARGET= install_rdf >- > post-install-DOCS-on: > @${MKDIR} ${STAGEDIR}${DOCSDIR} > (cd ${WRKSRC}/doc && ${COPYTREE_SHARE} html ${STAGEDIR}${DOCSDIR}) >diff --git a/devel/nasm/distinfo b/devel/nasm/distinfo >index d67d2ab6f30d..2f8445a7b4bc 100644 >--- a/devel/nasm/distinfo >+++ b/devel/nasm/distinfo >@@ -1,5 +1,5 @@ >-TIMESTAMP = 1600344380 >-SHA256 (nasm-2.15.05.tar.xz) = 3caf6729c1073bf96629b57cee31eeb54f4f8129b01902c73428836550b30a3f >-SIZE (nasm-2.15.05.tar.xz) = 995732 >-SHA256 (nasm-2.15.05-xdoc.tar.xz) = 02a260cabb649bf55a06e3dc5abb1413746704156c80afc742b8fc1510262ed1 >-SIZE (nasm-2.15.05-xdoc.tar.xz) = 823612 >+TIMESTAMP = 1672310881 >+SHA256 (nasm-2.16.01.tar.xz) = c77745f4802375efeee2ec5c0ad6b7f037ea9c87c92b149a9637ff099f162558 >+SIZE (nasm-2.16.01.tar.xz) = 1017732 >+SHA256 (nasm-2.16.01-xdoc.tar.xz) = 801867a71f4c3d513a927ba09b3fa12ef9c7c5c98c0aaafc59c7f342faeab2c9 >+SIZE (nasm-2.16.01-xdoc.tar.xz) = 867484 >diff --git a/devel/nasm/files/patch-Makefile.in b/devel/nasm/files/patch-Makefile.in >new file mode 100644 >index 000000000000..0270f58e6ea0 >--- /dev/null >+++ b/devel/nasm/files/patch-Makefile.in >@@ -0,0 +1,33 @@ >+--- Makefile.in.orig 2022-12-29 10:56:49 UTC >++++ Makefile.in >+@@ -280,26 +280,26 @@ asm/warnings.time: $(ALLOBJ_NW:.$(O)=.c) >+ $(MAKE) asm/warnings.time >+ >+ asm/warnings.time: $(ALLOBJ_NW:.$(O)=.c) >+- : > asm/warnings.time >++ touch asm/warnings.time >+ $(MAKE) $(WARNFILES:=.time) >+ >+ asm/warnings.c.time: asm/warnings.pl asm/warnings.time >+ $(RUNPERL) $(srcdir)/asm/warnings.pl c asm/warnings.c $(srcdir) >+- : > asm/warnings.c.time >++ touch asm/warnings.c.time >+ >+ asm/warnings.c: asm/warnings.c.time >+ @: Side effect >+ >+ include/warnings.h.time: asm/warnings.pl asm/warnings.time >+ $(RUNPERL) $(srcdir)/asm/warnings.pl h include/warnings.h $(srcdir) >+- : > include/warnings.h.time >++ touch include/warnings.h.time >+ >+ include/warnings.h: include/warnings.h.time >+ @: Side effect >+ >+ doc/warnings.src.time: asm/warnings.pl asm/warnings.time >+ $(RUNPERL) $(srcdir)/asm/warnings.pl doc doc/warnings.src $(srcdir) >+- : > doc/warnings.src.time >++ touch doc/warnings.src.time >+ >+ doc/warnings.src : doc/warnings.src.time >+ @: Side effect >diff --git a/devel/nasm/files/patch-d85890aa.c b/devel/nasm/files/patch-d85890aa.c >deleted file mode 100644 >index fb198aa1467c..000000000000 >--- a/devel/nasm/files/patch-d85890aa.c >+++ /dev/null >@@ -1,301 +0,0 @@ >---- Makefile.in.orig 2020-08-28 16:04:43 UTC >-+++ Makefile.in >-@@ -75,7 +75,7 @@ endif >- endif >- >- .SUFFIXES: >--.SUFFIXES: $(X) .$(O) .$(A) .xml .1 .c .i .s .txt >-+.SUFFIXES: $(X) .$(O) .$(A) .xml .1 .c .i .s .txt .time >- >- .PHONY: all doc rdf install clean distclean cleaner spotless install_rdf test >- .PHONY: install_doc everything install_everything strip perlreq dist tags TAGS >-@@ -100,7 +100,10 @@ NDISASM = disasm/ndisasm.$(O) >- NASM = asm/nasm.$(O) >- NDISASM = disasm/ndisasm.$(O) >- >--LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \ >-+PROGOBJ = $(NASM) $(NDISASM) >-+PROGS = nasm$(X) ndisasm$(X) >-+ >-+LIBOBJ_NW = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \ >- stdlib/strnlen.$(O) stdlib/strrchrnul.$(O) \ >- \ >- nasmlib/ver.$(O) \ >-@@ -122,7 +125,7 @@ LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) st >- x86/regs.$(O) x86/regvals.$(O) x86/regflags.$(O) x86/regdis.$(O) \ >- x86/disp8.$(O) x86/iflag.$(O) \ >- \ >-- asm/error.$(O) asm/warnings.$(O) \ >-+ asm/error.$(O) \ >- asm/floats.$(O) \ >- asm/directiv.$(O) asm/directbl.$(O) \ >- asm/pragma.$(O) \ >-@@ -147,15 +150,20 @@ LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) st >- \ >- disasm/disasm.$(O) disasm/sync.$(O) >- >--ALLOBJ = $(NASM) $(NDISASM) $(LIBOBJ) >-+# Warnings depend on all source files, so handle them separately >-+WARNOBJ = asm/warnings.$(O) >- >-+LIBOBJ = $(LIBOBJ_NW) $(WARNOBJ) >-+ALLOBJ_NW = $(PROGOBJ) $(LIBOBJ_NW) >-+ALLOBJ = $(PROGOBJ) $(LIBOBJ) >-+ >- SUBDIRS = stdlib nasmlib output asm disasm x86 common macros >- XSUBDIRS = test doc nsis rdoff >- DEPDIRS = . include config x86 rdoff $(SUBDIRS) >- #-- End File Lists --# >- >- all: dirs >-- $(MAKE) nasm$(X) ndisasm$(X) rdf >-+ $(MAKE) $(PROGS) rdf >- >- NASMLIB = libnasm.$(A) >- >-@@ -271,19 +279,31 @@ warnings: >- $(RM_F) $(WARNFILES) >- $(MAKE) asm/warnings.time >- >--asm/warnings.time: $(ALLOBJ:.@OBJEXT@=.c) >-+asm/warnings.time: $(ALLOBJ_NW:.$(O)=.c) >- : > asm/warnings.time >-- $(MAKE) $(WARNFILES) >-+ $(MAKE) $(WARNFILES:=.time) >- >--asm/warnings.c: asm/warnings.pl asm/warnings.time >-+asm/warnings.c.time: asm/warnings.pl asm/warnings.time >- $(RUNPERL) $(srcdir)/asm/warnings.pl c asm/warnings.c $(srcdir) >-+ : > asm/warnings.c.time >- >--include/warnings.h: asm/warnings.pl asm/warnings.time >-+asm/warnings.c: asm/warnings.c.time >-+ @: Side effect >-+ >-+include/warnings.h.time: asm/warnings.pl asm/warnings.time >- $(RUNPERL) $(srcdir)/asm/warnings.pl h include/warnings.h $(srcdir) >-+ : > include/warnings.h.time >- >--doc/warnings.src: asm/warnings.pl asm/warnings.time >-+include/warnings.h: include/warnings.h.time >-+ @: Side effect >-+ >-+doc/warnings.src.time: asm/warnings.pl asm/warnings.time >- $(RUNPERL) $(srcdir)/asm/warnings.pl doc doc/warnings.src $(srcdir) >-+ : > doc/warnings.src.time >- >-+doc/warnings.src : doc/warnings.src.time >-+ @: Side effect >-+ >- # Assembler token hash >- asm/tokhash.c: x86/insns.dat x86/regs.dat asm/tokens.dat asm/tokhash.pl \ >- perllib/phash.ph >-@@ -385,10 +405,9 @@ manpages: nasm.1 ndisasm.1 >- # Generated manpages, also pregenerated for distribution >- manpages: nasm.1 ndisasm.1 >- >--install: nasm$(X) ndisasm$(X) >-+install: $(PROGS) >- $(MKDIR_P) $(DESTDIR)$(bindir) >-- $(INSTALL_PROGRAM) nasm$(X) $(DESTDIR)$(bindir)/nasm$(X) >-- $(INSTALL_PROGRAM) ndisasm$(X) $(DESTDIR)$(bindir)/ndisasm$(X) >-+ $(INSTALL_PROGRAM) $(PROGS) $(DESTDIR)$(bindir)/ >- $(MKDIR_P) $(DESTDIR)$(mandir)/man1 >- $(INSTALL_DATA) $(srcdir)/nasm.1 $(DESTDIR)$(mandir)/man1/nasm.1 >- $(INSTALL_DATA) $(srcdir)/ndisasm.1 $(DESTDIR)$(mandir)/man1/ndisasm.1 >-@@ -397,7 +416,7 @@ clean: >- for d in . $(SUBDIRS) $(XSUBDIRS); do \ >- $(RM_F) "$$d"/*.$(O) "$$d"/*.s "$$d"/*.i "$$d"/*.$(A) ; \ >- done >-- $(RM_F) nasm$(X) ndisasm$(X) >-+ $(RM_F) $(PROGS) >- $(RM_F) nasm-*-installer-*.exe >- $(RM_F) tags TAGS >- $(RM_F) nsis/arch.nsh >-@@ -412,18 +431,18 @@ distclean: clean >- done >- $(RM_F) test/*.$(O) >- $(RM_RF) autom4te*.cache >-- $(RM_F) Makefile *.dep asm/warnings.time >-+ $(RM_F) Makefile *.dep >- >- cleaner: clean >- $(RM_F) $(PERLREQ) *.1 nasm.spec >- $(MAKE) -C doc clean >-- $(RM_F) *.dep asm/warnings.time >-+ $(RM_F) *.dep */*.time >- >- spotless: distclean cleaner >- $(RM_F) doc/Makefile >- >- strip: >-- $(STRIP) --strip-unneeded nasm$(X) ndisasm$(X) >-+ $(STRIP) --strip-unneeded $(PROGS) >- >- TAGS: >- $(RM_F) TAGS >-@@ -496,13 +515,13 @@ splint: >- splint: >- splint -weak *.c >- >--test: nasm$(X) >-+test: $(PROGS) >- cd test && $(RUNPERL) performtest.pl --nasm=../nasm *.asm >- >--golden: nasm$(X) >-+golden: $(PROGS) >- cd test && $(RUNPERL) performtest.pl --golden --nasm=../nasm *.asm >- >--travis: nasm$(X) >-+travis: $(PROGS) >- $(PYTHON3) travis/nasm-t.py run >- >- # >---- Mkfiles/msvc.mak.orig 2020-08-28 16:04:43 UTC >-+++ Mkfiles/msvc.mak >-@@ -64,7 +64,10 @@ NDISASM = disasm\ndisasm.$(O) >- NASM = asm\nasm.$(O) >- NDISASM = disasm\ndisasm.$(O) >- >--LIBOBJ = stdlib\snprintf.$(O) stdlib\vsnprintf.$(O) stdlib\strlcpy.$(O) \ >-+PROGOBJ = $(NASM) $(NDISASM) >-+PROGS = nasm$(X) ndisasm$(X) >-+ >-+LIBOBJ_NW = stdlib\snprintf.$(O) stdlib\vsnprintf.$(O) stdlib\strlcpy.$(O) \ >- stdlib\strnlen.$(O) stdlib\strrchrnul.$(O) \ >- \ >- nasmlib\ver.$(O) \ >-@@ -86,7 +89,7 @@ LIBOBJ = stdlib\snprintf.$(O) stdlib\vsnprintf.$(O) st >- x86\regs.$(O) x86\regvals.$(O) x86\regflags.$(O) x86\regdis.$(O) \ >- x86\disp8.$(O) x86\iflag.$(O) \ >- \ >-- asm\error.$(O) asm\warnings.$(O) \ >-+ asm\error.$(O) \ >- asm\floats.$(O) \ >- asm\directiv.$(O) asm\directbl.$(O) \ >- asm\pragma.$(O) \ >-@@ -111,8 +114,13 @@ LIBOBJ = stdlib\snprintf.$(O) stdlib\vsnprintf.$(O) st >- \ >- disasm\disasm.$(O) disasm\sync.$(O) >- >--ALLOBJ = $(NASM) $(NDISASM) $(LIBOBJ) >-+# Warnings depend on all source files, so handle them separately >-+WARNOBJ = asm\warnings.$(O) >- >-+LIBOBJ = $(LIBOBJ_NW) $(WARNOBJ) >-+ALLOBJ_NW = $(PROGOBJ) $(LIBOBJ_NW) >-+ALLOBJ = $(PROGOBJ) $(LIBOBJ) >-+ >- SUBDIRS = stdlib nasmlib output asm disasm x86 common macros >- XSUBDIRS = test doc nsis rdoff >- DEPDIRS = . include config x86 rdoff $(SUBDIRS) >-@@ -230,18 +238,30 @@ warnings: >- $(RM_F) $(WARNFILES) >- $(MAKE) asm\warnings.time >- >--asm\warnings.time: $(ALLOBJ:.@OBJEXT@=.c) >-+asm\warnings.time: $(ALLOBJ_NW:.$(O)=.c) >- : > asm\warnings.time >-- $(MAKE) $(WARNFILES) >-+ $(MAKE) $(WARNFILES:=.time) >- >--asm\warnings.c: asm\warnings.pl asm\warnings.time >-+asm\warnings.c.time: asm\warnings.pl asm\warnings.time >- $(RUNPERL) $(srcdir)\asm\warnings.pl c asm\warnings.c $(srcdir) >-+ : > asm\warnings.c.time >- >--include\warnings.h: asm\warnings.pl asm\warnings.time >-+asm\warnings.c: asm\warnings.c.time >-+ @: Side effect >-+ >-+include\warnings.h.time: asm\warnings.pl asm\warnings.time >- $(RUNPERL) $(srcdir)\asm\warnings.pl h include\warnings.h $(srcdir) >-+ : > include\warnings.h.time >- >--doc\warnings.src: asm\warnings.pl asm\warnings.time >-+include\warnings.h: include\warnings.h.time >-+ @: Side effect >-+ >-+doc\warnings.src.time: asm\warnings.pl asm\warnings.time >- $(RUNPERL) $(srcdir)\asm\warnings.pl doc doc\warnings.src $(srcdir) >-+ : > doc\warnings.src.time >-+ >-+doc\warnings.src : doc\warnings.src.time >-+ @: Side effect >- >- # Assembler token hash >- asm\tokhash.c: x86\insns.dat x86\regs.dat asm\tokens.dat asm\tokhash.pl \ >---- Mkfiles/openwcom.mak.orig 2020-08-28 16:04:44 UTC >-+++ Mkfiles/openwcom.mak >-@@ -53,7 +53,10 @@ NDISASM = disasm\ndisasm.$(O) >- NASM = asm\nasm.$(O) >- NDISASM = disasm\ndisasm.$(O) >- >--LIBOBJ = stdlib\snprintf.$(O) stdlib\vsnprintf.$(O) stdlib\strlcpy.$(O) & >-+PROGOBJ = $(NASM) $(NDISASM) >-+PROGS = nasm$(X) ndisasm$(X) >-+ >-+LIBOBJ_NW = stdlib\snprintf.$(O) stdlib\vsnprintf.$(O) stdlib\strlcpy.$(O) & >- stdlib\strnlen.$(O) stdlib\strrchrnul.$(O) & >- & >- nasmlib\ver.$(O) & >-@@ -75,7 +78,7 @@ LIBOBJ = stdlib\snprintf.$(O) stdlib\vsnprintf.$(O) st >- x86\regs.$(O) x86\regvals.$(O) x86\regflags.$(O) x86\regdis.$(O) & >- x86\disp8.$(O) x86\iflag.$(O) & >- & >-- asm\error.$(O) asm\warnings.$(O) & >-+ asm\error.$(O) & >- asm\floats.$(O) & >- asm\directiv.$(O) asm\directbl.$(O) & >- asm\pragma.$(O) & >-@@ -100,8 +103,13 @@ LIBOBJ = stdlib\snprintf.$(O) stdlib\vsnprintf.$(O) st >- & >- disasm\disasm.$(O) disasm\sync.$(O) >- >--ALLOBJ = $(NASM) $(NDISASM) $(LIBOBJ) >-+# Warnings depend on all source files, so handle them separately >-+WARNOBJ = asm\warnings.$(O) >- >-+LIBOBJ = $(LIBOBJ_NW) $(WARNOBJ) >-+ALLOBJ_NW = $(PROGOBJ) $(LIBOBJ_NW) >-+ALLOBJ = $(PROGOBJ) $(LIBOBJ) >-+ >- SUBDIRS = stdlib nasmlib output asm disasm x86 common macros >- XSUBDIRS = test doc nsis rdoff >- DEPDIRS = . include config x86 rdoff $(SUBDIRS) >-@@ -243,18 +251,30 @@ warnings: >- $(RM_F) $(WARNFILES) >- $(MAKE) asm\warnings.time >- >--asm\warnings.time: $(ALLOBJ:.@OBJEXT@=.c) >-+asm\warnings.time: $(ALLOBJ_NW:.$(O)=.c) >- : > asm\warnings.time >-- $(MAKE) $(WARNFILES) >-+ $(MAKE) $(WARNFILES:=.time) >- >--asm\warnings.c: asm\warnings.pl asm\warnings.time >-+asm\warnings.c.time: asm\warnings.pl asm\warnings.time >- $(RUNPERL) $(srcdir)\asm\warnings.pl c asm\warnings.c $(srcdir) >-+ : > asm\warnings.c.time >- >--include\warnings.h: asm\warnings.pl asm\warnings.time >-+asm\warnings.c: asm\warnings.c.time >-+ @: Side effect >-+ >-+include\warnings.h.time: asm\warnings.pl asm\warnings.time >- $(RUNPERL) $(srcdir)\asm\warnings.pl h include\warnings.h $(srcdir) >-+ : > include\warnings.h.time >- >--doc\warnings.src: asm\warnings.pl asm\warnings.time >-+include\warnings.h: include\warnings.h.time >-+ @: Side effect >-+ >-+doc\warnings.src.time: asm\warnings.pl asm\warnings.time >- $(RUNPERL) $(srcdir)\asm\warnings.pl doc doc\warnings.src $(srcdir) >-+ : > doc\warnings.src.time >-+ >-+doc\warnings.src : doc\warnings.src.time >-+ @: Side effect >- >- # Assembler token hash >- asm\tokhash.c: x86\insns.dat x86\regs.dat asm\tokens.dat asm\tokhash.pl & >diff --git a/devel/nasm/pkg-plist b/devel/nasm/pkg-plist >deleted file mode 100644 >index ab510606a97a..000000000000 >--- a/devel/nasm/pkg-plist >+++ /dev/null >@@ -1,22 +0,0 @@ >-bin/nasm >-bin/ndisasm >-man/man1/nasm.1.gz >-man/man1/ndisasm.1.gz >-%%RDOFF%%bin/ldrdf >-%%RDOFF%%bin/rdf2bin >-%%RDOFF%%bin/rdf2com >-%%RDOFF%%bin/rdf2ihx >-%%RDOFF%%bin/rdf2ith >-%%RDOFF%%bin/rdf2srec >-%%RDOFF%%bin/rdfdump >-%%RDOFF%%bin/rdflib >-%%RDOFF%%bin/rdx >-%%RDOFF%%man/man1/ldrdf.1.gz >-%%RDOFF%%man/man1/rdf2bin.1.gz >-%%RDOFF%%man/man1/rdf2com.1.gz >-%%RDOFF%%man/man1/rdf2ihx.1.gz >-%%RDOFF%%man/man1/rdf2ith.1.gz >-%%RDOFF%%man/man1/rdf2srec.1.gz >-%%RDOFF%%man/man1/rdfdump.1.gz >-%%RDOFF%%man/man1/rdflib.1.gz >-%%RDOFF%%man/man1/rdx.1.gz >-- >2.38.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 268528
:
238986
| 239118