FreeBSD Bugzilla – Attachment 153326 Details for
Bug 197919
port [ports-mgmt/portupgrade] does not build with Ruby-2.2 (issues on related port [databases/ruby-bdb])
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch to fix ruby-bdb with lang/ruby22
ruby-bdb-22.diff.txt (text/plain), 16.65 KB, created by
Steve Wills
on 2015-02-22 18:26:11 UTC
(
hide
)
Description:
Patch to fix ruby-bdb with lang/ruby22
Filename:
MIME Type:
Creator:
Steve Wills
Created:
2015-02-22 18:26:11 UTC
Size:
16.65 KB
patch
obsolete
>Index: Makefile >=================================================================== >--- Makefile (revision 377376) >+++ Makefile (working copy) >@@ -58,14 +58,24 @@ > > .include <bsd.port.pre.mk> > >-post-patch: > .if ${RUBY_VER} >= 2.0 >- @${REINPLACE_CMD} -e '/remove_const/d' ${WRKSRC}/src/features.rb >+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src-features.rb > .endif > > .if ${RUBY_VER} >= 2.1 >- @${REINPLACE_CMD} -e 's|RBASIC(obj)->klass = \(.*\);|RBASIC_SET_CLASS_RAW(obj, \1);|' -e 's|RCLASS(\([[:alnum:]_]*\))->m_tbl|RCLASS_M_TBL(\1)|g' ${WRKSRC}/bdbxml2/bdbxml.h ${WRKSRC}/src/common.c >+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-bdbxml2-bdbxml.h > .endif >+ >+.if ${RUBY_VER} == 2.1 >+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src-common.c-21 >+.endif >+ >+.if ${RUBY_VER} == 2.2 >+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src-common.c-22 \ >+ ${FILESDIR}/extra-patch-src-recnum.c-22 \ >+ ${FILESDIR}/extra-patch-src-cursor.c-22 >+.endif >+ > post-build: > (cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} \ > ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} rdoc) >Index: files/extra-patch-bdbxml2-bdbxml.h >=================================================================== >--- files/extra-patch-bdbxml2-bdbxml.h (revision 0) >+++ files/extra-patch-bdbxml2-bdbxml.h (working copy) >@@ -0,0 +1,11 @@ >+--- bdbxml2/bdbxml.h.orig 2011-04-06 19:35:39.000000000 +0000 >++++ bdbxml2/bdbxml.h 2015-01-22 17:03:07.000000000 +0000 >+@@ -377,7 +377,7 @@ >+ static inline void >+ rset_obj(VALUE obj) >+ { >+- RBASIC(obj)->klass = rb_cData; >++ RBASIC_SET_CLASS_RAW(obj, rb_cData); >+ RDATA(obj)->dfree = (RDF)free; >+ RDATA(obj)->dmark = 0; >+ } > >Property changes on: files/extra-patch-bdbxml2-bdbxml.h >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/extra-patch-src-common.c-21 >=================================================================== >--- files/extra-patch-src-common.c-21 (revision 0) >+++ files/extra-patch-src-common.c-21 (working copy) >@@ -0,0 +1,72 @@ >+--- src/common.c.orig 2011-04-06 19:35:39.000000000 +0000 >++++ src/common.c 2015-01-22 17:06:38.000000000 +0000 >+@@ -1570,10 +1570,10 @@ >+ #endif >+ switch(dbst->type) { >+ case DB_BTREE: >+- RBASIC(obj)->klass = bdb_cBtree; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cBtree); >+ break; >+ case DB_HASH: >+- RBASIC(obj)->klass = bdb_cHash; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cHash); >+ break; >+ case DB_RECNO: >+ { >+@@ -1581,17 +1581,17 @@ >+ >+ rb_warning("It's hard to distinguish Recnum with Recno for all versions of Berkeley DB"); >+ if ((count = bdb_is_recnum(dbst->dbp)) != -1) { >+- RBASIC(obj)->klass = bdb_cRecnum; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cRecnum); >+ dbst->len = count; >+ } >+ else { >+- RBASIC(obj)->klass = bdb_cRecno; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cRecno); >+ } >+ break; >+ } >+ #if HAVE_CONST_DB_QUEUE >+ case DB_QUEUE: >+- RBASIC(obj)->klass = bdb_cQueue; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cQueue); >+ break; >+ #endif >+ default: >+@@ -1635,29 +1635,29 @@ >+ dbst->options = BDB_NOT_OPEN; >+ cl = obj; >+ while (cl) { >+- if (cl == bdb_cBtree || RCLASS(cl)->m_tbl == RCLASS(bdb_cBtree)->m_tbl) { >++ if (cl == bdb_cBtree || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cBtree)) { >+ dbst->type = DB_BTREE; >+ break; >+ } >+- if (cl == bdb_cRecnum || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecnum)->m_tbl) { >++ if (cl == bdb_cRecnum || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cRecnum)) { >+ dbst->type = DB_RECNO; >+ break; >+ } >+- else if (cl == bdb_cHash || RCLASS(cl)->m_tbl == RCLASS(bdb_cHash)->m_tbl) { >++ else if (cl == bdb_cHash || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cHash)) { >+ dbst->type = DB_HASH; >+ break; >+ } >+- else if (cl == bdb_cRecno || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecno)->m_tbl) { >++ else if (cl == bdb_cRecno || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cRecno)) { >+ dbst->type = DB_RECNO; >+ break; >+ } >+ #if HAVE_CONST_DB_QUEUE >+- else if (cl == bdb_cQueue || RCLASS(cl)->m_tbl == RCLASS(bdb_cQueue)->m_tbl) { >++ else if (cl == bdb_cQueue || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cQueue)) { >+ dbst->type = DB_QUEUE; >+ break; >+ } >+ #endif >+- else if (cl == bdb_cUnknown || RCLASS(cl)->m_tbl == RCLASS(bdb_cUnknown)->m_tbl) { >++ else if (cl == bdb_cUnknown || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cUnknown)) { >+ dbst->type = DB_UNKNOWN; >+ break; >+ } > >Property changes on: files/extra-patch-src-common.c-21 >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/extra-patch-src-common.c-22 >=================================================================== >--- files/extra-patch-src-common.c-22 (revision 0) >+++ files/extra-patch-src-common.c-22 (working copy) >@@ -0,0 +1,137 @@ >+--- src/common.c.orig 2011-04-06 19:35:39.000000000 +0000 >++++ src/common.c 2015-01-22 17:10:32.000000000 +0000 >+@@ -1229,7 +1229,7 @@ >+ if (argc && TYPE(argv[argc - 1]) == T_HASH) { >+ VALUE v, f = argv[argc - 1]; >+ >+- if ((v = rb_hash_aref(f, rb_str_new2("txn"))) != RHASH(f)->ifnone) { >++ if ((v = rb_hash_aref(f, rb_str_new2("txn"))) != rb_hash_ifnone(f)) { >+ if (!rb_obj_is_kind_of(v, bdb_cTxn)) { >+ rb_raise(bdb_eFatal, "argument of txn must be a transaction"); >+ } >+@@ -1241,7 +1241,7 @@ >+ dbst->options |= envst->options & BDB_NO_THREAD; >+ dbst->marshal = txnst->marshal; >+ } >+- else if ((v = rb_hash_aref(f, rb_str_new2("env"))) != RHASH(f)->ifnone) { >++ else if ((v = rb_hash_aref(f, rb_str_new2("env"))) != rb_hash_ifnone(f)) { >+ if (!rb_obj_is_kind_of(v, bdb_cEnv)) { >+ rb_raise(bdb_eFatal, "argument of env must be an environnement"); >+ } >+@@ -1254,11 +1254,11 @@ >+ #if HAVE_CONST_DB_ENCRYPT >+ if (envst && (envst->options & BDB_ENV_ENCRYPT)) { >+ VALUE tmp = rb_str_new2("set_flags"); >+- if ((v = rb_hash_aref(f, rb_intern("set_flags"))) != RHASH(f)->ifnone) { >++ if ((v = rb_hash_aref(f, rb_intern("set_flags"))) != rb_hash_ifnone(f)) { >+ rb_hash_aset(f, rb_intern("set_flags"), >+ INT2NUM(NUM2INT(v) | DB_ENCRYPT)); >+ } >+- else if ((v = rb_hash_aref(f, tmp)) != RHASH(f)->ifnone) { >++ else if ((v = rb_hash_aref(f, tmp)) != rb_hash_ifnone(f)) { >+ rb_hash_aset(f, tmp, INT2NUM(NUM2INT(v) | DB_ENCRYPT)); >+ } >+ else { >+@@ -1570,10 +1570,10 @@ >+ #endif >+ switch(dbst->type) { >+ case DB_BTREE: >+- RBASIC(obj)->klass = bdb_cBtree; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cBtree); >+ break; >+ case DB_HASH: >+- RBASIC(obj)->klass = bdb_cHash; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cHash); >+ break; >+ case DB_RECNO: >+ { >+@@ -1581,17 +1581,17 @@ >+ >+ rb_warning("It's hard to distinguish Recnum with Recno for all versions of Berkeley DB"); >+ if ((count = bdb_is_recnum(dbst->dbp)) != -1) { >+- RBASIC(obj)->klass = bdb_cRecnum; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cRecnum); >+ dbst->len = count; >+ } >+ else { >+- RBASIC(obj)->klass = bdb_cRecno; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cRecno); >+ } >+ break; >+ } >+ #if HAVE_CONST_DB_QUEUE >+ case DB_QUEUE: >+- RBASIC(obj)->klass = bdb_cQueue; >++ RBASIC_SET_CLASS_RAW(obj, bdb_cQueue); >+ break; >+ #endif >+ default: >+@@ -1635,29 +1635,29 @@ >+ dbst->options = BDB_NOT_OPEN; >+ cl = obj; >+ while (cl) { >+- if (cl == bdb_cBtree || RCLASS(cl)->m_tbl == RCLASS(bdb_cBtree)->m_tbl) { >++ if (cl == bdb_cBtree || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cBtree)) { >+ dbst->type = DB_BTREE; >+ break; >+ } >+- if (cl == bdb_cRecnum || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecnum)->m_tbl) { >++ if (cl == bdb_cRecnum || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cRecnum)) { >+ dbst->type = DB_RECNO; >+ break; >+ } >+- else if (cl == bdb_cHash || RCLASS(cl)->m_tbl == RCLASS(bdb_cHash)->m_tbl) { >++ else if (cl == bdb_cHash || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cHash)) { >+ dbst->type = DB_HASH; >+ break; >+ } >+- else if (cl == bdb_cRecno || RCLASS(cl)->m_tbl == RCLASS(bdb_cRecno)->m_tbl) { >++ else if (cl == bdb_cRecno || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cRecno)) { >+ dbst->type = DB_RECNO; >+ break; >+ } >+ #if HAVE_CONST_DB_QUEUE >+- else if (cl == bdb_cQueue || RCLASS(cl)->m_tbl == RCLASS(bdb_cQueue)->m_tbl) { >++ else if (cl == bdb_cQueue || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cQueue)) { >+ dbst->type = DB_QUEUE; >+ break; >+ } >+ #endif >+- else if (cl == bdb_cUnknown || RCLASS(cl)->m_tbl == RCLASS(bdb_cUnknown)->m_tbl) { >++ else if (cl == bdb_cUnknown || RCLASS_M_TBL(cl) == RCLASS_M_TBL(bdb_cUnknown)) { >+ dbst->type = DB_UNKNOWN; >+ break; >+ } >+@@ -3004,8 +3004,8 @@ >+ >+ if (argc && TYPE(argv[argc - 1]) == T_HASH) { >+ VALUE g, f = argv[argc - 1]; >+- if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone || >+- (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) { >++ if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) || >++ (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) { >+ flags = NUM2INT(g); >+ } >+ argc--; >+@@ -3323,8 +3323,8 @@ >+ flags = 0; >+ if (argc && TYPE(argv[argc - 1]) == T_HASH) { >+ VALUE g, f = argv[argc - 1]; >+- if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone || >+- (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) { >++ if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) || >++ (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) { >+ flags = NUM2INT(g); >+ } >+ argc--; >+@@ -3348,8 +3348,8 @@ >+ flags = 0; >+ if (TYPE(argv[argc - 1]) == T_HASH) { >+ VALUE f = argv[argc - 1]; >+- if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone || >+- (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) { >++ if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) || >++ (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) { >+ flags = NUM2INT(g); >+ } >+ argc--; > >Property changes on: files/extra-patch-src-common.c-22 >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/extra-patch-src-cursor.c-22 >=================================================================== >--- files/extra-patch-src-cursor.c-22 (revision 0) >+++ files/extra-patch-src-cursor.c-22 (working copy) >@@ -0,0 +1,13 @@ >+--- src/cursor.c.orig 2015-01-22 17:37:51.000000000 +0000 >++++ src/cursor.c 2015-01-22 17:38:17.000000000 +0000 >+@@ -29,8 +29,8 @@ >+ flags = 0; >+ if (argc && TYPE(argv[argc - 1]) == T_HASH) { >+ VALUE g, f = argv[argc - 1]; >+- if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone || >+- (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) { >++ if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) || >++ (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) { >+ flags = NUM2INT(g); >+ } >+ argc--; > >Property changes on: files/extra-patch-src-cursor.c-22 >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/extra-patch-src-features.rb >=================================================================== >--- files/extra-patch-src-features.rb (revision 0) >+++ files/extra-patch-src-features.rb (working copy) >@@ -0,0 +1,18 @@ >+--- src/features.rb.orig 2011-04-06 19:35:39.000000000 +0000 >++++ src/features.rb 2015-01-22 16:40:53.000000000 +0000 >+@@ -813,7 +813,6 @@ >+ begin >+ conftest = CONFTEST_C.dup >+ class Object >+- remove_const('CONFTEST_C') >+ end >+ >+ CONFTEST_C = 'conftest.cxx' >+@@ -878,7 +877,6 @@ >+ >+ ensure >+ class Object >+- remove_const('CONFTEST_C') >+ end >+ >+ CONFTEST_C = conftest > >Property changes on: files/extra-patch-src-features.rb >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/extra-patch-src-recnum.c-22 >=================================================================== >--- files/extra-patch-src-recnum.c-22 (revision 0) >+++ files/extra-patch-src-recnum.c-22 (working copy) >@@ -0,0 +1,22 @@ >+--- src/recnum.c.orig 2011-04-06 19:35:39.000000000 +0000 >++++ src/recnum.c 2015-01-22 17:16:32.000000000 +0000 >+@@ -17,7 +17,7 @@ >+ argc++; >+ } >+ rb_hash_aset(argv[argc - 1], array, INT2FIX(0)); >+- if (rb_hash_aref(argv[argc - 1], sarray) != RHASH(argv[argc - 1])->ifnone) { >++ if (rb_hash_aref(argv[argc - 1], sarray) != rb_hash_ifnone(argv[argc - 1])) { >+ rb_hash_aset(argv[argc - 1], sarray, INT2FIX(0)); >+ } >+ rb_hash_aset(argv[argc - 1], rb_str_new2("set_flags"), INT2FIX(DB_RENUMBER)); >+@@ -697,8 +697,8 @@ >+ >+ if (argc && TYPE(argv[argc - 1]) == T_HASH) { >+ VALUE f = argv[argc - 1]; >+- if ((g = rb_hash_aref(f, rb_intern("flags"))) != RHASH(f)->ifnone || >+- (g = rb_hash_aref(f, rb_str_new2("flags"))) != RHASH(f)->ifnone) { >++ if ((g = rb_hash_aref(f, rb_intern("flags"))) != rb_hash_ifnone(f) || >++ (g = rb_hash_aref(f, rb_str_new2("flags"))) != rb_hash_ifnone(f)) { >+ flags = NUM2INT(g); >+ } >+ argc--; > >Property changes on: files/extra-patch-src-recnum.c-22 >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/patch-extconf.rb >=================================================================== >--- files/patch-extconf.rb (revision 377376) >+++ files/patch-extconf.rb (working copy) >@@ -1,5 +1,5 @@ >---- ./extconf.rb.orig 2011-04-06 19:35:39.000000000 +0000 >-+++ ./extconf.rb 2014-01-03 01:45:56.334209519 +0000 >+--- extconf.rb.orig 2011-04-06 19:35:39.000000000 +0000 >++++ extconf.rb 2015-01-22 14:56:21.000000000 +0000 > @@ -50,7 +50,7 @@ > rdoc: docs/doc/index.html > >@@ -9,3 +9,21 @@ > > ri: > \t@-(rdoc -r docs/*rb) >+@@ -67,7 +67,7 @@ >+ Dir.foreach('tests') do |x| >+ next if /^\./ =~ x || /(_\.rb|~)$/ =~ x >+ next if FileTest.directory?(x) >+- make.print "\t-#{CONFIG['RUBY_INSTALL_NAME']} tests/#{x}\n" >++ make.print "\t-#{RbConfig::CONFIG['ruby_install_name']} tests/#{x}\n" >+ end >+ ensure >+ make.close >+@@ -76,7 +76,7 @@ >+ subdirs.each do |subdir| >+ STDERR.puts("#{$0}: Entering directory `#{subdir}'") >+ Dir.chdir(subdir) >+- system("#{CONFIG['RUBY_INSTALL_NAME']} extconf.rb " + ARGV.join(" ")) >++ system("#{RbConfig::CONFIG['ruby_install_name']} extconf.rb " + ARGV.join(" ")) >+ Dir.chdir("..") >+ STDERR.puts("#{$0}: Leaving directory `#{subdir}'") >+ end >Index: files/patch-src-extconf.rb >=================================================================== >--- files/patch-src-extconf.rb (revision 0) >+++ files/patch-src-extconf.rb (working copy) >@@ -0,0 +1,23 @@ >+--- src/extconf.rb.orig 2015-01-22 16:09:31.000000000 +0000 >++++ src/extconf.rb 2015-01-22 16:09:34.000000000 +0000 >+@@ -36,16 +36,16 @@ >+ >+ if unknown = enable_config("unknown") >+ libs = if CONFIG.key?("LIBRUBYARG_STATIC") >+- Config::expand(CONFIG["LIBRUBYARG_STATIC"].dup).sub(/^-l/, '') >++ RbConfig::expand(CONFIG["LIBRUBYARG_STATIC"].dup).sub(/^-l/, '') >+ else >+- Config::expand(CONFIG["LIBRUBYARG"].dup).sub(/lib([^.]*).*/, '\\1') >++ RbConfig::expand(CONFIG["LIBRUBYARG"].dup).sub(/lib([^.]*).*/, '\\1') >+ end >+ unknown = find_library(libs, "ruby_init", >+- Config::expand(CONFIG["archdir"].dup)) >++ RbConfig::expand(CONFIG["archdir"].dup)) >+ end >+ >+ inc_dir, lib_dir = dir_config("db", "/usr/include", "/usr/lib") >+-case Config::CONFIG["arch"] >++case RbConfig::CONFIG["arch"] >+ when /solaris2/ >+ $DLDFLAGS ||= "" >+ $DLDFLAGS += " -R#{lib_dir}" > >Property changes on: files/patch-src-extconf.rb >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property
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 197919
:
153313
| 153326