Compare commits

..

No commits in common. "c8" and "c10s-private-than" have entirely different histories.

15 changed files with 233 additions and 616 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

30
.gitignore vendored
View File

@ -1 +1,29 @@
SOURCES/powerpc-utils-1.3.10.tar.gz powerpc-utils-1.2.2.tar.gz
/powerpc-utils-1.2.6.tar.gz
/powerpc-utils-1.2.10.tar.gz
/powerpc-utils-1.2.11.tar.gz
/powerpc-utils-1.2.12.tar.gz
/powerpc-utils-1.2.14.tar.gz
/powerpc-utils-1.2.15.tar.gz
/powerpc-utils-1.2.16.tar.gz
/powerpc-utils-1.2.17.tar.gz
/powerpc-utils-1.2.18.tar.gz
/powerpc-utils-1.2.19.tar.gz
/powerpc-utils-1.2.20.tar.gz
/powerpc-utils-1.2.22.tar.gz
/powerpc-utils-1.2.23.tar.gz
/powerpc-utils-1.2.24.tar.gz
/powerpc-utils-1.2.27.tar.gz
/v1.3.0.tar.gz
/v1.3.1.tar.gz
/v1.3.3.tar.gz
/powerpc-utils-1.3.4.tar.gz
/powerpc-utils-1.3.5.tar.gz
/powerpc-utils-1.3.6.tar.gz
/powerpc-utils-1.3.7.tar.gz
/powerpc-utils-1.3.8.tar.gz
/powerpc-utils-1.3.9.tar.gz
/powerpc-utils-1.3.10.tar.gz
/powerpc-utils-1.3.11.tar.gz
/powerpc-utils-1.3.12.tar.gz
/powerpc-utils-1.3.13.tar.gz

View File

@ -1,11 +0,0 @@
diff -up powerpc-utils-1.3.10/Makefile.am.me powerpc-utils-1.3.10/Makefile.am
--- powerpc-utils-1.3.10/Makefile.am.me 2022-06-03 12:35:01.335312481 +0200
+++ powerpc-utils-1.3.10/Makefile.am 2022-06-03 14:11:58.453820076 +0200
@@ -229,7 +229,6 @@ install-data-hook:
$(INSTALL_DATA) systemd/smtstate.service $(DESTDIR)${systemd_unit_dir}/
$(INSTALL_DATA) systemd/hcn-init.service $(DESTDIR)${systemd_unit_dir}/
$(INSTALL_DATA) var/lib/powerpc-utils/smt.state $(DESTDIR)/var/lib/@PACKAGE@/
- $(INSTALL_SCRIPT) scripts/functions.suse $(DESTDIR)/usr/lib/@PACKAGE@/
$(INSTALL_SCRIPT) scripts/smtstate $(DESTDIR)@sbindir@
sed -i -e 's,$${exec_prefix},@prefix@,g' $(DESTDIR)${systemd_unit_dir}/smt_off.service
sed -i -e 's,$${exec_prefix},@prefix@,g' $(DESTDIR)${systemd_unit_dir}/smtstate.service

View File

@ -1,84 +0,0 @@
commit 73ba26c1240a25e7699449e82cfc09dad10fed80
Author: Sathvika Vasireddy <sv@linux.ibm.com>
Date: Fri Dec 9 15:26:46 2022 +0530
lparstat: Fix negative values seen while running lparstat with -E option
Negative values are seen while running lparstat with -E option.
This is because delta_purr value is less than delta_idle_purr.
Given that these values are read from different sources, a
small variation in the values is possible. So, in such cases,
round down delta_idle_purr to delta_purr.
Without this patch:
=====
System Configuration
type=Dedicated mode=Capped smt=8 lcpu=240 mem=67033290112 kB cpus=0
ent=240.00
---Actual--- -Normalized-
%busy %idle Frequency %busy %idle
------ ------ ------------- ------ ------
-0.03 100.02 3.93GHz[111%] 0.01 110.97
0.00 100.00 3.93GHz[111%] 0.01 110.99
-0.04 100.03 3.93GHz[111%] 0.01 110.98
0.06 99.95 3.93GHz[111%] 0.01 110.99
0.02 99.98 3.93GHz[111%] 0.01 110.99
=====
With this patch:
=====
System Configuration
type=Dedicated mode=Capped smt=8 lcpu=240 mem=67033290112 kB cpus=0
ent=240.00
---Actual--- -Normalized-
%busy %idle Frequency %busy %idle
------ ------ ------------- ------ ------
0.03 99.96 3.93GHz[111%] 0.01 110.98
0.00 100.00 3.93GHz[111%] 0.01 110.99
0.03 99.97 3.93GHz[111%] 0.01 110.99
0.00 100.00 3.93GHz[111%] 0.01 110.99
0.09 99.90 3.93GHz[111%] 0.01 110.99
=====
Reported-by: Shirisha Ganta <shirisha.ganta1@ibm.com>
Signed-off-by: Sathvika Vasireddy <sv@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/lparstat.c b/src/lparstat.c
index 31a4ee8..eebba1f 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -492,6 +492,15 @@ void get_cpu_util_purr(struct sysentry *unused_se, char *buf)
delta_purr = get_delta_value("purr");
delta_idle_purr = get_delta_value("idle_purr");
+ /*
+ * Given that these values are read from different
+ * sources (purr from lparcfg and idle_purr from sysfs),
+ * a small variation in the values is possible.
+ * In such cases, round down delta_idle_purr to delta_purr.
+ */
+ if (delta_idle_purr > delta_purr)
+ delta_idle_purr = delta_purr;
+
physc = (delta_purr - delta_idle_purr) / delta_tb;
physc *= 100.00;
@@ -507,6 +516,15 @@ void get_cpu_idle_purr(struct sysentry *unused_se, char *buf)
delta_purr = get_delta_value("purr");
delta_idle_purr = get_delta_value("idle_purr");
+ /*
+ * Given that these values are read from different
+ * sources (purr from lparcfg and idle_purr from sysfs),
+ * a small variation in the values is possible.
+ * In such cases, round down delta_idle_purr to delta_purr.
+ */
+ if (delta_idle_purr > delta_purr)
+ delta_idle_purr = delta_purr;
+
physc = (delta_purr - delta_idle_purr) / delta_tb;
idle = (delta_purr / delta_tb) - physc;
idle *= 100.00;

View File

@ -1,46 +0,0 @@
commit dee15756bcb287ccf39a904be07c90107b13844b
Author: Laurent Dufour <ldufour@linux.ibm.com>
Date: Wed May 3 10:50:15 2023 +0200
lparstat: Fix offline threads uninitialized entries
When some threads are offline, lparstat -E is failing like that:
$ ppc64_cpu --info # CPU 20 is offline
Core 0: 0* 1* 2* 3* 4* 5* 6* 7*
Core 1: 8* 9* 10* 11* 12* 13* 14* 15*
Core 2: 16* 17* 18* 19* 20 21* 22* 23*
Core 3: 24* 25* 26* 27* 28* 29* 30* 31*
Core 4: 32* 33* 34* 35* 36* 37* 38* 39*
Core 5: 40* 41* 42* 43* 44* 45* 46* 47*
$ lparstat -E
Failed to read /sys/devices/system/cpu/cpu0/spurr
The message is complaining about CPU0 but the real issue is that in
parse_sysfs_values() the test cpu_sysfs_fds[i].spurr >= 0 is valid even if
the entry has not been initialized (cpu_sysfs_fds is alloc cleared). So
if the number of threads online seen in assign_cpu_sysfs_fds is lower than
threads_in_system, the loop in parse_sysfs_values() will read uninitialized
entry, where .cpu=0.
To prevent that, unset entries in the cpu_sysfs_fds should have the spurr
fd set to -1.
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/lparstat.c b/src/lparstat.c
index a9e7bce..d2fdb3f 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -163,6 +163,10 @@ static int assign_cpu_sysfs_fds(int threads_in_system)
cpu_idx++;
}
+ /* Mark extra slots for offline threads unset, see parse_sysfs_values */
+ for (; cpu_idx < threads_in_system; cpu_idx++)
+ cpu_sysfs_fds[cpu_idx].spurr = -1;
+
return 0;
error:
fprintf(stderr, "Failed to open %s: %s\n",

View File

@ -1,93 +0,0 @@
commit b2672fa3d462217ccd057a2cd307af2448e78757
Author: Laurent Dufour <ldufour@linux.ibm.com>
Date: Wed May 3 10:50:14 2023 +0200
lparstat: report mixed SMT state
when SMT state is mixed like this one (CPU 4 is offline):
$ ppc64_cpu --info
Core 0: 0* 1* 2* 3* 4 5* 6* 7*
Core 1: 8* 9* 10* 11* 12* 13* 14* 15*
Core 2: 16* 17* 18* 19* 20* 21* 22* 23*
Core 3: 24* 25* 26* 27* 28* 29* 30* 31*
Core 4: 32* 33* 34* 35* 36* 37* 38* 39*
Core 5: 40* 41* 42* 43* 44* 45* 46* 47*
$ ppc64_cpu --smt
SMT=7: 0
SMT=8: 1-5
ppc64_cpu --smt is handling that nicely but lparstat failed reporting the
SMT state:
$ /usr/sbin/lparstat
Failed to get smt state
System Configuration
type=Dedicated mode=Capped smt=Capped lcpu=6 mem=65969728 kB cpus=0 ent=6.00
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
0.02 0.01 0.00 99.97 3.41 56.83 0.02 0.00 4061778 156
Makes lparstat reporting "smt=mixed" in that case.
__do_smt is now returning 0 when the SMT state is mixed instead of -1 which
is also reported when an error is detected.
This doesn't change the call made by ppc64_cpu which is using
print_smt_state=true and so is expecting a returned value equal to 0 or -1.
With that patch applied, lparstat print that in the above case:
$lparstat
System Configuration
type=Dedicated mode=Capped smt=Mixed lcpu=6 mem=65969728 kB cpus=0 ent=6.00
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
0.01 0.01 0.00 99.97 3.43 57.17 0.02 0.00 4105654 156
Signed-off-by: Laurent Dufour <ldufour@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/common/cpu_info_helpers.c b/src/common/cpu_info_helpers.c
index 925f220..c05d96d 100644
--- a/src/common/cpu_info_helpers.c
+++ b/src/common/cpu_info_helpers.c
@@ -245,7 +245,7 @@ int __do_smt(bool numeric, int cpus_in_system, int threads_per_cpu,
if (smt_state == 0)
smt_state = thread + 1;
else if (smt_state > 0)
- smt_state = -1; /* mix of SMT modes */
+ smt_state = 0; /* mix of SMT modes */
}
}
@@ -257,7 +257,7 @@ int __do_smt(bool numeric, int cpus_in_system, int threads_per_cpu,
printf("SMT=1\n");
else
printf("SMT is off\n");
- } else if (smt_state == -1) {
+ } else if (smt_state == 0) {
for (thread = 0; thread < threads_per_cpu; thread++) {
if (CPU_COUNT_S(cpu_state_size,
cpu_states[thread])) {
diff --git a/src/lparstat.c b/src/lparstat.c
index eebba1f..a9e7bce 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -884,13 +884,15 @@ void get_smt_mode(struct sysentry *se, char *buf)
}
smt_state = parse_smt_state();
- if (smt_state < 0) {
+ if (smt_state == -1) {
fprintf(stderr, "Failed to get smt state\n");
return;
}
if (smt_state == 1)
sprintf(buf, "Off");
+ else if (smt_state == 0)
+ sprintf(buf, "Mixed");
else
sprintf(buf, "%d", smt_state);
}

View File

@ -1,98 +0,0 @@
commit b1b9e76de0f3ab1dfcd9426779fa20fd77cd5625
Author: Luciano Chavez <lnx1138@linux.ibm.com>
Date: Wed Aug 24 21:11:32 2022 -0500
lsslot: Fix lsslot -c mem output when using 4GB LMB size
When using a LMB size of 4GB, the output of lsslot -c mem would get
reported incorrectly as:
Dynamic Reconfiguration Memory (LMB size 0x0)
:
DRC Index: 80000001 Address: 100000000
Removable: No Associativity: (index: 1) 0 1 4 9
Section(s):
This patch changes the declaration of the _node_u._smem._lmb_size from
a uint32_t to uint64_t to store the value properly. Any variables that
store the lmb_size are also declared as uint64_t. In addition, we
use the PRIx64 macro in printf statements to properly print the
lmb_size value.
The patch also includes a necessary change to declare the global
variable block_sz_bytes as a uint64_t to fix an infinite loop in
the function get_mem_scns() when the above changes were introduced.
Signed-off-by: Luciano Chavez <lnx1138@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/drmgr/drmem.h b/src/drmgr/drmem.h
index db5a47f..48108c5 100644
--- a/src/drmgr/drmem.h
+++ b/src/drmgr/drmem.h
@@ -58,7 +58,7 @@ struct drconf_mem_v2 {
#define LMB_REVERSE_SORT 1
#define LMB_RANDOM_SORT 2
-extern int block_sz_bytes;
+extern uint64_t block_sz_bytes;
struct lmb_list_head *get_lmbs(unsigned int);
void free_lmbs(struct lmb_list_head *);
diff --git a/src/drmgr/drslot_chrp_mem.c b/src/drmgr/drslot_chrp_mem.c
index 3b78723..d37ee80 100644
--- a/src/drmgr/drslot_chrp_mem.c
+++ b/src/drmgr/drslot_chrp_mem.c
@@ -33,7 +33,7 @@
#include "drmem.h"
#include "common_numa.h"
-int block_sz_bytes = 0;
+uint64_t block_sz_bytes = 0;
static char *state_strs[] = {"offline", "online"};
static char *usagestr = "-c mem {-a | -r} {-q <quantity> -p {variable_weight | ent_capacity} | {-q <quantity> | -s [<drc_name> | <drc_index>]}}";
@@ -118,7 +118,7 @@ free_lmbs(struct lmb_list_head *lmb_list)
static int
get_mem_scns(struct dr_node *lmb)
{
- uint32_t lmb_sz = lmb->lmb_size;
+ uint64_t lmb_sz = lmb->lmb_size;
uint64_t phys_addr = lmb->lmb_address;
uint32_t mem_scn;
int rc = 0;
diff --git a/src/drmgr/lsslot.c b/src/drmgr/lsslot.c
index 87f876e..83e9e85 100644
--- a/src/drmgr/lsslot.c
+++ b/src/drmgr/lsslot.c
@@ -741,7 +741,7 @@ int print_drconf_mem(struct lmb_list_head *lmb_list)
if (usr_drc_name)
drc_index = strtol(usr_drc_name, NULL, 0);
- printf("Dynamic Reconfiguration Memory (LMB size 0x%x)\n",
+ printf("Dynamic Reconfiguration Memory (LMB size 0x%"PRIx64")\n",
lmb_list->lmbs->lmb_size);
for (lmb = lmb_list->lmbs; lmb; lmb = lmb->next) {
@@ -808,7 +808,7 @@ int lsslot_chrp_mem(void)
if (lmb_list->drconf_buf) {
print_drconf_mem(lmb_list);
} else {
- printf("lmb size: 0x%x\n", lmb_list->lmbs->lmb_size);
+ printf("lmb size: 0x%"PRIx64"\n", lmb_list->lmbs->lmb_size);
printf("%-20s %-5s %c %s\n", "Memory Node", "Name", 'R',
"Sections");
printf("%-20s %-5s %c %s\n", "-----------", "----", '-',
diff --git a/src/drmgr/ofdt.h b/src/drmgr/ofdt.h
index 26c943a..bd90810 100644
--- a/src/drmgr/ofdt.h
+++ b/src/drmgr/ofdt.h
@@ -94,7 +94,7 @@ struct dr_node {
union {
struct mem_info {
uint64_t _address;
- uint32_t _lmb_size;
+ uint64_t _lmb_size;
uint32_t _lmb_aa_index;
struct mem_scn *_mem_scns;
struct of_node *_of_node;

View File

@ -1,29 +0,0 @@
commit e1f1deb06d9168a95a381a2236e1d8c693d3d229
Author: Luciano Chavez <lnx1138@linux.ibm.com>
Date: Wed Aug 24 21:17:54 2022 -0500
lsslot: Explicity declare that lmb_address be displayed in hexadecimal
A printf statement used is lsslot.c was specifying the macro PRIu64 to
display the lmb_address. Depending on the compilation, this would
either display as a hexadecimal or decimal value.
This patch replaces PRIu64 with PRIx64 to explicitly declare to print
the value as hexadecimal as that was is normally expected of an address.
Signed-off-by: Luciano Chavez <lnx1138@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/drmgr/lsslot.c b/src/drmgr/lsslot.c
index 7ea0f8b..87f876e 100644
--- a/src/drmgr/lsslot.c
+++ b/src/drmgr/lsslot.c
@@ -756,7 +756,7 @@ int print_drconf_mem(struct lmb_list_head *lmb_list)
printf("%s: %s\n", lmb->drc_name,
lmb->is_owned ? "" : "Not Owned");
- printf(" DRC Index: %x Address: %"PRIu64"\n",
+ printf(" DRC Index: %x Address: %"PRIx64"\n",
lmb->drc_index, lmb->lmb_address);
printf(" Removable: %s Associativity: ",
lmb->is_removable ? "Yes" : "No ");

View File

@ -1,93 +0,0 @@
commit f4c2b0d142f623e7dd28a5d685e446d41be75601
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date: Thu Aug 25 12:19:27 2022 +0530
lparstat: Fix display of mode for dedicated-donating partition
From the lparstat man page:
mode
Indicates whether the partition processor capacity is capped or uncapped
allowing it to consume idle cycles from the shared pool. Dedicated LPAR
is capped or donating.
However, on a dedicated partition, lparstat always displays the mode as
'Capped' today. Fix this by using 'DedDonMode' field from lparcfg for
determining the cycle donation status of a dedicated partition.
On a dedicated-donating partition:
$ grep -e shared -e DedDonMode -e capped /proc/powerpc/lparcfg
DedDonMode=1
capped=1
shared_processor_mode=0
Before this patch:
$ lparstat
System Configuration
type=Dedicated mode=Capped smt=8 lcpu=1 mem=3335424 kB cpus=0 ent=1.00
After this patch:
$ lparstat
System Configuration
type=Dedicated mode=Donating smt=8 lcpu=1 mem=3335424 kB cpus=0 ent=1.00
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/src/lparstat.c b/src/lparstat.c
index 0b30fc9..e998e8c 100644
--- a/src/lparstat.c
+++ b/src/lparstat.c
@@ -718,6 +718,16 @@ void get_capped_mode(struct sysentry *se, char *buf)
sprintf(buf, "%s", value);
}
+void get_dedicated_mode(struct sysentry *se, char *buf)
+{
+ const char *value = "Capped";
+
+ if (se->value[0] == '1')
+ value = "Donating";
+
+ sprintf(buf, "%s", value);
+}
+
void get_percent_entry(struct sysentry *se, char *buf)
{
float value;
@@ -1057,7 +1067,10 @@ void print_system_configuration(void)
get_sysdata("shared_processor_mode", &descr, value);
offset = sprintf(buf, "type=%s ", value);
sprintf(type, "%s", value);
- get_sysdata("capped", &descr, value);
+ if (!strcmp(value, "Dedicated"))
+ get_sysdata("DedDonMode", &descr, value);
+ else
+ get_sysdata("capped", &descr, value);
offset += sprintf(buf + offset, "mode=%s ", value);
get_sysdata("smt_state", &descr, value);
offset += sprintf(buf + offset, "smt=%s ", value);
diff --git a/src/lparstat.h b/src/lparstat.h
index 26ed4ba..b7c88e9 100644
--- a/src/lparstat.h
+++ b/src/lparstat.h
@@ -47,6 +47,7 @@ typedef struct cpu_sysfs_file_desc cpu_sysfs_fd;
extern void get_smt_state(struct sysentry *, char *);
extern void get_capped_mode(struct sysentry *, char *);
+extern void get_dedicated_mode(struct sysentry *, char *);
extern void get_memory_mode(struct sysentry *, char *);
extern void get_percent_entry(struct sysentry *, char *);
extern void get_phys_cpu_percentage(struct sysentry *, char *);
@@ -110,7 +111,8 @@ struct sysentry system_data[] = {
{.name = "DesVarCapWt",
.descr = "Desired Variable Capacity Weight"},
{.name = "DedDonMode",
- .descr = "Dedicated Donation Mode"},
+ .descr = "Dedicated Donation Mode",
+ .get = &get_dedicated_mode},
{.name = "partition_entitled_capacity",
.descr = "Partition Entitled Capacity"},
{.name = "system_active_processors",

View File

@ -1,27 +0,0 @@
commit acaf9c45a340f9bb49d6b21ba7ad60c21326ea73
Author: Mingming Cao <mmc@linux.vnet.ibm.com>
Date: Mon Nov 7 14:39:02 2022 -0800
hcnmgr: Fix setting primary slave across reboots
Using nmcli to set bonding of primary slave so that is set correctly
across reboots.
Signed-off-by: Mingming Cao <mmc@linux.vnet.ibm.com>
[tyreld: Reworded commit log]
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
diff --git a/scripts/hcnmgr b/scripts/hcnmgr
index 6946ff9..b5a6bfb 100644
--- a/scripts/hcnmgr
+++ b/scripts/hcnmgr
@@ -375,7 +375,8 @@ do_config_vdevice_nm() {
# if the device is primary, and link is up, force it as primary se
if [[ $MODE == "primary" ]]; then
hcnlog INFO "Change bonding primary slave to $DEVNAME"
- echo "$DEVNAME" >"$BOND_PATH"/primary
+ nmcli con mod id "$BONDNAME" +bond.options "primary=$DEVNAME"
+ nmcli con up "$BONDNAME"
fi
hcnlog DEBUG "do_config_vdevice: exit"

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}

View File

@ -327,13 +327,13 @@ diff -up powerpc-utils-1.3.5/man/update_flash_nv.8.me powerpc-utils-1.3.5/man/up
+.SH SEE ALSO +.SH SEE ALSO
+update_flash(8). +update_flash(8).
+ +
diff -up powerpc-utils-1.3.10/Makefile.am.me powerpc-utils-1.3.10/Makefile.am diff -up powerpc-utils-1.3.11/Makefile.am.orig powerpc-utils-1.3.11/Makefile.am
--- powerpc-utils-1.3.10/Makefile.am.me 2022-06-03 12:35:01.335312481 +0200 --- powerpc-utils-1.3.11/Makefile.am.orig 2023-01-24 22:20:20.885655802 +0100
+++ powerpc-utils-1.3.10/Makefile.am 2022-06-03 12:46:42.460763120 +0200 +++ powerpc-utils-1.3.11/Makefile.am 2023-01-24 22:22:36.291802414 +0100
@@ -48,7 +48,17 @@ man_MANS = \ @@ -49,7 +49,18 @@ man_MANS = \
man/vcpustat.8 \
man/rtas_dbg.8 \ man/rtas_dbg.8 \
man/drmgr.8 \ man/drmgr.8 \
man/drmgr-hooks.8 \
- man/lparnumascore.8 - man/lparnumascore.8
+ man/lparnumascore.8 \ + man/lparnumascore.8 \
+ man/lsdevinfo.8 \ + man/lsdevinfo.8 \
@ -346,6 +346,7 @@ diff -up powerpc-utils-1.3.10/Makefile.am.me powerpc-utils-1.3.10/Makefile.am
+ man/pseries_platform.8 \ + man/pseries_platform.8 \
+ man/update_flash_nv.8 \ + man/update_flash_nv.8 \
+ man/hcnmgr.8 + man/hcnmgr.8
+
EXTRA_DIST += $(bin_SCRIPTS) $(sbin_SCRIPTS) $(man_MANS) EXTRA_DIST += $(bin_SCRIPTS) $(sbin_SCRIPTS) $(man_MANS)

View File

@ -1,44 +1,32 @@
Name: powerpc-utils Name: powerpc-utils
Version: 1.3.10 Version: 1.3.13
Release: 6%{?dist} Release: 1%{?dist}
Summary: PERL-based scripts for maintaining and servicing PowerPC systems Summary: PERL-based scripts for maintaining and servicing PowerPC systems
Group: System Environment/Base License: GPL-2.0-only
License: GPLv2 URL: https://github.com/ibm-power-utilities/powerpc-utils
URL: https://github.com/ibm-power-utilities/powerpc-utils Source0: https://github.com/ibm-power-utilities/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz
Source0: https://github.com/ibm-power-utilities/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz Source1: nx-gzip.udev
Source1: nx-gzip.udev Patch0: powerpc-utils-1.3.11-manpages.patch
Patch0: powerpc-utils-1.3.10-manpages.patch
Patch1: powerpc-utils-1.3.10-distro.patch
# bz#2121470, Fix lsslot -c mem output when using 4GB LMB size
Patch3: powerpc-utils-b1b9e7-LMB_size_4GB.patch
Patch4: powerpc-utils-e1f1de-lmb_address_in_hexadecimal.patch
Patch5: powerpc-utils-fix_setting_primary_slave_across_reboots.patch
Patch6: powerpc-utils-f4c2b0-fix_display_of_mode_for_dedicated_donating_partition.patch
# lparstat: Fix-negative-values-seen-while-running-lpar # upstream patches
Patch10: powerpc-utils-1.3.10-lparstat-Fix-negative-values-seen-while-running-lpar.patch
# report-mixed-SMT-state
Patch11: powerpc-utils-1.3.10-lparstat-report-mixed-SMT-state.patch
# Fix-offline-threads-uninitialized-entries
Patch12: powerpc-utils-1.3.10-lparstat-Fix-offline-threads-uninitialized-entries.patch
ExclusiveArch: ppc %{power64} ExclusiveArch: ppc %{power64}
BuildRequires: gcc BuildRequires: gcc
BuildRequires: make BuildRequires: make
BuildRequires: automake BuildRequires: automake
BuildRequires: doxygen BuildRequires: doxygen
BuildRequires: zlib-devel BuildRequires: zlib-devel
BuildRequires: librtas-devel >= 1.4.0 BuildRequires: librtas-devel >= 1.4.0
BuildRequires: libservicelog-devel >= 1.0.1-2 BuildRequires: libservicelog-devel >= 1.0.1-2
BuildRequires: perl-generators BuildRequires: perl-generators
BuildRequires: systemd BuildRequires: systemd
BuildRequires: numactl-devel BuildRequires: numactl-devel
# rtas_dump explicit dependency # rtas_dump explicit dependency
Requires: perl(Data::Dumper) Requires: perl(Data::Dumper)
Requires: %{name}-core = %{version}-%{release} Requires: %{name}-core = %{version}-%{release}
%description %description
PERL-based scripts for maintaining and servicing PowerPC systems. PERL-based scripts for maintaining and servicing PowerPC systems.
@ -51,13 +39,22 @@ Requires(preun): systemd
Requires(postun): systemd Requires(postun): systemd
Requires: kmod Requires: kmod
Requires: which Requires: which
Requires: gawk Requires: /usr/bin/awk
Requires: bc Requires: /usr/bin/basename
Requires: findutils Requires: /usr/bin/bc
Requires: grep Requires: /usr/bin/cat
Requires: sed Requires: /usr/bin/cut
Requires: systemd-udev Requires: /usr/bin/echo
Requires: coreutils Requires: /usr/bin/find
Requires: /bin/grep
Requires: /usr/bin/head
Requires: /usr/bin/ls
Requires: /usr/bin/sed
Requires: /usr/bin/tr
Requires: /usr/bin/udevadm
# udev rule move
Conflicts: libnxz < 0.63-3
%description core %description core
Core utilities for maintaining and servicing PowerPC systems. Core utilities for maintaining and servicing PowerPC systems.
@ -66,12 +63,10 @@ Core utilities for maintaining and servicing PowerPC systems.
%prep %prep
%autosetup -p1 %autosetup -p1
%build %build
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
./autogen.sh ./autogen.sh
%configure --with-systemd=%{_unitdir} --disable-werror %configure --with-systemd=%{_unitdir} --disable-werror
make %{?_smp_mflags} make %{?_smp_mflags} V=1
%install %install
@ -87,14 +82,11 @@ rm -rf $RPM_BUILD_ROOT/usr/share/doc/packages/powerpc-utils
rm -f $RPM_BUILD_ROOT%{_pkgdocdir}/COPYING rm -f $RPM_BUILD_ROOT%{_pkgdocdir}/COPYING
# install udev rule for the nx-gzip accelerator # install udev rule for the nx-gzip accelerator
install -pDm 644 %{SOURCE1} %{buildroot}%{_udevrulesdir}/90-nx-gzip.rules install -pDm 644 %{SOURCE1} %{buildroot}%{_udevrulesdir}/90-nx-gzip.rules
# remove init script and perl script. They are deprecated # remove init script and perl script. They are deprecated
rm -rf $RPM_BUILD_ROOT/etc/init.d/ibmvscsis.sh $RPM_BUILD_ROOT/usr/sbin/vscsisadmin rm -rf $RPM_BUILD_ROOT/etc/init.d/ibmvscsis.sh $RPM_BUILD_ROOT/usr/sbin/vscsisadmin
# nvsetenv is just a wrapper to nvram
ln -s nvram.8.gz $RPM_BUILD_ROOT/%{_mandir}/man8/nvsetenv.8.gz
# symlink uspchrp # symlink uspchrp
ln -s serv_config %{buildroot}%{_sbindir}/uspchrp ln -s serv_config %{buildroot}%{_sbindir}/uspchrp
ln -s serv_config.8 %{buildroot}%{_mandir}/man8/uspchrp.8 ln -s serv_config.8 %{buildroot}%{_mandir}/man8/uspchrp.8
@ -102,6 +94,12 @@ ln -s serv_config.8 %{buildroot}%{_mandir}/man8/uspchrp.8
# deprecated, use sosreport instead # deprecated, use sosreport instead
rm -f $RPM_BUILD_ROOT%{_sbindir}/snap $RPM_BUILD_ROOT%{_mandir}/man8/snap.8* rm -f $RPM_BUILD_ROOT%{_sbindir}/snap $RPM_BUILD_ROOT%{_mandir}/man8/snap.8*
# drop needless stuffs
rm -rf $RPM_BUILD_ROOT%{_prefix}/lib/powerpc-utils
# keep service name
mv $RPM_BUILD_ROOT%{_unitdir}/hcn-init-NetworkManager.service $RPM_BUILD_ROOT%{_unitdir}/hcn-init.service
%post core %post core
%systemd_post hcn-init.service %systemd_post hcn-init.service
# update the smt.state file with current SMT # update the smt.state file with current SMT
@ -121,18 +119,25 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
%files %files
# PERL-based scripts for maintaining and servicing PowerPC systems # PERL-based scripts for maintaining and servicing PowerPC systems
%doc README Changelog %doc README Changelog
%license COPYING
%{_sbindir}/hvcsadmin %{_sbindir}/hvcsadmin
%{_sbindir}/rtas_dump %{_sbindir}/rtas_dump
%{_mandir}/man8/hvcsadmin.8* %{_mandir}/man8/hvcsadmin.8*
%{_mandir}/man8/rtas_dump.8* %{_mandir}/man8/rtas_dump.8*
%files core %files core
%doc README Changelog
%license COPYING %license COPYING
%dir %{_localstatedir}/lib/powerpc-utils %dir %{_localstatedir}/lib/powerpc-utils
%config(noreplace) %{_localstatedir}/lib/powerpc-utils/smt.state %verify(not md5 size mtime) %config(noreplace) %{_localstatedir}/lib/powerpc-utils/smt.state
%{_unitdir}/smtstate.service %{_unitdir}/smtstate.service
%{_unitdir}/smt_off.service %{_unitdir}/smt_off.service
%{_unitdir}/hcn-init.service %{_unitdir}/hcn-init.service
%if 0%{?wicked}
%{_unitdir}/hcn-init-wicked.service
%else
%exclude %{_unitdir}/hcn-init-wicked.service
%endif
%{_bindir}/amsstat %{_bindir}/amsstat
%{_sbindir}/activate_firmware %{_sbindir}/activate_firmware
%{_sbindir}/bootlist %{_sbindir}/bootlist
@ -201,123 +206,179 @@ systemctl enable hcn-init.service >/dev/null 2>&1 || :
%{_mandir}/man8/nvram.8* %{_mandir}/man8/nvram.8*
%{_mandir}/man8/ofpathname.8* %{_mandir}/man8/ofpathname.8*
%{_mandir}/man8/drmgr.8* %{_mandir}/man8/drmgr.8*
%{_mandir}/man8/drmgr-hooks.8*
%{_mandir}/man8/lparnumascore.8* %{_mandir}/man8/lparnumascore.8*
%changelog %changelog
* Wed Jul 26 2023 Than Ngo <than@redhat.com> - 1.3.10-6 * Wed Nov 20 2024 Than Ngo <than@redhat.com> - 1.3.13-1
- Update to 1.3.13
Resolves: RHEL-24535
* Mon Nov 18 2024 Than Ngo <than@redhat.com> - 1.3.12-7
- Add, multipath - drmgr support
- Fix, SMT state is not honored when new CPUs are added dynamically
Resolves: RHEL-62938
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1.3.12-6
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Thu Jun 27 2024 Than Ngo <than@redhat.com> - 1.3.12-5
- add verify attributes for smt.state to ignore the verification
Related: RHEL-32262
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.3.12-4
- Bump release for June 2024 mass rebuild
* Tue Apr 09 2024 Than Ngo <than@redhat.com> - 1.3.12-3
- Resolves: RHEL-32262, update 1.3.12 for rhel-10
* Sun Apr 07 2024 Than Ngo <than@redhat.com> - 1.3.12-2
- conditionally hcn-init-wicked.service
* Fri Apr 05 2024 Than Ngo <than@redhat.com> - 1.3.12-1
- update to 1.3.12
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.11-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.11-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Aug 01 2023 Than Ngo <than@redhat.com> - 1.3.11-4
- Fix negative values seen while running lpar - Fix negative values seen while running lpar
- Fix lparstat error with mixed SMT state - Fix lparstat error with mixed SMT state
Resolves: #2225135 - Fix negative values seen while running lparstat with -E option
* Sat Jun 17 2023 Than Ngo <than@redhat.com> - 1.3.10-5 * Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.11-3
- Resolves: #2207649, Add udev rule for the nx-gzip in to the core subpackage - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Apr 25 2023 Than Ngo <than@redhat.com> - 1.3.10-4 * Thu Feb 16 2023 Than Ngo <than@redhat.com> - 1.3.11-2
- Resolves: #2166871, lparstat showing incorrect mode in a dedicated-donating LPAR - migrated to SPDX license
* Mon Nov 28 2022 Than Ngo <than@redhat.com> - 1.3.10-3 * Tue Jan 24 2023 Than Ngo <than@redhat.com> - 1.3.11-1
- Resolves: #2148878, HNV bond fails to come up with sriov interface as active slave - update to 1.3.11
* Fri Oct 21 2022 Than Ngo <than@redhat.com> - 1.3.10-2 * Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.10-6
- Resolves: #2121481, Fix lsslot -c mem output when using 4GB LMB size - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Jun 06 2022 Than Ngo <than@redhat.com> - 1.3.10-1 * Wed Nov 02 2022 Than Ngo <than@redhat.com> - 1.3.10-5
- Resolves: #2051330, Linux Hybrid Network Virtualization update - Fix lsslot -c mem output when using 4GB LMB size
- Resolves: #2083469, smtstate --save command failed - Add NVMf-FC boot support for Power
* Fri May 13 2022 Than Ngo <than@redhat.com> - 1.3.9-3 * Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.10-4
- Resolves: #2059459, add new DRC type description strings for latest PCIe slot types - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
- Resolves: #2078514, Fix NM HNV setting primary slave
- Resolves: #2083469, smtstate test failed as smtstate --save command failed
* Thu Dec 09 2021 Than Ngo <than@redhat.com> - 1.3.9-1 * Tue Jun 14 2022 Jakub Čajka <jcajka@redhat.com> - 1.3.10-3
- Resolves: #2028690, rebase to 1.3.9 - Add udev rule for the nx-gzip in to the core subpackage
* Thu Dec 02 2021 Than Ngo <than@redhat.com> - 1.3.8-10 * Wed Jun 08 2022 Than Ngo <than@redhat.com> - 1.3.10-2
- Related: #2022225, increase release - install smt.state as config file
- drop nvsetenv which is included in upstream
* Thu Nov 11 2021 Than Ngo <than@redhat.com> - 1.3.8-9 * Fri Jun 03 2022 Than Ngo <than@redhat.com> - 1.3.10-1
- Resolves: #2022225, enable support vnic as backend for HNV interfaces - update to 1.3.10
* Thu Oct 07 2021 Than Ngo <than@redhat.com> - 1.3.8-8 * Thu May 12 2022 Than Ngo <than@redhat.com> - 1.3.9-6
- lsdevinfo: optimize criteria filtering - fix smtstate test failure, add default SMT_VALUE=1 in smt.state
* Fri Jul 16 2021 Than Ngo <than@redhat.com> - 1.3.8-7 * Tue Feb 08 2022 Than Ngo <than@redhat.com> - 1.3.9-5
- Related: #1938420, Fix checking HCNID array size at boot time - santize devspec output of a newline if one is present
- fixed invalid hex number (multipath)
* Thu Apr 01 2021 Than Ngo <than@redhat.com> - 1.3.8-6 * Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Tue Dec 07 2021 Than Ngo <than@redhat.com> - 1.3.9-3
- enable support vnic as backend for HNV interface
- fixed hexdump format
- switch to systemd macros in scriptlets
- marked smt.state as %%ghost
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jul 19 2021 Than Ngo <than@redhat.com> - 1.3.9-1
- Rebase to 1.3.9
* Mon May 31 2021 Than Ngo <than@redhat.com> - 1.3.8-9
- Resolves: #1935658, New lparstat -x option to report the security flavor - Resolves: #1935658, New lparstat -x option to report the security flavor
- Resolves: #1953818, Use od instead xxd
- Resolves: #1938420, rebase patch fix_boot-time_bonding_interface_cleanup_and_avoid_use_ifcfg - Resolves: #1938420, rebase patch fix_boot-time_bonding_interface_cleanup_and_avoid_use_ifcfg
- Resolves: #1940358, ppc64_cpu --help does not list --version as an option - Resolves: #1940358, ppc64_cpu --help does not list --version as an option
- Resolves: #1951068, take care of NUMA topology when removing memory (DLPAR) - Resolves: #1951068, take care of NUMA topology when removing memory (DLPAR)
* Wed Feb 03 2021 Than Ngo <than@redhat.com> - 1.3.8-5 * Mon May 03 2021 Than Ngo <than@redhat.com> - 1.3.8-8
- Resolves: #1924150, Fix boot-time bonding interface cleanup and avoid use ifcfg - Use od instead xxd
* Mon Dec 21 2020 Than Ngo <than@redhat.com> - 1.3.8-4 * Mon Feb 08 2021 Than Ngo <than@redhat.com> - 1.3.8-7
- Resolves: #1909526, additional patches to support Linux Hybrid Network Virtualization - updated hcnmgr manpage
- Resolves: #1909135, move commands that dont depend on perl to core subpackage
* Tue Oct 06 2020 Than Ngo <than@redhat.com> - 1.3.8-3 * Mon Feb 08 2021 Than Ngo <than@redhat.com> - 1.3.8-6
- Resolves: #1868474, ofpathname: Use NVMe controller physical nsid - Fix boot-time bonding interface cleanup and avoid use ifcfg
- Resolves: #1885532, sys_ident: Skip length field from search
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.8-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Dec 22 2020 Than Ngo <than@redhat.com> - 1.3.8-4
- additional patches to support Linux Hybrid Network Virtualization
- move commands that dont depend on perl to core subpackage
- update hcnmgr patch
- sys_ident: Skip length field from search
- ofpathname: Use NVMe controller physical nsid
* Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-3
- add hcnmgr man page
* Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-2 * Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-2
- Related: #1853297, add missing hcnmgr manpage and Req on which - clean up systemd service
* Thu Oct 01 2020 Than Ngo <than@redhat.com> - 1.3.8-1 * Fri Sep 04 2020 Than Ngo <than@redhat.com> - 1.3.8-1
- Resolves: #1853297, rebase to 1.3.8 - update to 1.3.8
- Resolves: #1802181, SR-IOV - Linux Hybrid Network Virtualization
- Resolves: #1844421, Include vcpustat
* Wed Jun 24 2020 Than Ngo <than@redhat.com> - 1.3.6-11 * Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-7
- Resolves: #1847604, ofpathname: failed to boot - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jun 19 2020 Than Ngo <than@redhat.com> - 1.3.6-10 * Thu Jul 09 2020 Than Ngo <than@redhat.com> - 1.3.7-6
- Resolves: #1848839, update lparstat man page with -E option - Track and expose idle PURR and SPURR ticks
- ofpathname: speed up l2of_scsi()
- ofpathname: failed to boot
- update lparstat man page with -E option
- enable support for ibm,drc-info property
* Fri May 22 2020 Than Ngo <than@redhat.com> - 1.3.6-9 * Sat Mar 28 2020 Than Ngo <than@redhat.com> - 1.3.7-5
- Resolves: #1837751, ofpathname: speed up l2of_scsi() - move drmgr in core to avoid pulling in Perl
* Fri May 15 2020 Than Ngo <than@redhat.com> - 1.3.6-8 * Mon Mar 09 2020 Than Ngo <than@redhat.com> - 1.3.7-4
- Related: #1783285, update the patches V4 - update_flash_nv: fixup null byte command substitution warning
- drmgr: Fix segfault when running 'drmgr -c pmig -h'
* Wed May 13 2020 Than Ngo <than@redhat.com> - 1.3.6-7 * Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.7-3
- Resolves: #1783285, Track and expose idle PURR and SPURR ticks - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Mar 25 2020 Than Ngo <than@redhat.com> - 1.3.6-6 * Thu Dec 19 2019 Than Ngo <than@redhat.com> - 1.3.7-2
- Resolves: #1819566 - move drmgr in core to avoid pulling in Perl - add systemd service to set default system SMT mode
- Resolves: #1806870 - ignored null byte in input
- Resolves: #1779197 - enable support for ibm,drc-info property
* Wed Dec 04 2019 Than Ngo <than@redhat.com> - 1.3.6-5 * Wed Dec 18 2019 Than Ngo <than@redhat.com> - 1.3.7-1
- Resolves: #1779257, Safe bootlist update - update to 1.3.7
* Wed Jul 24 2019 Than Ngo <than@redhat.com> - 1.3.6-4 * Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.6-3
- Resolves: #1719372 - wrong disk gets booted after installation - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Jun 07 2019 Than Ngo <than@redhat.com> - 1.3.6-3 * Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.6-2
- Resolves: #1718254, improve handling of errors from subsidiary scripts - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Wed Jun 05 2019 Than Ngo <than@redhat.com> - 1.3.6-2 * Wed Jan 16 2019 Than Ngo <than@redhat.com> - 1.3.6-1
- Resolves: #1716425, lparstat and update_flash fixes - update to 1.3.6
* Mon Apr 01 2019 Than Ngo <than@redhat.com> - 1.3.6-1 * Fri Nov 30 2018 Than Ngo <than@redhat.com> - 1.3.5-4
- Resolves: #1666618, rebase to 1.3.6 - install missing pseries_platform and update_flash_nv man pages
* Tue Dec 04 2018 Than Ngo <than@redhat.com> - 1.3.5-5 * Thu Nov 29 2018 Than Ngo <than@redhat.com> - 1.3.5-3
- Related: #1655903, add missing man pages - added pseries_platform and update_flash_nv man pages
* Tue Dec 04 2018 Than Ngo <than@redhat.com> - 1.3.5-4 * Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.5-2
- Resolves: #1655903, lsslot -c mem is not displaying any information - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Nov 27 2018 Than Ngo <than@redhat.com> - 1.3.5-3
- Resolves: #1653621, fix to display logical name using bootlist -o option
* Sat Nov 10 2018 Than Ngo <than@redhat.com> - 1.3.5-2
- fix metadate issue detected by rpmdiff
Related: #1608172
* Mon Jun 18 2018 Dan Horák <dan[at]danny.cz> - 1.3.5-1 * Mon Jun 18 2018 Dan Horák <dan[at]danny.cz> - 1.3.5-1
- Rebased to 1.3.5 - Rebased to 1.3.5

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (powerpc-utils-1.3.13.tar.gz) = 81fe5588e7330cb0bac81b7106c9949e364fe0b11cc1739a4074fee54c01c363ed8af05488152c9527c56ba053c11278c6b1a2340b2e088a6f25521965e4fc62