Merge pull request #312441 from eclairevoyant/7zz-update

_7zz: fix update script; 23.01 -> 24.05

authored by Aleksana and committed by GitHub 9c58fc7f 8762fc04

+74 -234
+8 -11
pkgs/tools/archivers/7zz/default.nix
··· 11 11 , enableUnfree ? false 12 12 13 13 # For tests 14 - , _7zz 15 14 , testers 16 15 }: 17 16 ··· 26 25 in 27 26 stdenv.mkDerivation (finalAttrs: { 28 27 pname = "7zz"; 29 - version = "23.01"; 28 + version = "24.05"; 30 29 31 30 src = fetchurl { 32 31 url = "https://7-zip.org/a/7z${lib.replaceStrings [ "." ] [ "" ] finalAttrs.version}-src.tar.xz"; 33 32 hash = { 34 - free = "sha256-F1ybQsyReF2NBR/3eMZySvxVEntpwq2VUlRCHp/5nZs="; 35 - unfree = "sha256-NWBxAHNg5aGCTZkEmT6LJIC1G1cOjJ+vfA9Y6+S/n3Q="; 33 + free = "sha256-yYq3IEV2GeDWwW6KrdpgK2/QOsmDcBpIZvbk6VKZETY="; 34 + unfree = "sha256-Y/NBz4C40ofG6UVRmz2g+nVVPIVXKkcbf6bmj5qQt5A="; 36 35 }.${if enableUnfree then "unfree" else "free"}; 37 36 downloadToTemp = (!enableUnfree); 38 37 # remove the unRAR related code from the src drv ··· 55 54 56 55 patches = [ 57 56 ./fix-cross-mingw-build.patch 58 - # remove unneeded semicolons related to -Wextra-semi-stmt, caused by upstream 59 - ./fix-empty-expr-stmt.patch 60 57 ]; 61 58 62 59 postPatch = lib.optionalString stdenv.hostPlatform.isMinGW '' ··· 117 114 passthru = { 118 115 updateScript = ./update.sh; 119 116 tests.version = testers.testVersion { 120 - package = _7zz; 117 + package = finalAttrs.finalPackage; 121 118 command = "7zz --help"; 122 119 }; 123 120 }; 124 121 125 - meta = with lib; { 122 + meta = { 126 123 description = "Command line archiver utility"; 127 124 homepage = "https://7-zip.org"; 128 - license = with licenses; 125 + license = with lib.licenses; 129 126 # 7zip code is largely lgpl2Plus 130 127 # CPP/7zip/Compress/LzfseDecoder.cpp is bsd3 131 128 [ lgpl2Plus /* and */ bsd3 ] ++ 132 129 # and CPP/7zip/Compress/Rar* are unfree with the unRAR license restriction 133 130 # the unRAR compression code is disabled by default 134 131 lib.optionals enableUnfree [ unfree ]; 135 - maintainers = with maintainers; [ anna328p eclairevoyant jk peterhoeg ]; 136 - platforms = platforms.unix ++ platforms.windows; 132 + maintainers = with lib.maintainers; [ anna328p eclairevoyant jk peterhoeg ]; 133 + platforms = with lib.platforms; unix ++ windows; 137 134 mainProgram = "7zz"; 138 135 }; 139 136 })
+60 -32
pkgs/tools/archivers/7zz/fix-cross-mingw-build.patch
··· 1 - --- a/C/7zVersion.rc 2 - +++ b/C/7zVersion.rc 3 - @@ -5,7 +5,7 @@ 4 - #define MY_VFT_APP 0x00000001L 5 - #define MY_VFT_DLL 0x00000002L 6 - 7 - -// #include <WinVer.h> 8 - +// #include <winver.h> 9 - 10 - #ifndef MY_VERSION 11 - #include "7zVersion.h" 12 1 --- a/C/7zip_gcc_c.mak 13 2 +++ b/C/7zip_gcc_c.mak 14 3 @@ -106,7 +106,7 @@ ··· 20 9 21 10 CFLAGS_EXTRA = -DUNICODE -D_UNICODE 22 11 # -Wno-delete-non-virtual-dtor 23 - --- a/CPP/7zip/7zip_gcc.mak 24 - +++ b/CPP/7zip/7zip_gcc.mak 25 - @@ -124,8 +124,8 @@ 26 - DEL_OBJ_EXE = -$(RM) $(O)\*.o $(O)\$(PROG).exe $(O)\$(PROG).dll 27 - endif 12 + --- a/C/7zVersion.rc 13 + +++ b/C/7zVersion.rc 14 + @@ -5,7 +5,7 @@ 15 + #define MY_VFT_APP 0x00000001L 16 + #define MY_VFT_DLL 0x00000002L 28 17 29 - -LIB2_GUI = -lOle32 -lGdi32 -lComctl32 -lComdlg32 -lShell32 $(LIB_HTMLHELP) 30 - -LIB2 = -loleaut32 -luuid -ladvapi32 -lUser32 $(LIB2_GUI) 31 - +LIB2_GUI = -lole32 -lgdi32 -lcomctl32 -lcomdlg32 -lshell32 $(LIB_HTMLHELP) 32 - +LIB2 = -loleaut32 -luuid -ladvapi32 -luser32 $(LIB2_GUI) 18 + -// #include <WinVer.h> 19 + +// #include <winver.h> 33 20 34 - CXXFLAGS_EXTRA = -DUNICODE -D_UNICODE 35 - # -Wno-delete-non-virtual-dtor 21 + #ifndef MY_VERSION 22 + #include "7zVersion.h" 36 23 --- a/C/Util/7zipInstall/resource.rc 37 24 +++ b/C/Util/7zipInstall/resource.rc 38 - @@ -1,6 +1,6 @@ 39 - #include <winnt.h> 40 - #include <WinUser.h> 25 + @@ -1,7 +1,7 @@ 26 + #include <windows.h> 27 + // #include <winnt.h> 28 + // #include <WinUser.h> 41 29 -#include <CommCtrl.h> 42 30 +#include <commctrl.h> 43 31 44 32 #define USE_COPYRIGHT_CR 45 33 #include "../../7zVersion.rc" 34 + --- a/C/Util/7zipInstall/resource.rc.rej 35 + +++ b/C/Util/7zipInstall/resource.rc.rej 36 + @@ -0,0 +1,10 @@ 37 + +--- C/Util/7zipInstall/resource.rc 38 + ++++ C/Util/7zipInstall/resource.rc 39 + +@@ -1,6 +1,6 @@ 40 + + #include <winnt.h> 41 + + #include <WinUser.h> 42 + +-#include <CommCtrl.h> 43 + ++#include <commctrl.h> 44 + + 45 + + #define USE_COPYRIGHT_CR 46 + + #include "../../7zVersion.rc" 46 47 --- a/C/Util/7zipUninstall/resource.rc 47 48 +++ b/C/Util/7zipUninstall/resource.rc 48 - @@ -1,6 +1,6 @@ 49 - #include <winnt.h> 50 - #include <WinUser.h> 49 + @@ -1,7 +1,7 @@ 50 + #include <windows.h> 51 + // #include <winnt.h> 52 + // #include <WinUser.h> 51 53 -#include <CommCtrl.h> 52 54 +#include <commctrl.h> 53 55 54 56 #define USE_COPYRIGHT_CR 55 57 #include "../../7zVersion.rc" 58 + --- a/C/Util/7zipUninstall/resource.rc.rej 59 + +++ b/C/Util/7zipUninstall/resource.rc.rej 60 + @@ -0,0 +1,10 @@ 61 + +--- C/Util/7zipUninstall/resource.rc 62 + ++++ C/Util/7zipUninstall/resource.rc 63 + +@@ -1,6 +1,6 @@ 64 + + #include <winnt.h> 65 + + #include <WinUser.h> 66 + +-#include <CommCtrl.h> 67 + ++#include <commctrl.h> 68 + + 69 + + #define USE_COPYRIGHT_CR 70 + + #include "../../7zVersion.rc" 71 + --- a/CPP/7zip/7zip_gcc.mak 72 + +++ b/CPP/7zip/7zip_gcc.mak 73 + @@ -142,8 +142,8 @@ 74 + DEL_OBJ_EXE = -$(RM) $(O)\*.o $(O)\$(PROG).exe $(O)\$(PROG).dll 75 + endif 76 + 77 + -LIB2_GUI = -lOle32 -lGdi32 -lComctl32 -lComdlg32 -lShell32 $(LIB_HTMLHELP) 78 + -LIB2 = -loleaut32 -luuid -ladvapi32 -lUser32 $(LIB2_GUI) 79 + +LIB2_GUI = -lole32 -lgdi32 -lcomctl32 -lcomdlg32 -lshell32 $(LIB_HTMLHELP) 80 + +LIB2 = -loleaut32 -luuid -ladvapi32 -luser32 $(LIB2_GUI) 81 + 82 + # v24.00: -DUNICODE and -D_UNICODE are defined in precompilation header files 83 + # CXXFLAGS_EXTRA = -DUNICODE -D_UNICODE 56 84 --- a/CPP/7zip/Crypto/RandGen.cpp 57 85 +++ b/CPP/7zip/Crypto/RandGen.cpp 58 86 @@ -19,7 +19,7 @@ ··· 111 139 --- a/CPP/Windows/Control/ImageList.h 112 140 +++ b/CPP/Windows/Control/ImageList.h 113 141 @@ -3,7 +3,7 @@ 114 - #ifndef __WINDOWS_CONTROL_IMAGE_LIST_H 115 - #define __WINDOWS_CONTROL_IMAGE_LIST_H 142 + #ifndef ZIP7_INC_WINDOWS_CONTROL_IMAGE_LIST_H 143 + #define ZIP7_INC_WINDOWS_CONTROL_IMAGE_LIST_H 116 144 117 145 -#include <CommCtrl.h> 118 146 +#include <commctrl.h> ··· 144 172 --- a/CPP/Windows/SecurityUtils.h 145 173 +++ b/CPP/Windows/SecurityUtils.h 146 174 @@ -3,7 +3,7 @@ 147 - #ifndef __WINDOWS_SECURITY_UTILS_H 148 - #define __WINDOWS_SECURITY_UTILS_H 175 + #ifndef ZIP7_INC_WINDOWS_SECURITY_UTILS_H 176 + #define ZIP7_INC_WINDOWS_SECURITY_UTILS_H 149 177 150 178 -#include <NTSecAPI.h> 151 179 +#include <ntsecapi.h>
-184
pkgs/tools/archivers/7zz/fix-empty-expr-stmt.patch
··· 1 - diff -Naur a/C/7zCrc.c b/C/7zCrc.c 2 - --- a/C/7zCrc.c 3 - +++ b/C/7zCrc.c 4 - @@ -174,7 +174,7 @@ 5 - UInt32 Z7_FASTCALL CrcUpdateT0_32(UInt32 v, const void *data, size_t size, const UInt32 *table) 6 - { 7 - const Byte *p = (const Byte *)data; 8 - - UNUSED_VAR(table); 9 - + UNUSED_VAR(table) 10 - 11 - for (; size != 0 && ((unsigned)(ptrdiff_t)p & (T0_32_UNROLL_BYTES - 1)) != 0; size--) 12 - v = __crc32b(v, *p++); 13 - @@ -206,7 +206,7 @@ 14 - UInt32 Z7_FASTCALL CrcUpdateT0_64(UInt32 v, const void *data, size_t size, const UInt32 *table) 15 - { 16 - const Byte *p = (const Byte *)data; 17 - - UNUSED_VAR(table); 18 - + UNUSED_VAR(table) 19 - 20 - for (; size != 0 && ((unsigned)(ptrdiff_t)p & (T0_64_UNROLL_BYTES - 1)) != 0; size--) 21 - v = __crc32b(v, *p++); 22 - diff -Naur a/C/AesOpt.c b/C/AesOpt.c 23 - --- a/C/AesOpt.c 24 - +++ b/C/AesOpt.c 25 - @@ -639,7 +639,7 @@ 26 - const v128 k_z0 = w[2]; 27 - for (; numBlocks != 0; numBlocks--, data++) 28 - { 29 - - MM_XOR_m (*data); 30 - + MM_XOR_m (*data) 31 - AES_E_MC_m (k0) 32 - AES_E_MC_m (k1) 33 - AES_E_MC_m (k2) 34 - @@ -660,7 +660,7 @@ 35 - } 36 - } 37 - AES_E_m (k_z1) 38 - - MM_XOR_m (k_z0); 39 - + MM_XOR_m (k_z0) 40 - *data = m; 41 - } 42 - *p = m; 43 - @@ -745,7 +745,7 @@ 44 - while (w != p); 45 - WOP_KEY (AES_D, 1) 46 - WOP_KEY (AES_XOR, 0) 47 - - MM_XOR (m0, iv); 48 - + MM_XOR (m0, iv) 49 - WOP_M1 (XOR_data_M1) 50 - iv = data[NUM_WAYS - 1]; 51 - WOP (STORE_data) 52 - @@ -759,14 +759,14 @@ 53 - AES_D_IMC_m (w[2]) 54 - do 55 - { 56 - - AES_D_IMC_m (w[1]); 57 - - AES_D_IMC_m (w[0]); 58 - + AES_D_IMC_m (w[1]) 59 - + AES_D_IMC_m (w[0]) 60 - w -= 2; 61 - } 62 - while (w != p); 63 - - AES_D_m (w[1]); 64 - - MM_XOR_m (w[0]); 65 - - MM_XOR_m (iv); 66 - + AES_D_m (w[1]) 67 - + MM_XOR_m (w[0]) 68 - + MM_XOR_m (iv) 69 - iv = *data; 70 - *data = m; 71 - } 72 - @@ -809,11 +809,11 @@ 73 - { 74 - const v128 *w = p; 75 - v128 m; 76 - - CTR_START (m, 0); 77 - + CTR_START (m, 0) 78 - do 79 - { 80 - - AES_E_MC_m (w[0]); 81 - - AES_E_MC_m (w[1]); 82 - + AES_E_MC_m (w[0]) 83 - + AES_E_MC_m (w[1]) 84 - w += 2; 85 - } 86 - while (w != wEnd); 87 - diff -Naur a/C/LzmaEnc.c b/C/LzmaEnc.c 88 - --- a/C/LzmaEnc.c 89 - +++ b/C/LzmaEnc.c 90 - @@ -195,11 +195,11 @@ 91 - unsigned GetPosSlot1(UInt32 pos) 92 - { 93 - unsigned res; 94 - - BSR2_RET(pos, res); 95 - + BSR2_RET(pos, res) 96 - return res; 97 - } 98 - -#define GetPosSlot2(pos, res) { BSR2_RET(pos, res); } 99 - -#define GetPosSlot(pos, res) { if (pos < 2) res = pos; else BSR2_RET(pos, res); } 100 - +#define GetPosSlot2(pos, res) { BSR2_RET(pos, res) } 101 - +#define GetPosSlot(pos, res) { if (pos < 2) res = pos; else BSR2_RET(pos, res) } 102 - 103 - 104 - #else // ! LZMA_LOG_BSR 105 - diff -Naur a/C/Sha1Opt.c b/C/Sha1Opt.c 106 - --- a/C/Sha1Opt.c 107 - +++ b/C/Sha1Opt.c 108 - @@ -300,26 +300,26 @@ 109 - LOAD_SHUFFLE (m2, 2) 110 - LOAD_SHUFFLE (m3, 3) 111 - 112 - - T(m0, c0); H(e1); C(e0); 113 - - T(m1, c0); SU0(m0, m1, m2); H(e0); C(e1); 114 - - T(m2, c0); SU0(m1, m2, m3); SU1(m0, m3); H(e1); C(e0); 115 - - T(m3, c0); SU0(m2, m3, m0); SU1(m1, m0); H(e0); C(e1); 116 - - T(m0, c0); SU0(m3, m0, m1); SU1(m2, m1); H(e1); C(e0); 117 - - T(m1, c1); SU0(m0, m1, m2); SU1(m3, m2); H(e0); P(e1); 118 - - T(m2, c1); SU0(m1, m2, m3); SU1(m0, m3); H(e1); P(e0); 119 - - T(m3, c1); SU0(m2, m3, m0); SU1(m1, m0); H(e0); P(e1); 120 - - T(m0, c1); SU0(m3, m0, m1); SU1(m2, m1); H(e1); P(e0); 121 - - T(m1, c1); SU0(m0, m1, m2); SU1(m3, m2); H(e0); P(e1); 122 - - T(m2, c2); SU0(m1, m2, m3); SU1(m0, m3); H(e1); M(e0); 123 - - T(m3, c2); SU0(m2, m3, m0); SU1(m1, m0); H(e0); M(e1); 124 - - T(m0, c2); SU0(m3, m0, m1); SU1(m2, m1); H(e1); M(e0); 125 - - T(m1, c2); SU0(m0, m1, m2); SU1(m3, m2); H(e0); M(e1); 126 - - T(m2, c2); SU0(m1, m2, m3); SU1(m0, m3); H(e1); M(e0); 127 - - T(m3, c3); SU0(m2, m3, m0); SU1(m1, m0); H(e0); P(e1); 128 - - T(m0, c3); SU0(m3, m0, m1); SU1(m2, m1); H(e1); P(e0); 129 - - T(m1, c3); SU1(m3, m2); H(e0); P(e1); 130 - - T(m2, c3); H(e1); P(e0); 131 - - T(m3, c3); H(e0); P(e1); 132 - + T(m0, c0); H(e1); C(e0) 133 - + T(m1, c0); SU0(m0, m1, m2) H(e0); C(e1) 134 - + T(m2, c0); SU0(m1, m2, m3) SU1(m0, m3) H(e1); C(e0) 135 - + T(m3, c0); SU0(m2, m3, m0) SU1(m1, m0) H(e0); C(e1) 136 - + T(m0, c0); SU0(m3, m0, m1) SU1(m2, m1) H(e1); C(e0) 137 - + T(m1, c1); SU0(m0, m1, m2) SU1(m3, m2) H(e0); P(e1) 138 - + T(m2, c1); SU0(m1, m2, m3) SU1(m0, m3) H(e1); P(e0) 139 - + T(m3, c1); SU0(m2, m3, m0) SU1(m1, m0) H(e0); P(e1) 140 - + T(m0, c1); SU0(m3, m0, m1) SU1(m2, m1) H(e1); P(e0) 141 - + T(m1, c1); SU0(m0, m1, m2) SU1(m3, m2) H(e0); P(e1) 142 - + T(m2, c2); SU0(m1, m2, m3) SU1(m0, m3) H(e1); M(e0) 143 - + T(m3, c2); SU0(m2, m3, m0) SU1(m1, m0) H(e0); M(e1) 144 - + T(m0, c2); SU0(m3, m0, m1) SU1(m2, m1) H(e1); M(e0) 145 - + T(m1, c2); SU0(m0, m1, m2) SU1(m3, m2) H(e0); M(e1) 146 - + T(m2, c2); SU0(m1, m2, m3) SU1(m0, m3) H(e1); M(e0) 147 - + T(m3, c3); SU0(m2, m3, m0) SU1(m1, m0) H(e0); P(e1) 148 - + T(m0, c3); SU0(m3, m0, m1) SU1(m2, m1) H(e1); P(e0) 149 - + T(m1, c3); SU1(m3, m2) H(e0); P(e1) 150 - + T(m2, c3); H(e1); P(e0) 151 - + T(m3, c3); H(e0); P(e1) 152 - 153 - abcd = vaddq_u32(abcd, abcd_save); 154 - e0 += e0_save; 155 - diff -Naur a/C/Sha256Opt.c b/C/Sha256Opt.c 156 - --- a/C/Sha256Opt.c 157 - +++ b/C/Sha256Opt.c 158 - @@ -316,10 +316,10 @@ 159 - LOAD_SHUFFLE (m2, 2) 160 - LOAD_SHUFFLE (m3, 3) 161 - 162 - - R16 ( 0, NNN, NNN, SM1, NNN, SM1, SM2, SM1, SM2 ); 163 - - R16 ( 1, SM1, SM2, SM1, SM2, SM1, SM2, SM1, SM2 ); 164 - - R16 ( 2, SM1, SM2, SM1, SM2, SM1, SM2, SM1, SM2 ); 165 - - R16 ( 3, SM1, SM2, NNN, SM2, NNN, NNN, NNN, NNN ); 166 - + R16 ( 0, NNN, NNN, SM1, NNN, SM1, SM2, SM1, SM2 ) 167 - + R16 ( 1, SM1, SM2, SM1, SM2, SM1, SM2, SM1, SM2 ) 168 - + R16 ( 2, SM1, SM2, SM1, SM2, SM1, SM2, SM1, SM2 ) 169 - + R16 ( 3, SM1, SM2, NNN, SM2, NNN, NNN, NNN, NNN ) 170 - 171 - state0 = vaddq_u32(state0, state0_save); 172 - state1 = vaddq_u32(state1, state1_save); 173 - diff -Naur a/CPP/Windows/System.h b/CPP/Windows/System.h 174 - --- a/CPP/Windows/System.h 175 - +++ b/CPP/Windows/System.h 176 - @@ -105,7 +105,7 @@ 177 - } 178 - 179 - void CpuZero() { } 180 - - void CpuSet(unsigned cpuIndex) { UNUSED_VAR(cpuIndex); } 181 - + void CpuSet(unsigned cpuIndex) { UNUSED_VAR(cpuIndex) } 182 - int IsCpuSet(unsigned cpuIndex) const { return (cpuIndex < numSysThreads) ? 1 : 0; } 183 - 184 - BOOL SetProcAffinity() const
+6 -7
pkgs/tools/archivers/7zz/update.sh
··· 1 1 #! /usr/bin/env nix-shell 2 - #! nix-shell -i bash -p coreutils gnused curl jq nix-prefetch 2 + #! nix-shell -i bash -p curl xq-xml nix-prefetch 3 3 set -euo pipefail 4 4 cd "$(dirname "${BASH_SOURCE[0]}")" 5 5 6 6 DRV_DIR="$PWD" 7 7 8 8 OLD_VERSION="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)" 9 - # The best_release.json is not always up-to-date 10 - # In those cases you can force the version by calling `./update.sh <newer_version>` 11 - NEW_VERSION="${1:-$(curl -H "Accept: application/json" 'https://sourceforge.net/projects/sevenzip/best_release.json' | jq '.platform_releases.linux.filename' -r | cut -d/ -f3)}" 9 + NEW_VERSION="$(curl -H 'Accept: application/rss+xml' 'https://sourceforge.net/projects/sevenzip/rss?path=/7-Zip' | xq -x "substring((/rss/channel/item[link[contains(., 'src.tar.xz')]])[1]/title, 8, 5)")" 12 10 13 11 echo "comparing versions $OLD_VERSION => $NEW_VERSION" 14 12 if [[ "$OLD_VERSION" == "$NEW_VERSION" ]]; then ··· 26 24 NEW_VERSION_FORMATTED="$(echo "$NEW_VERSION" | tr -d '.')" 27 25 URL="https://7-zip.org/a/7z${NEW_VERSION_FORMATTED}-src.tar.xz" 28 26 27 + # `nix-prefetch` is broken without flakes 28 + # see https://github.com/msteen/nix-prefetch/issues/51 29 + NEW_FREE_HASH=$(nix-prefetch -f "$NIXPKGS_ROOT" -E "_7zz.src" --url "$URL" --option extra-experimental-features flakes) 29 30 30 - NEW_FREE_HASH=$(nix-prefetch -f "$NIXPKGS_ROOT" -E "_7zz.src" --url "$URL") 31 - 32 - NEW_UNFREE_OUT=$(nix-prefetch -f "$NIXPKGS_ROOT" -E "(_7zz.override { enableUnfree = true; }).src" --url "$URL" --output raw --print-path) 31 + NEW_UNFREE_OUT=$(nix-prefetch -f "$NIXPKGS_ROOT" -E "(_7zz.override { enableUnfree = true; }).src" --url "$URL" --output raw --print-path --option extra-experimental-features flakes) 33 32 # first line of raw output is the hash 34 33 NEW_UNFREE_HASH="$(echo "$NEW_UNFREE_OUT" | sed -n 1p)" 35 34 # second line of raw output is the src path