{"id":19757087,"url":"https://github.com/winmerge/sevenzip","last_synced_at":"2025-06-22T18:35:58.540Z","repository":{"id":28337845,"uuid":"31851073","full_name":"WinMerge/sevenzip","owner":"WinMerge","description":"Unofficial clone of http://sourceforge.net/projects/sevenzip/","archived":false,"fork":false,"pushed_at":"2024-12-05T23:14:05.000Z","size":10189,"stargazers_count":26,"open_issues_count":0,"forks_count":14,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-30T12:31:50.646Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WinMerge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-03-08T13:42:39.000Z","updated_at":"2025-01-26T13:05:08.000Z","dependencies_parsed_at":"2025-05-05T06:00:30.543Z","dependency_job_id":null,"html_url":"https://github.com/WinMerge/sevenzip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WinMerge/sevenzip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WinMerge%2Fsevenzip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WinMerge%2Fsevenzip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WinMerge%2Fsevenzip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WinMerge%2Fsevenzip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WinMerge","download_url":"https://codeload.github.com/WinMerge/sevenzip/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WinMerge%2Fsevenzip/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261344555,"owners_count":23144887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T03:18:02.751Z","updated_at":"2025-06-22T18:35:53.494Z","avatar_url":"https://github.com/WinMerge.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Clone of http://sourceforge.net/projects/sevenzip/\r\n\r\nreadme.txt\r\n\r\n~~~\r\n7-Zip 24.09 Sources\r\n-------------------\r\n\r\n7-Zip is a file archiver for Windows. \r\n\r\n7-Zip Copyright (C) 1999-2024 Igor Pavlov.\r\n\r\n\r\nLicense Info\r\n------------\r\n\r\n7-Zip is free software distributed under the GNU LGPL \r\n(except for unRar code). Also some  code\r\nis licensed under the \"BSD 3-clause License\".\r\nRead \"License.txt\" for more infomation about license.\r\n\r\nNotes about unRAR license:\r\n\r\nPlease check main restriction from unRar license:\r\n\r\n   2. The unRAR sources may be used in any software to handle RAR\r\n      archives without limitations free of charge, but cannot be used\r\n      to re-create the RAR compression algorithm, which is proprietary.\r\n      Distribution of modified unRAR sources in separate form or as a\r\n      part of other software is permitted, provided that it is clearly\r\n      stated in the documentation and source comments that the code may\r\n      not be used to develop a RAR (WinRAR) compatible archiver.\r\n\r\nIn brief it means:\r\n1) You can compile and use compiled files under GNU LGPL rules, since \r\n   unRAR license almost has no restrictions for compiled files.\r\n   You can link these compiled files to LGPL programs.\r\n2) You can fix bugs in source code and use compiled fixed version.\r\n3) You can not use unRAR sources to re-create the RAR compression algorithm.\r\n\r\n\r\nLZMA SDK\r\n--------\r\n\r\nThis package also contains some files from LZMA SDK\r\nYou can download LZMA SDK from:\r\n  http://www.7-zip.org/sdk.html\r\nLZMA SDK is written and placed in the public domain by Igor Pavlov.\r\n\r\n\r\nHow to compile in Windows\r\n-------------------------\r\n\r\nTo compile the sources to Windows binaries you need Visual Studio compiler and/or Windows SDK.\r\nYou can use latest Windows Studio 2017/2019/2022 to compile binaries for x86, x64, arm64 and arm platforms.\r\nAlso you can use old compilers for some platforms:\r\n  x86   : Visual C++ 6.0 with Platform SDK\r\n  x64   : Windows Server 2003 R2 Platform SDK\r\n  ia64 (itanium)  : Windows Server 2003 R2 Platform SDK\r\n  arm for Windows CE : Standard SDK for Windows CE 5.0\r\n\r\nIf you use MSVC6, specify also Platform SDK directories at top of directories lists:\r\nTools / Options / Directories\r\n  - Include files\r\n  - Library files\r\n\r\nAlso you need Microsoft Macro Assembler:\r\n  - ml.exe for x86 \r\n  - ml64.exe for x64\r\nYou can use ml.exe from Windows SDK for Windows Vista or some later versions.\r\n\r\nThere are two ways to compile 7-Zip binaries:\r\n1) via makefile in command line.\r\n2) via dsp file in Visual Studio.\r\n\r\nThe dsp file compiling can be used for development and debug purposes.\r\nAll final 7-Zip binaries are compiled via makefiles, that provide best\r\noptimization options.\r\n\r\n\r\nHow to compile with makefile\r\n----------------------------\r\n\r\nSome macronames can be defined for compiling with makefile:\r\n\r\nPLATFORM\r\n  with possible values: x64, x86, arm64, arm, ia64\r\n\r\nOLD_COMPILER\r\n  for old VC compiler, like MSCV 6.0.\r\n\r\nMY_DYNAMIC_LINK\r\n  for dynamic linking to the run-time library (msvcrt.dll). \r\n  The default makefile option is static linking to the run-time library.\r\n\r\n\r\n\r\nCompiling 7-Zip for Unix/Linux\r\n------------------------------\r\n\r\nThere are several options to compile 7-Zip with different compilers: gcc and clang.\r\nAlso 7-Zip code contains two versions for some parts of code: in C and in Assembeler.\r\nSo if you compile the version with Assembeler code, you will get faster 7-Zip binary.\r\n\r\n7-Zip's assembler code uses the following syntax for different platforms:\r\n\r\n1) x86 and x86-64 (AMD64): MASM syntax. \r\n   Now there are 3 programs that supports MASM syntax in Linux.\r\n'    'Asmc Macro Assembler, JWasm, and UASM. Note that JWasm now doesn't support some \r\n      cpu instructions used in 7-Zip.\r\n   So you must install Asmc Macro Assembler in Linux or UASM, if you want to compile \r\n   fastest version of 7-Zip  x86 and x86-64:\r\n     https://github.com/nidud/asmc\r\n     https://github.com/Terraspace/UASM\r\n\r\n\r\n2) arm64: GNU assembler for ARM64 with preprocessor. \r\n   That systax is supported by GCC and CLANG for ARM64.\r\n\r\nThere are different binaries that can be compiled from 7-Zip source.\r\nThere are 2 main files in folder for compiling:\r\n  makefile        - that can be used for compiling Windows version of 7-Zip with nmake command\r\n  makefile.gcc    - that can be used for compiling Linux/macOS versions of 7-Zip or Windows version \r\n                    with MINGW (GCC) with make command.\r\n                   \r\nAt first you must change the current folder to folder that contains `makefile.gcc`:\r\n\r\n  cd CPP/7zip/Bundles/Alone2\r\n\r\nThen you can compile `makefile.gcc` with the command:\r\n\r\n  make -j -f makefile.gcc\r\n\r\nAlso there are additional \"*.mak\" files in folder \"CPP/7zip/\" that can be used to compile \r\n7-Zip binaries with optimized code and optimzing options.\r\n\r\nTo compile with GCC without assembler:\r\n  cd CPP/7zip/Bundles/Alone2\r\n  make -j -f ../../cmpl_gcc.mak\r\n\r\nTo compile with CLANG without assembler:\r\n  make -j -f ../../cmpl_clang.mak\r\n\r\nTo compile 7-Zip for x86-64 with asmc assembler:\r\n  make -j -f ../../cmpl_gcc_x64.mak\r\n\r\nTo compile 7-Zip for arm64 with assembler:\r\n  make -j -f ../../cmpl_gcc_arm64.mak\r\n\r\nTo compile 7-Zip for arm64 for macOS:\r\n  make -j -f ../../cmpl_mac_arm64.mak\r\n\r\nAlso you can change some compiler options in the \"mak\" files:\r\n  cmpl_gcc.mak\r\n  var_gcc.mak\r\n  warn_gcc.mak\r\n\r\nmakefile.gcc supports some variables that can change compile options\r\n\r\nUSE_JWASM=1\r\n  use JWasm assembler instead of Asmc.\r\n  Note that JWasm doesn't support AES instructions. So AES code from C version AesOpt.c \r\n  will be used instead of assembler code from AesOpt.asm.\r\n\r\nIf you want to use UASM for x86-64 compiling, you can change 7zip_gcc.mak, \r\nor send IS_X64=1 USE_ASM=1 MY_ASM=\"$UASM\" to make command calling:\r\n  UASM=\"$PWD/GccUnixR/uasm\"\r\n  cd \"7zip-src/CPP/7zip/Bundles/Alone2\"\r\n  make -f makefile.gcc -j IS_X64=1 USE_ASM=1 MY_ASM=\"$UASM\"\r\n\r\n\r\nDISABLE_RAR=1\r\n  removes whole RAR related code from compilation.\r\n\r\nDISABLE_RAR_COMPRESS=1\r\n  removes \"not fully free\" code of RAR decompression codecs from compilation.\r\n\r\nRAR decompression codecs in 7-Zip code has some additional license restrictions, \r\nthat can be treated as not fully compatible with free-software licenses.\r\nDISABLE_RAR_COMPRESS=1 allows to exclude such \"not-fully-free\" RAR code from compilation.\r\nif DISABLE_RAR_COMPRESS=1 is specified, 7-zip will not be able to decompress files \r\nfrom rar archives, but 7-zip still will be able to open rar archives to get list of \r\nfiles or to extract files that are stored without compression.\r\nif DISABLE_RAR=1 is specified, 7-zip will not be able to work with RAR archives.\r\n\r\n\r\n\r\n7-Zip and p7zip\r\n===============\r\nNow there are two different ports of 7-Zip for Linux/macOS:\r\n\r\n1) p7zip - another port of 7-Zip for Linux, made by an independent developer.\r\n   The latest version of p7zip now is 16.02, and that p7zip 16.02 is outdated now.\r\n   http://sourceforge.net/projects/p7zip/ \r\n\r\n2) 7-Zip for Linux/macOS - this package - it's new code with all changes from latest 7-Zip for Windows.\r\n\r\nThese two ports are not identical. \r\nNote also that some Linux specific things can be implemented better in p7zip than in new 7-Zip for Linux.\r\n\r\n\r\n\r\n\r\nNotes:\r\n------\r\n7-Zip consists of COM modules (DLL files).\r\nBut 7-Zip doesn't use standard COM interfaces for creating objects.\r\nLook at\r\n7zip\\UI\\Client7z folder for example of using DLL files of 7-Zip. \r\nSome DLL files can use other DLL files from 7-Zip.\r\nIf you don't like it, you must use standalone version of DLL.\r\nTo compile standalone version of DLL you must include all used parts\r\nto project and define some defs. \r\nFor example, 7zip\\Bundles\\Format7z is a standalone version  of 7z.dll \r\nthat works with 7z format. So you can use such DLL in your project \r\nwithout additional DLL files.\r\n\r\n\r\nDescription of 7-Zip sources package\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nDOC                Documentation\r\n---\r\n  readme.txt     - Readme file\r\n  src-history.txt  - Sources history\r\n  7zC.txt        - 7z ANSI-C Decoder description\r\n  7zFormat.txt   - 7z format description\r\n  Methods.txt    - Compression method IDs\r\n  lzma.txt       - LZMA compression description\r\n  License.txt    - license information\r\n  copying.txt    - GNU LGPL license\r\n  unRarLicense.txt - License for unRAR part of source code\r\n  7zip.wxs       - installer script for WIX\r\n  7zip.hhp       - html help project file\r\n\r\nAsm - Source code in Assembler : optimized code for CRC, SHA, AES, LZMA decoding.\r\n\r\nC   - Source code in C\r\n\r\nCPP - Source code in C++\r\n\r\nCommon            common files for C++ projects\r\n\r\nWindows           common files for Windows related code\r\n\r\n7zip\r\n\r\n  Common          Common modules for 7-zip\r\n\r\n  Archive         files related to archiving\r\n\r\n  Bundle          Modules that are bundles of other modules (files)\r\n\r\n    Alone         7za.exe: Standalone version of 7-Zip console that supports only 7z/xz/cab/zip/gzip/bzip2/tar.\r\n    Alone2        7zz.exe: Standalone version of 7-Zip console that supports all formats.\r\n    Alone7z       7zr.exe: Standalone version of 7-Zip console that supports only 7z (reduced version)\r\n    Fm            Standalone version of 7-Zip File Manager\r\n    Format7z            7za.dll:  .7z support\r\n    Format7zExtract     7zxa.dll: .7z support, extracting only\r\n    Format7zR           7zr.dll:  .7z support, reduced version\r\n    Format7zExtractR    7zxr.dll: .7z support, reduced version, extracting only\r\n    Format7zF           7z.dll:   all formats\r\n    LzmaCon       lzma.exe: LZMA compression/decompression\r\n    SFXCon        7zCon.sfx: Console 7z SFX module\r\n    SFXWin        7z.sfx: Windows 7z SFX module\r\n    SFXSetup      7zS.sfx: Windows 7z SFX module for Installers\r\n\r\n  Compress        files for compression / decompression\r\n\r\n  Crypto          files for encryption / decryption\r\n\r\n  UI\r\n\r\n    Agent         Intermediary modules for FAR plugin and Explorer plugin\r\n    Client7z      Test application for 7za.dll \r\n    Common        Common UI files\r\n    Console       7z.exe : Console version\r\n    Explorer      7-zip.dll: 7-Zip Shell extension\r\n    Far           plugin for Far Manager\r\n    FileManager   7zFM.exe: 7-Zip File Manager\r\n    GUI           7zG.exe: 7-Zip GUI version\r\n\r\n\r\n\r\n---\r\nIgor Pavlov\r\nhttp://www.7-zip.org\r\n~~~\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinmerge%2Fsevenzip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinmerge%2Fsevenzip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinmerge%2Fsevenzip/lists"}