50 Commits

Author SHA1 Message Date
Greg Lewis
10fa5a5e3c java/openjdk17: Update to 17.0.15 2025-04-20 15:26:19 -07:00
Greg Lewis
83ca9ee5d2 java/openjdk17: Update to 17.0.14 2025-02-14 18:54:42 -08:00
Xavier Beaudouin
2cf6bc1add java/openjdk*: Update pkg-message information about fdescfs and procfs
OpenJDK installation inform that fdescfs(5) and procfs(5) should be
mounted when using OpenJDK.
After doing some test and some traces, it seems that this should be
no so usefull, some applications will require it, but most of java
applications doesn't seems to suffer to work or performance when
such pseudo FS is not mounted.

So this change request permit to let local administrator to decide if
it is really needed or not.

Sponsored by:	Entersekt (previously Modirum MDpay)
Sponsored by:	Klara Inc.
Approved by:	0mp (mentor)
PR:	283364
2025-01-06 15:16:58 +01:00
Greg Lewis
126c42923c java/openjdk17: Update to 17.0.13 2024-11-11 17:10:53 -08:00
Dimitry Andric
3378cc494d java/openjdk8 java/openjdk11 java/openjdk17 java/openjdk18 java/openjdk19 java/openjdk20 java/openjdk21 java/openjdk22: disable warnings as errors
Generally disable warnings-as-errors for all openjdk ports, removing all
the conditionals we have now for particular architectures and/or
compilers. It does not make sense to have this on by default, unless you
are an upstream maintainer.

PR:		281188
Approved by:	maintainer timeout (2 weeks)
MFH:		2024Q3
2024-09-15 13:36:13 +02:00
Dimitry Andric
4c37f9f5f2 java/openjdk17: fix build with clang 19
Clang 19 has a number of new warnings, and because java/openjdk17
compiles with -Werror by default, it results in errors similar to:

    /wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.12-7-1/src/hotspot/os/posix/signals_posix.cpp:1681:20: error: cast from 'void (*)(int, siginfo_t *, ucontext_t *)' (aka 'void (*)(int, __siginfo *, __ucontext *)') to 'void (*)(int)' converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
     1681 |   act.sa_handler = (void (*)(int)) SR_handler;
          |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~

I propose to disable warnings-as-errors for this port, similar to what
is already done for openjdk8 and openjdk11. It does not make sense to
have this on by default, unless you are an upstream maintainer.

PR:		280561
Approved by:	glewis (maintainer)
MFH:		2024Q3
2024-08-07 18:44:49 +02:00
Greg Lewis
94417f8e69 java/openjdk17: Update to 17.0.12 2024-07-27 23:08:32 -07:00
Rene Ladan
19d68720f1 all: drop support for FreeBSD 13.2 which reached EOL today
Thanks again to jbeich for noticing various things I overlooked.

Reviewed by:	acm, ashish, eduardo, ehaupt, eugen, jbeich, martymac, mat, nobukata, sunpoet, tagattie, yuri, arrowd, kde
Differential Revision:	https://reviews.freebsd.org/D45141
2024-07-01 22:27:23 +02:00
Greg Lewis
2bca6d814d java/openjdk17: Update to 17.0.11 2024-05-01 20:16:06 -07:00
Greg Lewis
4b117286bf java/openjdk17: Fix the build on arm64 2024-02-25 12:27:54 -08:00
Michael Osipov
d901bf5df9 java/openjdk*: Allow users to specify an alternative cacerts file
Similar to certificate management with certctl(8) users can use custom
enterprise CAs. These need to be assembled into a custom cacerts file.
Therefore, an admin can install a custom truststore to an arbitrary
location and have the OpenJDK port symlink to it by adding
OPENJDK_SYMLINK_CACERTS to make.conf.
E.g., OPENJDK_SYMLINK_CACERTS=/usr/local/etc/ssl/cacerts.

PR:		229329
Approved by:	jrm (mentor), otis (mentor), glewis
Differential Revision:	https://reviews.freebsd.org/D42720
2024-02-09 20:52:07 +01:00
Greg Lewis
eeca11d205 java/openjdk17: Update to 17.0.10 2024-02-04 14:51:33 -08:00
Piotr Kubaj
e2a8a2acd9 java/openjdk17: drop ELFv1 support 2024-01-05 22:00:51 +01:00
Muhammad Moinur Rahman
bbab7f59e9 */*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
  ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
  Also move conditional flags for non sparc64/arm ARCH to fixed flags.

Reviewed by:	brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
2023-12-31 01:37:05 +01:00
Mikael Urankar
5db81da56a java/openjdk17: Fix build on aarch64
PR:		274940
Approved by:	glewis@
2023-11-20 12:39:00 +01:00
Piotr Kubaj
d1191b769e java/openjdk17: fix build on powerpc64*
Backport the patch from openjdk19 to fix the recently appearing error:
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.9-9-1/src/hotspot/os_cpu/bsd_ppc/os_bsd_ppc.cpp:194:29: error: no member named 'is_safefetch_fault' in 'StubRoutines'
    if (pc && StubRoutines::is_safefetch_fault(pc)) {
              ~~~~~~~~~~~~~~^
/wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.9-9-1/src/hotspot/os_cpu/bsd_ppc/os_bsd_ppc.cpp:195:52: error: no member named 'continuation_for_safefetch_fault' in 'StubRoutines'
      os::Posix::ucontext_set_pc(uc, StubRoutines::continuation_for_safefetch_fault(pc));
                                     ~~~~~~~~~~~~~~^
2023-10-25 08:43:52 +02:00
Greg Lewis
bc0e38d0f0 java/openjdk17: Update to 17.0.9 2023-10-20 17:15:46 -07:00
Dimitry Andric
2bd641cc19 java/openjdk17: fix build with lld 17
Building java/openjdk17 with lld 17 results in the following link errors:

  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZ21WB_HandshakeWalkStackE16TraceSelfClosure' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZ26WB_AsyncHandshakeWalkStackE16TraceSelfClosure' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN12JvmtiEnvBase27check_for_periodic_clean_upEvE28ThreadInsideIterationClosure' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN15G1RemSetSummary6updateEvE11CollectData' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN16SATBMarkQueueSet22set_active_all_threadsEbbE22SetThreadActiveClosure' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN16SATBMarkQueueSet23abandon_partial_markingEvE25AbandonThreadQueueClosure' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN18G1ConcurrentRefine30get_and_reset_refinement_statsEvE12CollectStats' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet12abandon_logsEvE23AbandonThreadLogClosure' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet16concatenate_logsEvE27ConcatenateThreadLogClosure' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN19G1DirtyCardQueueSet30get_and_reset_refinement_statsEvE12CollectStats' failed: symbol not defined
  ld: error: version script assignment of 'SUNWprivate_1.1' to symbol '_ZTVZN7Threads25change_thread_claim_tokenEvE11ResetClaims' failed: symbol not defined
  c++: error: linker command failed with exit code 1 (use -v to see invocation)

This is because lld 17 defaults to errors when undefined symbols are
referenced in linker version scripts. The problem is due to the Makefile
JvmMapfile.gmk, which generates a linker version script. It uses "nm
--defined-only" to dump symbols in object files, but this also includes
local (hidden) symbols. Add "--extern-only" to make it only dump global
symbols.

PR:		274109
Approved by:	maintainer timeout (10 days)
MFH:		2023Q4
2023-10-06 19:48:54 +02:00
Daniel Engberg
664a2fa1e5 */*: Bump jpeg-turbo users treewide
New major version 3.0.0
2023-07-28 19:13:17 +02:00
Greg Lewis
d504e5dca4 java/openjdk17: Update to 17.0.8 2023-07-22 23:58:12 -07:00
Greg Lewis
261cada65b java/openjdk17: Update to 17.0.7 2023-04-29 10:28:30 -07:00
Greg Lewis
f1d77a965b java/openjdk17: Fix use of printf (causes build failures for poudriere)
PR:             267690
Obtained from:  Michael Osipov <michael.osipov@siemens.com>
2023-04-16 15:48:44 -07:00
Greg Lewis
b39d592147 java/openjdk17: Fix the build on some aarch64 machines
* Disable CompressedClassPointers on aarch64.  This fixes the build
  on some aarch64 machines where it previously failed, e.g. RPI4,
  and doesn't seem to affect the build on others (AWS aarch64 hardware).

This is based on and uses a patch initially created by ronald@

PR:		260187
Tested by:	ronald@
2023-01-23 21:19:21 -08:00
Greg Lewis
15284be7b3 java/openjdk17: Update to 17.0.6 2023-01-22 22:06:15 -08:00
Dimitry Andric
4d093f4f68 java/openjdk17: fix build with clang 15
During an exp-run for llvm 15 (see bug 265425), it turned out that
java/openjdk17 failed to build with clang 15:

  /wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:374:41: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
      proxies = (*g_proxy_resolver_lookup)(resolver, uri, NULL, &error);
                                          ^
  /wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:393:63: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
                                  (*g_network_address_parse_uri)(proxies[i], 0,
                                                                ^
  /wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:398:70: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
                              phost = (*g_network_address_get_hostname)(conn);
                                                                       ^
  /wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:399:66: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
                              pport = (*g_network_address_get_port)(conn);
                                                                   ^
  /wrkdirs/usr/ports/java/openjdk17/work/jdk17u-jdk-17.0.5-8-1/src/java.base/unix/native/libnet/DefaultProxySelector.c:435:22: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
          (*g_strfreev)(proxies);
                       ^

This is because clang 15 warns by default about functions without
arguments in their prototypes. Fix this by suppressing the warning.

PR:		268366
Approved by:	portmgr (tcberner)
MFH:		2022Q4
2022-12-18 18:36:27 +01:00
Greg Lewis
381f9126c0 java/openjdk17: Use the distributed cacerts
PR:		266723
Reported by:	Michael Osipov <michael.osipov@siemens.com>
2022-11-03 23:30:13 -07:00
Greg Lewis
0d0710f366 java/openjdk17: Update to 17.0.5 2022-10-29 15:21:06 -07:00
Greg Lewis
19899c4999 java/openjdk17: Update to 17.0.4.1 2022-09-25 16:06:59 -07:00
Stefan Eßer
fb16dfecae Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.

This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.

Approved by:		portmgr (tcberner)
2022-09-07 23:58:51 +02:00
Stefan Eßer
b7f05445c0 Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
2022-09-07 23:10:59 +02:00
Greg Lewis
f20eed28f0 java/openjdk17: Update to 17.0.4 2022-08-02 06:14:11 -07:00
Sean Farley
0de164bdb5 java/openjdk17: Fix an NPE when using a multi-screen X11 setup
PR:		264356
Reported by:	scf@
2022-05-30 17:42:52 -07:00
Rene Ladan
c7d1c247d8 cleanup: remove expired versions of OpenJDK (12 through 16)
Adjust ports depending on expired versions of OpenJDK:
- biology/snpeff: 12+ -> 17+
- devel/RStudio: 12 -> 11
- www/closure-compiler: 13 -> 11+

Allow java/openjdk17 to use java/openjdk17-bootstrap on i386
too, this builds just fine on 13.1-i386

Remove jdk12-doc as it is no longer relevant.

Clean up Java version calculations in bsd.java.mk

Reviewed by: jwb, java (glewis)

Differential Revision: https://reviews.freebsd.org/D35280
2022-05-24 22:09:35 +02:00
Greg Lewis
49c485c6c1 java/openjdk17: Update to 17.0.3 GA 2022-05-04 19:06:32 -07:00
Dimitry Andric
e406118f77 java/openjdk13 java/openjdk14 java/openjdk15 java/openjdk16 java/openjdk17 java/openjdk17-jre: fix build with clang 14
During an exp-run for llvm 14 (see bug 261742), it turned out that
java/openjdk13 and java/openjdk17 fail to build with clang 14 (but this
also affects openjdk14 through 16):

=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_serviceThread.o:
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
             ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: note: cast one or both operands to int to silence this warning
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: note: cast one or both operands to int to silence this warning
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: note: cast one or both operands to int to silence this warning
/wrkdirs/usr/ports/java/openjdk13/work/jdk13u-jdk-13.0.10-5-1/src/hotspot/share/runtime/serviceThread.cpp:133:15: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical]
      while (((sensors_changed = LowMemoryDetector::has_pending_requests()) |
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ... (rest of output omitted)

Although the warning is normally an indication of a potential problem,
in this case a comment just before the affected code explictly mentions
the reason for using bitwise '|' instead of logical '||':

      // Process all available work on each (outer) iteration, rather than
      // only the first recognized bit of work, to avoid frequently true early
      // tests from potentially starving later work.  Hence the use of
      // arithmetic-or to combine results; we don't want short-circuiting.

(See
<https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/serviceThread.cpp#L140>)

Therefore, we should suppress -Wbitwise-instead-of-logical for clang 14
and higher.

PR:		262845
Approved by:	portmgr (build fix blanket)
MFH:		2022Q2
2022-04-04 09:56:40 +02:00
Greg Lewis
57a7e706e6 java/openjdk17: Update to 17.0.2 GA 2022-02-05 20:41:36 -08:00
Jung-uk Kim
701f037632 java/openjdk17-jre: Add JRE-only package for java/openjdk17 2022-01-12 21:43:58 -05:00
Greg Lewis
4807e7f988 java/openjdk17: Add i386 support 2021-12-31 01:09:54 -08:00
Piotr Kubaj
69cdd4b12e java/openjdk17: allow bootstrapping on powerpc64le with bootstrap-openjdk17 2021-12-20 12:45:04 +00:00
Piotr Kubaj
9089fb036d java/openjdk17: use java/bootstrap-openjdk17 on powerpc64 elfv2 2021-12-20 01:56:41 +00:00
Greg Lewis
11b6514a01 java/openjdk17: Use the bootstrap port on supported ARCHs 2021-11-27 08:50:26 -08:00
Greg Lewis
c6c4d2ead2 java/openjdk17: Fix WWW link to point to JDK 17
PR:		259167
Reported by:	cedric@precidata.com
2021-11-23 22:42:07 -08:00
Greg Lewis
a9d52e329d java/openjdk17: Update to 17.0.1 2021-10-31 11:07:41 -07:00
Dimitry Andric
3822416493 java/openjdk*: work around UB in markOopDesc, fix builds with clang 13
During an exp-run for llvm 13 (see bug 258209), it turned out that
java/openjdk11 through openjdk13 fail to build with clang 13:

=== Output from failing command(s) repeated here ===
* For target jdk__packages_attribute.done:

These crashes are all caused by the markOop/markOopDesc classes, which
are used to keep track of objects, and which are 'marked' using the low
few bits. (See
https://github.com/openjdk/jdk13u/blob/master/src/hotspot/share/oops/markOop.hpp
).

After some laborious bisecting, I found out that these crashes start
occuring after the upstream commit https://github.com
/llvm/llvm-project/commit/16d03818412 (Return "[CGCall] Annotate this
argument with alignment").

What happens afterwards, is that clang considers the "this" pointer to
always be aligned to the alignment of the actual object, and then
masking or adding a few low bits is not working as expected.

The reason openjdk14 and higher work fine with clang 13, and don't crash
similarly, is that the OpenJDK people completely redid the
markOop/markOopDesc classes in
ae5615c614
("8229258: Rework markOop and markOopDesc into a simpler mark word value
carrier"). E.g, the markOopDesc class was renamed to markWord, and
*stores* a pointer-like value instead of *being* a pointer-like value.
This is a much safer way of handling things.

However, this upstream commit is *very* large, as are a few of its
follow-ups, which is probably the reason why it has not been backported
to JDKs <= 13. I tried manually backporting it, but got lost in many
nasty patch conflicts and problems.

As a workaround, build openjdk8 through 13 with clang12 from the
devel/llvm12 port, for the time being.

In addition, allow openjdk14 through 17 to be built with clang 13, by
adding -Wno-unused-but-set-parameter to the compilation flags.

PR:		258954
Approved by:	maintainer timeout (2 weeks)
MFH:		2021Q4
2021-10-16 14:22:03 +02:00
Greg Lewis
c1b344b011 java/openjdk17: Fix libfontmanager linkage
* Backport the fix from jdk17u so that --with-harfbuzz=system adds
  -lharfbuzz when linking libfontmanager.so

Reported by:	barulheira@gmail.com
2021-10-09 17:28:41 -07:00
Mikael Urankar
fb734e4565 java/openjdk17: Fix build on aarch64.
Fully initialize FrameForm: Corrects adlc segfault when malloc junk options are set.

Approved by:	portmgr (build fix blanket)
2021-10-05 14:06:38 +02:00
Mikael Urankar
9c7b32b9b7 java/openjdk17: Remove enable-aot configure argument.
The Experimental AOT and JIT Compiler were remove in OpenJDK17:
https://openjdk.java.net/jeps/410

Remove this configure argument as it causes build failure on aarch64:
configure: error: unrecognized options: --enable-aot

Approved by:	portmgr (build fix blanket)
2021-10-05 14:00:36 +02:00
Piotr Kubaj
225ed0ac76 java/openjdk17: enable on powerpc64
While here, sort ONLY_FOR_ARCHS.
2021-09-30 22:19:01 +00:00
Piotr Kubaj
670c3c8cd9 java/openjdk17: port to powerpc64le 2021-09-29 21:55:53 +00:00
Greg Lewis
1b1bfbaab2 java/openjdk17: Add a port of OpenJDK 17
* Add a port of OpenJDK 17
* Restrict to amd64 and aarch64 until more platforms are tested
2021-09-25 11:28:38 -07:00