adjust further for GNU Linux-libre 6.7.11-gnu
[releases.git] / deblob-5.10
index 48dc99acf62be51a4d168d202b54fac0965e5a15..96b12776e7aa58eec39946b656ac15a72c2c91ec 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-#    Copyright (C) 2008-2021 Alexandre Oliva <lxoliva@fsfla.org>
+#    Copyright (C) 2008-2022 Alexandre Oliva <lxoliva@fsfla.org>
 #    Copyright (C) 2008 Jeff Moe
 #    Copyright (C) 2009 Rubén Rodríguez <ruben@gnu.org>
 #
@@ -416,9 +416,12 @@ clean_sed '
 s,git://git\..*torvalds/linux\.git,/*(DEBLOBBED)*/,
 ' scripts/package/mkdebian 'upstream development repo'
 
-clean_sed '
-s,Name: kernel,&-libre,
-' scripts/package/mkspec 'package name'
+# The tarball name and its expansion do not include -libre.
+# We could change KERNELPATH and keep this, but what else would break?
+# Enabling this would require the other commented-out mkspec bits below.
+# clean_sed '
+# s,Name: kernel,&-libre,
+# ' scripts/package/mkspec 'package name'
 
 clean_sed '
 s,The Linux,The GNU Linux-libre,
@@ -432,13 +435,22 @@ clean_sed '
 s,https\?://www\.kernel\.org,https://linux-libre.fsfla.org,
 ' scripts/package/mkspec 'home page'
 
+# clean_sed '
+# s,\(%description\) -n kernel-,\1 ,
+# ' scripts/package/mkspec '-libre subpackages'
+
+# clean_sed '
+# /Provides: kernel-/{p;s,kernel-,&libre-,;}
+# ' scripts/package/mkspec '-libre provides'
+
+# As with rpms, we leave the package name as kernel.
 clean_sed '
-s,\(%description\) -n kernel-,\1 ,
-' scripts/package/mkspec '-libre subpackages'
+s,The upstream Linux kernel,The GNU Linux-libre kernel,
+' scripts/package/snapcraft.template 'description'
 
 clean_sed '
-/Provides: kernel-/{p;s,kernel-,&libre-,;}
-' scripts/package/mkspec '-libre provides'
+s,Linux kernel,GNU Linux-libre,
+' scripts/package/snapcraft.template 'summary'
 
 # Add reject_firmware and maybe_reject_firmware
 grep -q _LINUX_LIBRE_FIRMWARE_H include/linux/firmware.h ||
@@ -453,7 +465,7 @@ clean_sed '$i\
 static inline int\
 is_nonfree_firmware(const char *name)\
 {\
-  return strstr(name, NONFREE_FIRMWARE) != 0;\
+       return strstr(name, NONFREE_FIRMWARE) != 0;\
 }\
 \
 static inline int\
@@ -469,6 +481,7 @@ firmware_reject_nowarn(const struct firmware **fw,\
 {\
        const struct firmware *xfw = NULL;\
        int retval, retval0 = -ENOENT;\
+       if (fw) *fw = xfw;\
        retval = firmware_request_nowarn(&xfw, NONFREE_FIRMWARE, device);\
        if (!retval) {\
                release_firmware(xfw);\
@@ -503,6 +516,7 @@ reject_firmware_direct(const struct firmware **fw,\
 {\
        const struct firmware *xfw = NULL;\
        int retval, retval0;\
+       if (fw) *fw = xfw;\
        retval0 = report_missing_free_firmware(dev_name(device), NULL);\
        retval = request_firmware_direct(&xfw, NONFREE_FIRMWARE, device);\
        if (!retval) {\
@@ -543,6 +557,7 @@ reject_firmware_into_buf(const struct firmware **firmware_p, const char *name,\
 {\
        const struct firmware *xfw = NULL;\
        int retval, retval0;\
+       if (firmware_p) *firmware_p = xfw;\
        retval0 = report_missing_free_firmware(dev_name(device), NULL);\
        retval = request_firmware_into_buf(&xfw, NONFREE_FIRMWARE, device, buf, size);\
        if (!retval) {\
@@ -566,6 +581,7 @@ reject_partial_firmware_into_buf(const struct firmware **firmware_p, const char
 {\
        const struct firmware *xfw = NULL;\
        int retval, retval0;\
+       if (firmware_p) *firmware_p = xfw;\
        retval0 = report_missing_free_firmware(dev_name(device), NULL);\
        retval = request_partial_firmware_into_buf(&xfw, NONFREE_FIRMWARE, device, buf, size, offset);\
        if (!retval) {\
@@ -619,6 +635,9 @@ s,\(timeout = \)\(firmware_loading_timeout()\),\1is_nonfree_firmware(name) ? 1 :
 announce MICROCODE_AMD - "AMD microcode patch loading support"
 reject_firmware arch/x86/kernel/cpu/microcode/amd.c
 clean_blob arch/x86/kernel/cpu/microcode/amd.c
+if grep -q -i zenbleed.*microcode arch/x86/kernel/cpu/amd.c; then
+  clean_blob arch/x86/kernel/cpu/amd.c
+fi
 clean_kconfig arch/x86/Kconfig MICROCODE_AMD
 clean_mk CONFIG_MICROCODE_AMD arch/x86/kernel/cpu/microcode/Makefile
 
@@ -1732,7 +1751,10 @@ clean_sed '
          -EINVAL)
 }' drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c 'report missing Free firmware'
 clean_blob drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
-clean_sed '
+if grep -q loaded_fw_major drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c; then
+  clean_blob drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+else
+  clean_sed '
 /^int bnx2x_compare_fw_ver/,/^}$/{
   /^           u32 my_fw = /i\
                /*(DEBLOBBED)*/
@@ -1743,6 +1765,7 @@ clean_sed '
                u32 my_fw = ~loaded_fw;
   }
 }' drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c 'fail already-loaded test'
+fi
 clean_blob drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
 clean_sed '
 /static void bnx2x_init_wr_wb/{
@@ -2818,6 +2841,9 @@ clean_mk CONFIG_NET_DSA_LANTIQ_GSWIP drivers/net/dsa/Makefile
 
 announce MICROSEMI_PHY - "Microsemi PHYs"
 reject_firmware drivers/net/phy/mscc/mscc_main.c
+if grep -q MODULE_FIRMWARE drivers/net/phy/mscc/mscc_main.c; then
+  clean_blob drivers/net/phy/mscc/mscc_main.c
+fi
 clean_blob drivers/net/phy/mscc/mscc.h
 clean_kconfig drivers/net/phy/Kconfig MICROSEMI_PHY
 clean_mk CONFIG_MICROSEMI_PHY drivers/net/phy/mscc/Makefile
@@ -3139,7 +3165,7 @@ clean_mk CONFIG_USB_UEAGLEATM drivers/usb/atm/Makefile
 
 # host
 
-announce USB_XHCI_PCI_RENESAS - "Support for additional Renesas xHCI controller with firwmare"
+announce USB_XHCI_PCI_RENESAS - "Support for additional Renesas xHCI controller with firmware"
 if grep -q 'firmware_request_nowarn' drivers/usb/host/xhci-pci-renesas.c; then
   reject_firmware_nowarn drivers/usb/host/xhci-pci-renesas.c
 else
@@ -3288,7 +3314,7 @@ fi
 clean_kconfig drivers/remoteproc/Kconfig WKUP_M3_RPROC
 clean_mk CONFIG_WKUP_M3_RPROC drivers/remoteproc/Makefile
 
-announce QCOM_Q6V5_ADSP - "Qualcomm Technology Inc ADSP Peripherial Image Loader"
+announce QCOM_Q6V5_ADSP - "Qualcomm Technology Inc ADSP Peripheral Image Loader"
 clean_blob drivers/remoteproc/qcom_q6v5_adsp.c
 clean_kconfig drivers/remoteproc/Kconfig QCOM_Q6V5_ADSP
 clean_mk CONFIG_QCOM_Q6V5_ADSP drivers/remoteproc/Makefile
@@ -3299,7 +3325,7 @@ clean_blob drivers/remoteproc/qcom_q6v5_mss.c
 clean_kconfig drivers/remoteproc/Kconfig QCOM_Q6V5_MSS
 clean_mk CONFIG_QCOM_Q6V5_MSS drivers/remoteproc/Makefile
 
-announce QCOM_Q6V5_PAS - "Qualcomm Hexagon V5 Peripherial Authentication Service support"
+announce QCOM_Q6V5_PAS - "Qualcomm Hexagon V5 Peripheral Authentication Service support"
 clean_blob drivers/remoteproc/qcom_q6v5_pas.c
 clean_kconfig drivers/remoteproc/Kconfig QCOM_Q6V5_PAS
 clean_mk CONFIG_QCOM_Q6V5_PAS drivers/remoteproc/Makefile
@@ -3309,7 +3335,7 @@ clean_blob drivers/remoteproc/qcom_q6v5_wcss.c
 clean_kconfig drivers/remoteproc/Kconfig QCOM_Q6V5_WCSS
 clean_mk CONFIG_QCOM_Q6V5_WCSS drivers/remoteproc/Makefile
 
-announce QCOM_WCNSS_PIL - "Qualcomm WCNSS Peripherial Image Loader"
+announce QCOM_WCNSS_PIL - "Qualcomm WCNSS Peripheral Image Loader"
 clean_blob drivers/remoteproc/qcom_wcnss.c
 clean_kconfig drivers/remoteproc/Kconfig QCOM_WCNSS_PIL
 clean_mk CONFIG_QCOM_WCNSS_PIL drivers/remoteproc/Makefile
@@ -3741,9 +3767,22 @@ clean_mk CONFIG_I2C_SLAVE_EEPROM drivers/i2c/Makefile
 # fill in the required fw_image field of mhi_controller.  Let me know
 # if you find any uses in which the firmware is Free Software.
 announce MHI_BUS - "Modem Host Interface (MHI) bus"
-reject_firmware drivers/bus/mhi/core/boot.c
-clean_kconfig drivers/bus/mhi/Kconfig MHI_BUS
-clean_mk CONFIG_MHI_BUS drivers/bus/mhi/core/Makefile
+if test -f drivers/bus/mhi/host/boot.c; then
+  reject_firmware drivers/bus/mhi/host/boot.c
+  clean_kconfig drivers/bus/mhi/host/Kconfig MHI_BUS
+  clean_mk CONFIG_MHI_BUS drivers/bus/mhi/host/Makefile
+else  
+  reject_firmware drivers/bus/mhi/core/boot.c
+  clean_kconfig drivers/bus/mhi/Kconfig MHI_BUS
+  clean_mk CONFIG_MHI_BUS drivers/bus/mhi/core/Makefile
+fi
+
+if test -f drivers/bus/mhi/host/pci_generic.c; then
+  announce MHI_BUS_PCI_GENERIC - "MHI PCI controller driver"
+  clean_blob drivers/bus/mhi/host/pci_generic.c
+  clean_kconfig drivers/bus/mhi/host/Kconfig MHI_BUS_PCI_GENERIC
+  clean_mk CONFIG_MHI_BUS_PCI_GENERIC drivers/bus/mhi/host/Makefile
+fi
 
 # Greybus
 
@@ -3822,6 +3861,15 @@ clean_sed s,usb8388,whatever,g drivers/base/firmware_loader/Kconfig 'removed blo
 
 if $errors; then
   echo errors above were ignored because of --force >&2
+else
+  echo cleaning up has completed successfully, without verification >&2
+  # Verification is largely manual, comparing the changes with
+  # those of a previous known (presumed) good version, e.g.
+  # git merge the previous known good version onto the current base
+  # version, and then git diff with this cleaned-up version.
+  # Creating a tarball of this version, named linux-*.*.tar,
+  # and running deblob-check on it may also help catch cleaning-up
+  # errors: .../deblob-check --use-awk -B linux-*.*.tar.
 fi
 
 exit 0