<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/6934b0ab3b0be5792589343829bc44e76df9941e">https://github.com/macports/macports-ports/commit/6934b0ab3b0be5792589343829bc44e76df9941e</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 6934b0ab3b0 ipsw: new port (3.1.456)
</span>6934b0ab3b0 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 6934b0ab3b0be5792589343829bc44e76df9941e
</span>Author: Keto <therealketo@gmail.com>
AuthorDate: Mon Mar 18 19:35:00 2024 -0400

<span style='display:block; white-space:pre;color:#404040;'>    ipsw: new port (3.1.456)
</span>---
 security/ipsw/Portfile                      | 65 +++++++++++++++++++++++++++++
 security/ipsw/files/reproducible-build.diff | 47 +++++++++++++++++++++
 2 files changed, 112 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/ipsw/Portfile b/security/ipsw/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f19130be31d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/ipsw/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,65 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem              1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               golang 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+go.setup                github.com/blacktop/ipsw 3.1.456 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from     archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories              security devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license                 MIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms               {darwin >= 11}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+installs_libs           no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers             {@TheRealKeto gmail.com:therealketo} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description             iOS/macOS Research Swiss Army Knife
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description        {*}${description}. Everything you need to start \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        researching Apple security and internals.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums               rmd160  4080714c4c112f4a959f0bd470e230eae8cf0fda \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  0e5a54d8e526186d8b904d1cdaec5930c6f92d89497754bb1aaefac43014bc58 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    4028544
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args          -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles              reproducible-build.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Vendored libraries cause failure, fetch them at build time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+go.offline_build        no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.args-append       -ldflags \"-s -w\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -ldflags \"-X ${go.package}/cmd/ipsw/cmd.AppVersion=${version}\"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.post_args-append  ./cmd/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-build {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Generate shell completions for supported shells
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach shell {zsh bash fish} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system -W ${worksrcpath} "./${name} completion ${shell} > ipsw.${shell}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Generate individual command manpages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    file mkdir ${worksrcpath}/man
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "${worksrcpath}/${name} man ${worksrcpath}/man"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 755 ${worksrcpath}/${name} ${destroot}${prefix}/bin/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    file copy {*}[glob ${worksrcpath}/man/*.1] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/share/man/man1/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/share/zsh/site-functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 644 ${worksrcpath}/${name}.zsh \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/share/zsh/site-functions/_${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/share/bash-completion/completions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 644 ${worksrcpath}/${name}.bash \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/share/bash-completion/completions/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/share/fish/vendor_completion.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 644 ${worksrcpath}/${name}.fish \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/share/fish/vendor_completion.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 644 -W ${worksrcpath} LICENSE README.md \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/ipsw/files/reproducible-build.diff b/security/ipsw/files/reproducible-build.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..23fa21041dc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/ipsw/files/reproducible-build.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,47 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -urN a/cmd/ipsw/cmd/class_dump.go b/cmd/ipsw/cmd/class_dump.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/cmd/ipsw/cmd/class_dump.go   2024-03-05 21:03:07.000000000 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/cmd/ipsw/cmd/class_dump.go   2024-03-18 23:19:42.000000000 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,7 +132,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Headers:     viper.GetBool("class-dump.headers"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ObjcRefs:    viper.GetBool("class-dump.refs"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Deps:        viper.GetBool("class-dump.deps"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  IpswVersion: fmt.Sprintf("Version: %s, BuildTime: %s", strings.TrimSpace(AppVersion), strings.TrimSpace(AppBuildTime)),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  IpswVersion: fmt.Sprintf("Version: %s", strings.TrimSpace(AppVersion)),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Color:       viper.GetBool("color") && !viper.GetBool("no-color"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Theme:       viper.GetString("class-dump.theme"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Output:      viper.GetString("class-dump.output"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -urN a/cmd/ipsw/cmd/root.go b/cmd/ipsw/cmd/root.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/cmd/ipsw/cmd/root.go 2024-03-05 21:03:07.000000000 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/cmd/ipsw/cmd/root.go 2024-03-18 23:07:10.000000000 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,8 +50,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Verbose bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // AppVersion stores the plugin's version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AppVersion string
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // AppBuildTime stores the plugin's build time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  AppBuildTime string
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // rootCmd represents the base command when called without any subcommands
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -urN a/cmd/ipsw/cmd/swift_dump.go b/cmd/ipsw/cmd/swift_dump.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/cmd/ipsw/cmd/swift_dump.go   2024-03-05 21:03:07.000000000 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/cmd/ipsw/cmd/swift_dump.go   2024-03-18 23:14:01.000000000 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -121,7 +121,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Interface:   viper.GetBool("swift-dump.interface"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Deps:        viper.GetBool("swift-dump.deps"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Demangle:    doDemangle,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  IpswVersion: fmt.Sprintf("Version: %s, BuildTime: %s", strings.TrimSpace(AppVersion), strings.TrimSpace(AppBuildTime)),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  IpswVersion: fmt.Sprintf("Version: %s", strings.TrimSpace(AppVersion)),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Color:       viper.GetBool("color") && !viper.GetBool("no-color"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Theme:       viper.GetString("swift-dump.theme"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   Output:      viper.GetString("swift-dump.output"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -urN a/cmd/ipsw/cmd/version.go b/cmd/ipsw/cmd/version.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/cmd/ipsw/cmd/version.go      2024-03-05 21:03:07.000000000 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/cmd/ipsw/cmd/version.go      2024-03-18 23:19:53.000000000 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,6 +38,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Aliases: []string{"v"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Short:   "Print the version number of ipsw",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Run: func(cmd *cobra.Command, args []string) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          fmt.Printf("Version: %s, BuildTime: %s\n", strings.TrimSpace(AppVersion), strings.TrimSpace(AppBuildTime))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          fmt.Printf("Version: %s\n", strings.TrimSpace(AppVersion))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span></pre><pre style='margin:0'>

</pre>