All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Added support for Python 3.12 (#272)
- Introduced
pyproject.toml
and moved metadata fromsetup.py
(#267) - Removed use of deprecated
pkg_resources
(#271, #274)
- Fixed an issue with non-ELF "binary" files in PyInstaller archives causing a crash (#270)
0.14.1 - 2023-08-07
- Reverted invalid fix (#255) for libnssfix link failure (#262)
- Fixed issue causing libnssfix link failure when building on GLIBC 2.34 again, by linking against versioned SONAME (.2) (#259)
0.14.0 - 2023-07-10
This release was pulled from PyPI due to an incorrect fix in #255.
- Fixed issue causing libnssfix link failure when building on GLIBC 2.34 (#255)
- Dropped support for Python 3.5 and 3.6 (#247)
0.13.9 - 2023-04-16
- Updated to support PyInstaller 5.10 archive API changes (#236, #237)
- Refuse to process files with PyInstaller 4.1 or 4.2 (#238)
- Note: This applies even if the files were built with a different version of PyInstaller; if that version is 4.1 or 4.2, the original bug will manifest.
0.13.8 - 2022-08-07
- Fixed a problem with 0.13.7 release whl (PyPI won't allow re-uploads)
0.13.7 - 2022-08-07
- Fixed an issue where library symlinks with the same basename would present problems (#225)
- Don't crash if .git/ dir is present but git is not installed (#226)
- Fixed potential issue where bootloader linked against glibc could result in target NSS libraries being loaded and causing a cash at startup ([#228])
0.13.6 - 2021-12-02
- Change
--debug
option to appear in CLI help output
- Fix bug sometimes causing a crash when
-l
is used (#217)
0.13.5 - 2021-10-26
- Handle variables in
DT_NEEDED
tags as seen inldd
output on RaspPI OS (#210)
0.13.4 - 2021-10-22
- Perform RUNPATH auditing on all PyInstaller archive libraries before aborting (#208)
0.13.3 - 2021-10-14
- Fix ldd warning about libnssfix.so not being executable (#204)
0.13.2 - 2021-10-09
- Log additional diagnostic information at startup (#199)
0.13.1 - 2021-10-06
- Log staticx version and arguments at startup (#197)
0.13.0 - 2021-10-04
- Added auditing of all shared libraries to detect problematic usages of
RPATH
/RUNPATH
. Libraries now haveRPATH
/RUNPATH
removed while being added, unless those libraries come from a PyInstalled application. (#173)
- Rework library-adding code to lazily copy libraries before modifying (#192)
0.12.3 - 2021-09-04
- Added
STATICX_LDD
environment variable to override theldd
executable used by Staticx to discover library dependencies. (#180)
LD_LIBRARY_PATH
enviroment variable is now maintained when invokingldd
to discover dependencies (#185)
0.12.2 - 2021-05-22
- Worked around patchelf bug which caused
Couldn't find DT_RPATH tag
error at runtime (#175) - Fixed a bug which caused the glibc hook to crash on non-glibc executables (#179)
0.12.1 - 2021-02-06
- Fixed bug causing libnssfix to be built incorrectly under SCons v4.1.0 (#168)
0.12.0 - 2020-09-29
- Added support for native 32-bit builds of bootloader (#149)
- Binary wheels now identify as
manylinux1_x86_64
(#151)
- Removed more Python 2.7 compatibility cruft (#142, #146, #148)
- Removed additional unnecessary elements of libtar (#154)
0.11.0 - 2020-07-27
- Improved tar extraction to minimize number of write() calls (#131)
- Set NODEFLIB flag to prevent any libraries from the target system from being loaded (#138)
- "nssfix" is used to prevent target system
/etc/nssswitch.conf
from being used which would attempt to load systemlibnss_*.so
libraries ([#139])
- Bundled applications retain their original name (#135)
0.10.0 - 2020-05-30
- Added
sx-extract
archive extraction/dumping tool (#114)
- Drop support for Python 2.7 (#115)
0.9.1 - 2020-01-29
- Correct handling of absolute path symlink in ldd output (#118)
- Fixed null tmpdir argument error on GCC9 (#120)
- Fixed ldd "you do not have execution permission..." warning (#122)
0.9.0 - 2020-01-11
- Staticx binaries now respect
$TMPDIR
for creating temporary directory (#101)
- Ensure user program is always marked executable in archive (#112)
- Don't hard-code exclusion of
linux-vdso.so.1
(#102)
- Drop support for Python 3.4 (#111)
0.8.1 - 2019-12-30
- Changed
setup.py
to respectBOOTLOADER_CC
, to simplify.travis.yml
and ensure that released wheels are always built with musl-libc.
0.8.0 - 2019-12-30
- Set
STATICX_BUNDLE_DIR
andSTATICX_PROG_PATH
in child process (#81) - Add
--debug
flag to bundle debug bootloader (#87)
- Changed pyinstaller hook to ignore static executables (#83)
- Always generate tar archive in GNU format. Python 3.8 changed the default to PAX which is not supported by our libtar. (#85)
- Add backports.lzma to setup.py for Python 2, removing manual requirement (#89)
0.7.0 - 2019-03-10
- Refactored and trimmed libtar (#74)
- Correctly handle applications and libraries that specify an
RPATH
including$ORIGIN
, including apps built with PyInstaller (#75) - Fixed potential issue in ignored libraries list (#77)
- Fixed missing libxz in source distributions (#77)
0.6.0 - 2018-11-13
- Add
--no-compress
option to store archive uncompressed (#58)
- Detect if user app is a different machine type than the bootloader (#56)
- Drop support for Python 3.2 and 3.3 (#65)
- Use
<sys/sysmacros.h>
for makedev() (#63) - Handle subdirectories when extracting Pyinstaller archives (#69)
- Handle shared objects with no dependencies (#70)
0.5.0 - 2017-07-16
- Added
--strip
option to strip binaries while adding to archive (#39)
0.4.1 - 2017-07-15
- Fixes for release builds deployed to PyPI
0.4.0 - 2017-07-13
- Compress archive with LZMA (plus x86 BCJ filter) (#46)
0.3.2 - 2017-06-15
- Fixed PyPI bdists not including bootloader (#32)
0.3.1 - 2017-06-14
- Work around
FTW_MOUNT
bug in musl<1.0.0 (#30)
0.3.0 - 2017-06-13
- Auto-detect additional dependencies for apps built with PyInstaller (#21)
- Compatibility fixes for older versions of Python and GCC
- Handle multiple levels of library symlinks (#18)
0.2.0 - 2017-05-31
- Work on temporary file while building application (#12)
- Run user application in child process to enable cleanup (#9)
Initial release