misc/podman/rebuild-stubs: upgrade to ubuntu-24.04

This commit is contained in:
Markus F.X.J. Oberhumer 2024-04-05 20:04:23 +02:00
parent f5ec8363b4
commit ed35613d64
4 changed files with 737 additions and 811 deletions

274
doc/upx.1 generated
View File

@ -1,4 +1,5 @@
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\" .\"
.\" Standard preamble: .\" Standard preamble:
.\" ======================================================================== .\" ========================================================================
@ -15,29 +16,12 @@
.ft R .ft R
.fi .fi
.. ..
.\" Set up some character translations and predefined strings. \*(-- will .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\ .ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` "" . ds C` ""
. ds C' "" . ds C' ""
'br\} 'br\}
.el\{\ .el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C` . ds C`
. ds C' . ds C'
'br\} 'br\}
@ -68,82 +52,20 @@
. \} . \}
.\} .\}
.rr rF .rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ======================================================================== .\" ========================================================================
.\" .\"
.IX Title "UPX 1" .IX Title "UPX 1"
.TH UPX 1 "2024-03-28" "upx 4.3.0" " " .TH UPX 1 2024-03-28 "upx 4.3.0" " "
.\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents. .\" way too many mistakes in technical documents.
.if n .ad l .if n .ad l
.nh .nh
.SH "NAME" .SH NAME
upx \- compress or expand executable files upx \- compress or expand executable files
.SH "SYNOPSIS" .SH SYNOPSIS
.IX Header "SYNOPSIS" .IX Header "SYNOPSIS"
\&\fBupx\fR [\ \fIcommand\fR\ ] [\ \fIoptions\fR\ ] \fIfilename\fR... \&\fBupx\fR [\ \fIcommand\fR\ ] [\ \fIoptions\fR\ ] \fIfilename\fR...
.SH "ABSTRACT" .SH ABSTRACT
.IX Header "ABSTRACT" .IX Header "ABSTRACT"
.Vb 3 .Vb 3
\& The Ultimate Packer for eXecutables \& The Ultimate Packer for eXecutables
@ -151,27 +73,27 @@ upx \- compress or expand executable files
\& https://upx.github.io \& https://upx.github.io
.Ve .Ve
.PP .PP
\&\fB\s-1UPX\s0\fR is a portable, extendable, high-performance executable packer for \&\fBUPX\fR is a portable, extendable, high-performance executable packer for
several different executable formats. It achieves an excellent compression several different executable formats. It achieves an excellent compression
ratio and offers \fI*very*\fR fast decompression. Your executables suffer ratio and offers \fI*very*\fR fast decompression. Your executables suffer
no memory overhead or other drawbacks for most of the formats supported, no memory overhead or other drawbacks for most of the formats supported,
because of in-place decompression. because of in-place decompression.
.SH "DISCLAIMER" .SH DISCLAIMER
.IX Header "DISCLAIMER" .IX Header "DISCLAIMER"
\&\fB\s-1UPX\s0\fR comes with \s-1ABSOLUTELY NO WARRANTY\s0; for details see the file \s-1COPYING.\s0 \&\fBUPX\fR comes with ABSOLUTELY NO WARRANTY; for details see the file COPYING.
.PP .PP
Please report all problems or suggestions to the authors. Thanks. Please report all problems or suggestions to the authors. Thanks.
.SH "SECURITY CONTEXT" .SH "SECURITY CONTEXT"
.IX Header "SECURITY CONTEXT" .IX Header "SECURITY CONTEXT"
\&\s-1IMPORTANT NOTE:\s0 \fB\s-1UPX\s0\fR inherits the security context of any files it handles. IMPORTANT NOTE: \fBUPX\fR inherits the security context of any files it handles.
.PP .PP
This means that packing, unpacking, or even testing or listing a file requires This means that packing, unpacking, or even testing or listing a file requires
the same security considerations as actually executing the file. the same security considerations as actually executing the file.
.PP .PP
Use \fB\s-1UPX\s0\fR on trusted files only! Use \fBUPX\fR on trusted files only!
.SH "DESCRIPTION" .SH DESCRIPTION
.IX Header "DESCRIPTION" .IX Header "DESCRIPTION"
\&\fB\s-1UPX\s0\fR is a versatile executable packer with the following features: \&\fBUPX\fR is a versatile executable packer with the following features:
.PP .PP
.Vb 3 .Vb 3
\& \- secure: as UPX is documented Open Source since many years any relevant \& \- secure: as UPX is documented Open Source since many years any relevant
@ -204,32 +126,32 @@ Use \fB\s-1UPX\s0\fR on trusted files only!
\& for commercial programs \& for commercial programs
.Ve .Ve
.PP .PP
You probably understand now why we call \fB\s-1UPX\s0\fR the "\fIultimate\fR" You probably understand now why we call \fBUPX\fR the "\fIultimate\fR"
executable packer. executable packer.
.SH "COMMANDS" .SH COMMANDS
.IX Header "COMMANDS" .IX Header "COMMANDS"
.SS "Compress" .SS Compress
.IX Subsection "Compress" .IX Subsection "Compress"
This is the default operation, eg. \fBupx yourfile.exe\fR will compress the file This is the default operation, eg. \fBupx yourfile.exe\fR will compress the file
specified on the command line. specified on the command line.
.SS "Decompress" .SS Decompress
.IX Subsection "Decompress" .IX Subsection "Decompress"
All \fB\s-1UPX\s0\fR supported file formats can be unpacked using the \fB\-d\fR switch, eg. All \fBUPX\fR supported file formats can be unpacked using the \fB\-d\fR switch, eg.
\&\fBupx \-d yourfile.exe\fR will uncompress the file you've just compressed. \&\fBupx \-d yourfile.exe\fR will uncompress the file you've just compressed.
.SS "Test" .SS Test
.IX Subsection "Test" .IX Subsection "Test"
The \fB\-t\fR command tests the integrity of the compressed and uncompressed The \fB\-t\fR command tests the integrity of the compressed and uncompressed
data, eg. \fBupx \-t yourfile.exe\fR check whether your file can be safely data, eg. \fBupx \-t yourfile.exe\fR check whether your file can be safely
decompressed. Note, that this command doesn't check the whole file, only decompressed. Note, that this command doesn't check the whole file, only
the part that will be uncompressed during program execution. This means the part that will be uncompressed during program execution. This means
that you should not use this command instead of a virus checker. that you should not use this command instead of a virus checker.
.SS "List" .SS List
.IX Subsection "List" .IX Subsection "List"
The \fB\-l\fR command prints out some information about the compressed files The \fB\-l\fR command prints out some information about the compressed files
specified on the command line as parameters, eg \fBupx \-l yourfile.exe\fR specified on the command line as parameters, eg \fBupx \-l yourfile.exe\fR
shows the compressed / uncompressed size and the compression ratio of shows the compressed / uncompressed size and the compression ratio of
\&\fIyourfile.exe\fR. \&\fIyourfile.exe\fR.
.SH "OPTIONS" .SH OPTIONS
.IX Header "OPTIONS" .IX Header "OPTIONS"
\&\fB\-q\fR: be quiet, suppress warnings \&\fB\-q\fR: be quiet, suppress warnings
.PP .PP
@ -239,10 +161,10 @@ shows the compressed / uncompressed size and the compression ratio of
.PP .PP
\&\fB\-\-help\fR: prints the help \&\fB\-\-help\fR: prints the help
.PP .PP
\&\fB\-\-version\fR: print the version of \fB\s-1UPX\s0\fR \&\fB\-\-version\fR: print the version of \fBUPX\fR
.PP .PP
\&\fB\-\-exact\fR: when compressing, require to be able to get a byte-identical file \&\fB\-\-exact\fR: when compressing, require to be able to get a byte-identical file
after decompression with option \fB\-d\fR. [\s-1NOTE:\s0 this is work in progress and is after decompression with option \fB\-d\fR. [NOTE: this is work in progress and is
not supported for all formats yet. If you do care, as a workaround you can not supported for all formats yet. If you do care, as a workaround you can
compress and then decompress your program a first time \- any further compress and then decompress your program a first time \- any further
compress-decompress steps should then yield byte-identical results compress-decompress steps should then yield byte-identical results
@ -255,16 +177,16 @@ as compared to the first decompressed version.]
[ ...more docs need to be written... \- type `\fBupx \-\-help\fR' for now ] [ ...more docs need to be written... \- type `\fBupx \-\-help\fR' for now ]
.SH "COMPRESSION LEVELS & TUNING" .SH "COMPRESSION LEVELS & TUNING"
.IX Header "COMPRESSION LEVELS & TUNING" .IX Header "COMPRESSION LEVELS & TUNING"
\&\fB\s-1UPX\s0\fR offers ten different compression levels from \fB\-1\fR to \fB\-9\fR, \&\fBUPX\fR offers ten different compression levels from \fB\-1\fR to \fB\-9\fR,
and \fB\-\-best\fR. The default compression level is \fB\-8\fR for files and \fB\-\-best\fR. The default compression level is \fB\-8\fR for files
smaller than 512 KiB, and \fB\-7\fR otherwise. smaller than 512 KiB, and \fB\-7\fR otherwise.
.IP "\(bu" 4 .IP \(bu 4
Compression levels 1, 2 and 3 are pretty fast. Compression levels 1, 2 and 3 are pretty fast.
.IP "\(bu" 4 .IP \(bu 4
Compression levels 4, 5 and 6 achieve a good time/ratio performance. Compression levels 4, 5 and 6 achieve a good time/ratio performance.
.IP "\(bu" 4 .IP \(bu 4
Compression levels 7, 8 and 9 favor compression ratio over speed. Compression levels 7, 8 and 9 favor compression ratio over speed.
.IP "\(bu" 4 .IP \(bu 4
Compression level \fB\-\-best\fR may take a long time. Compression level \fB\-\-best\fR may take a long time.
.PP .PP
Note that compression level \fB\-\-best\fR can be somewhat slow for large Note that compression level \fB\-\-best\fR can be somewhat slow for large
@ -272,28 +194,28 @@ files, but you definitely should use it when releasing a final version
of your program. of your program.
.PP .PP
Quick info for achieving the best compression ratio: Quick info for achieving the best compression ratio:
.IP "\(bu" 4 .IP \(bu 4
Try \fBupx \-\-brute \-\-no\-lzma myfile.exe\fR or even Try \fBupx \-\-brute \-\-no\-lzma myfile.exe\fR or even
\&\fBupx \-\-ultra\-brute \-\-no\-lzma myfile.exe\fR. \&\fBupx \-\-ultra\-brute \-\-no\-lzma myfile.exe\fR.
.IP "\(bu" 4 .IP \(bu 4
The option \fB\-\-lzma\fR enables \s-1LZMA\s0 compression, which compresses better but The option \fB\-\-lzma\fR enables LZMA compression, which compresses better but
is *significantly slower* at decompression. You probably do not want is *significantly slower* at decompression. You probably do not want
to use it for large files. to use it for large files.
.Sp .Sp
(Note that \fB\-\-lzma\fR is automatically enabled by \fB\-\-all\-methods\fR and (Note that \fB\-\-lzma\fR is automatically enabled by \fB\-\-all\-methods\fR and
\&\fB\-\-brute\fR, use \fB\-\-no\-lzma\fR to override.) \&\fB\-\-brute\fR, use \fB\-\-no\-lzma\fR to override.)
.IP "\(bu" 4 .IP \(bu 4
Try if \fB\-\-overlay=strip\fR works. Try if \fB\-\-overlay=strip\fR works.
.IP "\(bu" 4 .IP \(bu 4
For win32/pe programs there's \fB\-\-strip\-relocs=0\fR. See notes below. For win32/pe programs there's \fB\-\-strip\-relocs=0\fR. See notes below.
.SH "OVERLAY HANDLING OPTIONS" .SH "OVERLAY HANDLING OPTIONS"
.IX Header "OVERLAY HANDLING OPTIONS" .IX Header "OVERLAY HANDLING OPTIONS"
Info: An \*(L"overlay\*(R" means auxiliary data attached after the logical end of Info: An "overlay" means auxiliary data attached after the logical end of
an executable, and it often contains application specific data an executable, and it often contains application specific data
(this is a common practice to avoid an extra data file, though (this is a common practice to avoid an extra data file, though
it would be better to use resource sections). it would be better to use resource sections).
.PP .PP
\&\fB\s-1UPX\s0\fR handles overlays like many other executable packers do: it simply \&\fBUPX\fR handles overlays like many other executable packers do: it simply
copies the overlay after the compressed image. This works with some copies the overlay after the compressed image. This works with some
files, but doesn't work with others, depending on how an application files, but doesn't work with others, depending on how an application
actually accesses this overlaid data. actually accesses this overlaid data.
@ -309,8 +231,8 @@ actually accesses this overlaid data.
.Ve .Ve
.SH "ENVIRONMENT VARIABLE" .SH "ENVIRONMENT VARIABLE"
.IX Header "ENVIRONMENT VARIABLE" .IX Header "ENVIRONMENT VARIABLE"
The environment variable \fB\s-1UPX\s0\fR can hold a set of default The environment variable \fBUPX\fR can hold a set of default
options for \fB\s-1UPX\s0\fR. These options are interpreted first and options for \fBUPX\fR. These options are interpreted first and
can be overwritten by explicit command line parameters. can be overwritten by explicit command line parameters.
For example: For example:
.PP .PP
@ -321,18 +243,18 @@ For example:
.Ve .Ve
.PP .PP
Under DOS/Windows you must use '#' instead of '=' when setting the Under DOS/Windows you must use '#' instead of '=' when setting the
environment variable because of a \s-1COMMAND.COM\s0 limitation. environment variable because of a COMMAND.COM limitation.
.PP .PP
Not all of the options are valid in the environment variable \- Not all of the options are valid in the environment variable \-
\&\fB\s-1UPX\s0\fR will tell you. \&\fBUPX\fR will tell you.
.PP .PP
You can explicitly use the \fB\-\-no\-env\fR option to ignore the You can explicitly use the \fB\-\-no\-env\fR option to ignore the
environment variable. environment variable.
.SH "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS" .SH "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS"
.IX Header "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS" .IX Header "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS"
.SS "\s-1NOTES FOR ATARI/TOS\s0" .SS "NOTES FOR ATARI/TOS"
.IX Subsection "NOTES FOR ATARI/TOS" .IX Subsection "NOTES FOR ATARI/TOS"
This is the executable format used by the Atari \s-1ST/TT,\s0 a Motorola 68000 This is the executable format used by the Atari ST/TT, a Motorola 68000
based personal computer which was popular in the late '80s. Support based personal computer which was popular in the late '80s. Support
of this format is only because of nostalgic feelings of one of of this format is only because of nostalgic feelings of one of
the authors and serves no practical purpose :\-). the authors and serves no practical purpose :\-).
@ -349,12 +271,12 @@ Extra options available for this executable format:
\& the compression ratio in some cases, but usually \& the compression ratio in some cases, but usually
\& the default method gives the best results anyway. \& the default method gives the best results anyway.
.Ve .Ve
.SS "\s-1NOTES FOR BVMLINUZ/I386\s0" .SS "NOTES FOR BVMLINUZ/I386"
.IX Subsection "NOTES FOR BVMLINUZ/I386" .IX Subsection "NOTES FOR BVMLINUZ/I386"
Same as vmlinuz/i386. Same as vmlinuz/i386.
.SS "\s-1NOTES FOR DOS/COM\s0" .SS "NOTES FOR DOS/COM"
.IX Subsection "NOTES FOR DOS/COM" .IX Subsection "NOTES FOR DOS/COM"
Obviously \fB\s-1UPX\s0\fR won't work with executables that want to read data from Obviously \fBUPX\fR won't work with executables that want to read data from
themselves (like some commandline utilities that ship with Win95/98/ME). themselves (like some commandline utilities that ship with Win95/98/ME).
.PP .PP
Compressed programs only work on a 286+. Compressed programs only work on a 286+.
@ -378,11 +300,11 @@ Extra options available for this executable format:
\& the compression ratio in some cases, but usually \& the compression ratio in some cases, but usually
\& the default filter gives the best results anyway. \& the default filter gives the best results anyway.
.Ve .Ve
.SS "\s-1NOTES FOR DOS/EXE\s0" .SS "NOTES FOR DOS/EXE"
.IX Subsection "NOTES FOR DOS/EXE" .IX Subsection "NOTES FOR DOS/EXE"
dos/exe stands for all \*(L"normal\*(R" 16\-bit \s-1DOS\s0 executables. dos/exe stands for all "normal" 16\-bit DOS executables.
.PP .PP
Obviously \fB\s-1UPX\s0\fR won't work with executables that want to read data from Obviously \fBUPX\fR won't work with executables that want to read data from
themselves (like some command line utilities that ship with Win95/98/ME). themselves (like some command line utilities that ship with Win95/98/ME).
.PP .PP
Compressed programs only work on a 286+. Compressed programs only work on a 286+.
@ -399,7 +321,7 @@ Extra options available for this executable format:
\& the compression ratio in some cases, but usually \& the compression ratio in some cases, but usually
\& the default method gives the best results anyway. \& the default method gives the best results anyway.
.Ve .Ve
.SS "\s-1NOTES FOR DOS/SYS\s0" .SS "NOTES FOR DOS/SYS"
.IX Subsection "NOTES FOR DOS/SYS" .IX Subsection "NOTES FOR DOS/SYS"
Compressed programs only work on a 286+. Compressed programs only work on a 286+.
.PP .PP
@ -422,20 +344,20 @@ Extra options available for this executable format:
\& the compression ratio in some cases, but usually \& the compression ratio in some cases, but usually
\& the default filter gives the best results anyway. \& the default filter gives the best results anyway.
.Ve .Ve
.SS "\s-1NOTES FOR DJGPP2/COFF\s0" .SS "NOTES FOR DJGPP2/COFF"
.IX Subsection "NOTES FOR DJGPP2/COFF" .IX Subsection "NOTES FOR DJGPP2/COFF"
First of all, it is recommended to use \fB\s-1UPX\s0\fR *instead* of \fBstrip\fR. strip has First of all, it is recommended to use \fBUPX\fR *instead* of \fBstrip\fR. strip has
the very bad habit of replacing your stub with its own (outdated) version. the very bad habit of replacing your stub with its own (outdated) version.
Additionally \fB\s-1UPX\s0\fR corrects a bug/feature in strip v2.8.x: it Additionally \fBUPX\fR corrects a bug/feature in strip v2.8.x: it
will fix the 4 KiB alignment of the stub. will fix the 4 KiB alignment of the stub.
.PP .PP
\&\fB\s-1UPX\s0\fR includes the full functionality of stubify. This means it will \&\fBUPX\fR includes the full functionality of stubify. This means it will
automatically stubify your \s-1COFF\s0 files. Use the option \fB\-\-coff\fR to automatically stubify your COFF files. Use the option \fB\-\-coff\fR to
disable this functionality (see below). disable this functionality (see below).
.PP .PP
\&\fB\s-1UPX\s0\fR automatically handles Allegro packfiles. \&\fBUPX\fR automatically handles Allegro packfiles.
.PP .PP
The \s-1DLM\s0 format (a rather exotic shared library extension) is not supported. The DLM format (a rather exotic shared library extension) is not supported.
.PP .PP
Packed programs will be byte-identical to the original after uncompression. Packed programs will be byte-identical to the original after uncompression.
All debug information and trailing garbage will be stripped, though. All debug information and trailing garbage will be stripped, though.
@ -456,7 +378,7 @@ Extra options available for this executable format:
\& the compression ratio in some cases, but usually \& the compression ratio in some cases, but usually
\& the default filter gives the best results anyway. \& the default filter gives the best results anyway.
.Ve .Ve
.SS "\s-1NOTES FOR LINUX\s0 [general]" .SS "NOTES FOR LINUX [general]"
.IX Subsection "NOTES FOR LINUX [general]" .IX Subsection "NOTES FOR LINUX [general]"
Introduction Introduction
.PP .PP
@ -593,15 +515,15 @@ General notes:
\& been modified after compression. \& been modified after compression.
\& Running \`strace \-o strace.log compressed_file\*(Aq will tell you more. \& Running \`strace \-o strace.log compressed_file\*(Aq will tell you more.
.Ve .Ve
.SS "\s-1NOTES FOR LINUX/ELF386\s0" .SS "NOTES FOR LINUX/ELF386"
.IX Subsection "NOTES FOR LINUX/ELF386" .IX Subsection "NOTES FOR LINUX/ELF386"
Please read the general Linux description first. Please read the general Linux description first.
.PP .PP
The linux/elf386 format decompresses directly into \s-1RAM,\s0 The linux/elf386 format decompresses directly into RAM,
uses only one exec, does not use space in /tmp, uses only one exec, does not use space in /tmp,
and does not use /proc. and does not use /proc.
.PP .PP
Linux/elf386 is automatically selected for Linux \s-1ELF\s0 executables. Linux/elf386 is automatically selected for Linux ELF executables.
.PP .PP
Packed programs will be byte-identical to the original after uncompression. Packed programs will be byte-identical to the original after uncompression.
.PP .PP
@ -641,12 +563,12 @@ Extra options available for this executable format:
.Vb 1 .Vb 1
\& (none) \& (none)
.Ve .Ve
.SS "\s-1NOTES FOR LINUX/SH386\s0" .SS "NOTES FOR LINUX/SH386"
.IX Subsection "NOTES FOR LINUX/SH386" .IX Subsection "NOTES FOR LINUX/SH386"
Please read the general Linux description first. Please read the general Linux description first.
.PP .PP
Shell scripts where the underling shell accepts a ``\-c'' argument Shell scripts where the underling shell accepts a ``\-c'' argument
can use the Linux/sh386 format. \fB\s-1UPX\s0\fR decompresses the shell script can use the Linux/sh386 format. \fBUPX\fR decompresses the shell script
into low memory, then maps the shell and passes the entire text of the into low memory, then maps the shell and passes the entire text of the
script as an argument with a leading ``\-c''. script as an argument with a leading ``\-c''.
It does not use space in /tmp, and does not use /proc. It does not use space in /tmp, and does not use /proc.
@ -691,7 +613,7 @@ Extra options available for this executable format:
.Vb 1 .Vb 1
\& (none) \& (none)
.Ve .Ve
.SS "\s-1NOTES FOR LINUX/386\s0" .SS "NOTES FOR LINUX/386"
.IX Subsection "NOTES FOR LINUX/386" .IX Subsection "NOTES FOR LINUX/386"
Please read the general Linux description first. Please read the general Linux description first.
.PP .PP
@ -764,10 +686,10 @@ Extra options available for this executable format:
\& format, i.e. do not try the linux/elf386 and \& format, i.e. do not try the linux/elf386 and
\& linux/sh386 formats. \& linux/sh386 formats.
.Ve .Ve
.SS "\s-1NOTES FOR PS1/EXE\s0" .SS "NOTES FOR PS1/EXE"
.IX Subsection "NOTES FOR PS1/EXE" .IX Subsection "NOTES FOR PS1/EXE"
This is the executable format used by the Sony PlayStation (PSone), This is the executable format used by the Sony PlayStation (PSone),
a \s-1MIPS R3000\s0 based gaming console which is popular since the late '90s. a MIPS R3000 based gaming console which is popular since the late '90s.
Support of this format is very similar to the Atari one, because of Support of this format is very similar to the Atari one, because of
nostalgic feelings of one of the authors. nostalgic feelings of one of the authors.
.PP .PP
@ -816,12 +738,12 @@ Extra options available for this executable format:
\& but the compressed executable will not boot from a CD. \& but the compressed executable will not boot from a CD.
\& Use it for console transfer only ! \& Use it for console transfer only !
.Ve .Ve
.SS "\s-1NOTES FOR RTM32/PE\s0 and \s-1ARM/PE\s0" .SS "NOTES FOR RTM32/PE and ARM/PE"
.IX Subsection "NOTES FOR RTM32/PE and ARM/PE" .IX Subsection "NOTES FOR RTM32/PE and ARM/PE"
Same as win32/pe. Same as win32/pe.
.SS "\s-1NOTES FOR TMT/ADAM\s0" .SS "NOTES FOR TMT/ADAM"
.IX Subsection "NOTES FOR TMT/ADAM" .IX Subsection "NOTES FOR TMT/ADAM"
This format is used by the \s-1TMT\s0 Pascal compiler \- see http://www.tmt.com/ . This format is used by the TMT Pascal compiler \- see http://www.tmt.com/ .
.PP .PP
Extra options available for this executable format: Extra options available for this executable format:
.PP .PP
@ -836,11 +758,11 @@ Extra options available for this executable format:
\& the compression ratio in some cases, but usually \& the compression ratio in some cases, but usually
\& the default filter gives the best results anyway. \& the default filter gives the best results anyway.
.Ve .Ve
.SS "\s-1NOTES FOR VMLINUZ/386\s0" .SS "NOTES FOR VMLINUZ/386"
.IX Subsection "NOTES FOR VMLINUZ/386" .IX Subsection "NOTES FOR VMLINUZ/386"
The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed
bootable Linux kernel image (\*(L"vmlinuz\*(R", \*(L"zImage\*(R", \*(L"bzImage\*(R"), bootable Linux kernel image ("vmlinuz", "zImage", "bzImage"),
gzip-decompress it and re-compress it with the \fB\s-1UPX\s0\fR compression method. gzip-decompress it and re-compress it with the \fBUPX\fR compression method.
.PP .PP
vmlinuz/386 is completely unrelated to the other Linux executable vmlinuz/386 is completely unrelated to the other Linux executable
formats, and it does not share any of their drawbacks. formats, and it does not share any of their drawbacks.
@ -889,14 +811,14 @@ Extra options available for this executable format:
\& the compression ratio in some cases, but usually \& the compression ratio in some cases, but usually
\& the default filter gives the best results anyway. \& the default filter gives the best results anyway.
.Ve .Ve
.SS "\s-1NOTES FOR WATCOM/LE\s0" .SS "NOTES FOR WATCOM/LE"
.IX Subsection "NOTES FOR WATCOM/LE" .IX Subsection "NOTES FOR WATCOM/LE"
\&\fB\s-1UPX\s0\fR has been successfully tested with the following extenders: \&\fBUPX\fR has been successfully tested with the following extenders:
\s-1DOS4G, DOS4GW, PMODE/W,\s0 DOS32a, CauseWay. DOS4G, DOS4GW, PMODE/W, DOS32a, CauseWay.
The \s-1WDOS/X\s0 extender is partly supported (for details The WDOS/X extender is partly supported (for details
see the file bugs \s-1BUGS\s0). see the file bugs BUGS).
.PP .PP
DLLs and the \s-1LX\s0 format are not supported. DLLs and the LX format are not supported.
.PP .PP
Extra options available for this executable format: Extra options available for this executable format:
.PP .PP
@ -904,12 +826,12 @@ Extra options available for this executable format:
\& \-\-le Produce an unbound LE output instead of \& \-\-le Produce an unbound LE output instead of
\& keeping the current stub. \& keeping the current stub.
.Ve .Ve
.SS "\s-1NOTES FOR WIN32/PE\s0" .SS "NOTES FOR WIN32/PE"
.IX Subsection "NOTES FOR WIN32/PE" .IX Subsection "NOTES FOR WIN32/PE"
The \s-1PE\s0 support in \fB\s-1UPX\s0\fR is quite stable now, but probably there are The PE support in \fBUPX\fR is quite stable now, but probably there are
still some incompatibilities with some files. still some incompatibilities with some files.
.PP .PP
Because of the way \fB\s-1UPX\s0\fR (and other packers for this format) works, you Because of the way \fBUPX\fR (and other packers for this format) works, you
can see increased memory usage of your compressed files because the whole can see increased memory usage of your compressed files because the whole
program is loaded into memory at startup. program is loaded into memory at startup.
If you start several instances of huge compressed programs you're If you start several instances of huge compressed programs you're
@ -922,17 +844,17 @@ smaller, but it's still there.
If you're running executables from network, then compressed programs If you're running executables from network, then compressed programs
will load faster, and require less bandwidth during execution. will load faster, and require less bandwidth during execution.
.PP .PP
DLLs are supported. But \s-1UPX\s0 compressed DLLs can not share common data and DLLs are supported. But UPX compressed DLLs can not share common data and
code when they got used by multiple applications. So compressing msvcrt.dll code when they got used by multiple applications. So compressing msvcrt.dll
is a waste of memory, but compressing the dll plugins of a particular is a waste of memory, but compressing the dll plugins of a particular
application may be a better idea. application may be a better idea.
.PP .PP
Screensavers are supported, with the restriction that the filename Screensavers are supported, with the restriction that the filename
must end with \*(L".scr\*(R" (as screensavers are handled slightly different must end with ".scr" (as screensavers are handled slightly different
than normal exe files). than normal exe files).
.PP .PP
\&\s-1UPX\s0 compressed \s-1PE\s0 files have some minor memory overhead (usually in the UPX compressed PE files have some minor memory overhead (usually in the
10 \- 30 KiB range) which can be seen by specifying the \*(L"\-i\*(R" command 10 \- 30 KiB range) which can be seen by specifying the "\-i" command
line switch during compression. line switch during compression.
.PP .PP
Extra options available for this executable format: Extra options available for this executable format:
@ -996,16 +918,16 @@ Extra options available for this executable format:
\& the compression ratio in some cases, but usually \& the compression ratio in some cases, but usually
\& the default filter gives the best results anyway. \& the default filter gives the best results anyway.
.Ve .Ve
.SH "DIAGNOSTICS" .SH DIAGNOSTICS
.IX Header "DIAGNOSTICS" .IX Header "DIAGNOSTICS"
Exit status is normally 0; if an error occurs, exit status Exit status is normally 0; if an error occurs, exit status
is 1. If a warning occurs, exit status is 2. is 1. If a warning occurs, exit status is 2.
.PP .PP
\&\fB\s-1UPX\s0\fR's diagnostics are intended to be self-explanatory. \&\fBUPX\fR's diagnostics are intended to be self-explanatory.
.SH "BUGS" .SH BUGS
.IX Header "BUGS" .IX Header "BUGS"
Please report all bugs immediately to the authors. Please report all bugs immediately to the authors.
.SH "AUTHORS" .SH AUTHORS
.IX Header "AUTHORS" .IX Header "AUTHORS"
.Vb 2 .Vb 2
\& Markus F.X.J. Oberhumer <markus@oberhumer.com> \& Markus F.X.J. Oberhumer <markus@oberhumer.com>
@ -1017,7 +939,7 @@ Please report all bugs immediately to the authors.
\& \&
\& Jens Medoch <jssg@users.sourceforge.net> \& Jens Medoch <jssg@users.sourceforge.net>
.Ve .Ve
.SH "COPYRIGHT" .SH COPYRIGHT
.IX Header "COPYRIGHT" .IX Header "COPYRIGHT"
Copyright (C) 1996\-2024 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996\-2024 Markus Franz Xaver Johannes Oberhumer
.PP .PP
@ -1027,16 +949,16 @@ Copyright (C) 2000\-2024 John F. Reiser
.PP .PP
Copyright (C) 2002\-2024 Jens Medoch Copyright (C) 2002\-2024 Jens Medoch
.PP .PP
\&\fB\s-1UPX\s0\fR is distributed with full source code under the terms of the \&\fBUPX\fR is distributed with full source code under the terms of the
\&\s-1GNU\s0 General Public License v2+; either under the pure GPLv2+ (see GNU General Public License v2+; either under the pure GPLv2+ (see
the file \s-1COPYING\s0), or (at your option) under the GPLv+2 with special the file COPYING), or (at your option) under the GPLv+2 with special
exceptions and restrictions granting the free usage for all binaries exceptions and restrictions granting the free usage for all binaries
including commercial programs (see the file \s-1LICENSE\s0). including commercial programs (see the file LICENSE).
.PP .PP
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.PP .PP
You should have received a copy of the \s-1UPX\s0 License Agreements along You should have received a copy of the UPX License Agreements along
with this program; see the files \s-1COPYING\s0 and \s-1LICENSE.\s0 If not, with this program; see the files COPYING and LICENSE. If not,
visit the \s-1UPX\s0 home page. visit the UPX home page.

View File

@ -7,7 +7,7 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
# using a rootless Podman container # using a rootless Podman container
# Copyright (C) Markus Franz Xaver Johannes Oberhumer # Copyright (C) Markus Franz Xaver Johannes Oberhumer
image=upx-stubtools-20221212-v7 image=upx-stubtools-20240405-v1
[[ $1 == --print-image ]] && echo "$image" && exit 0 [[ $1 == --print-image ]] && echo "$image" && exit 0
podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir" podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"

View File

@ -1,6 +1,6 @@
# Copyright (C) Markus Franz Xaver Johannes Oberhumer # Copyright (C) Markus Franz Xaver Johannes Oberhumer
FROM docker.io/library/ubuntu:22.04 FROM docker.io/library/ubuntu:24.04
ENV UPX_CONTAINER_IMAGE_NAME=upx-stubtools-20221212-v6 ENV UPX_CONTAINER_IMAGE_NAME=upx-stubtools-20240405-v1
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
ENV LANG=C.UTF-8 ENV LANG=C.UTF-8
@ -8,21 +8,33 @@ ENV LANG=C.UTF-8
RUN dpkg --add-architecture i386 \ RUN dpkg --add-architecture i386 \
&& apt-get update && apt-get upgrade -y \ && apt-get update && apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
aria2 bash bash-completion ca-certificates dash git less libmpc3 libncurses5 \ aria2 bash bash-completion ca-certificates dash git less libmpc3 \
make ncurses-term perl-base python2-minimal time wget xz-utils \ make ncurses-term perl-base time wget xz-utils \
libc6:i386 zlib1g:i386 \ libc6:i386 zlib1g:i386 \
# the following packages are not required for rebuilding the stubs, but # the following packages are not required for rebuilding the stubs, but
# they do make the image *much* more convenient and also allow building # they do make the image *much* more convenient and also allow building
# the full UPX binary inside the container via CMake: # the full UPX binary inside the container via CMake:
7zip bfs busybox bzip2 cabextract ccache chrpath cmake cpio curl elfutils fd-find file fzf \ 7zip bfs busybox bzip2 cabextract ccache chrpath cmake cpio curl elfutils fd-find file fzf \
g++ gawk gdb gojq ht htop hyperfine jq libzstd-dev lsb-release lz4 lzip lzop \ g++ gawk gdb gojq ht htop hyperfine jq libzstd-dev lsb-release lz4 lzip lzop \
mksh moreutils ninja-build p7zip parallel patch patchelf patchutils pax-utils paxctl \ mksh moreutils ninja-build p7zip parallel patch patchelf patchutils pax-utils \
python3 python3-pyasn1 python3-pycryptodome python3-zstd \ python3 python3-pyasn1 python3-pycryptodome python3-zstd \
re2c ripgrep rsync screen universal-ctags unzip vim yash zip zlib1g-dev zsh zstd \ re2c ripgrep rsync screen universal-ctags unzip vim yash zip zlib1g-dev zsh zstd \
# extra packages for compiling with "gcc -m32" and "gcc -mx32": # extra packages for compiling with "gcc -m32" and "gcc -mx32":
g++-multilib gcc-multilib \ g++-multilib gcc-multilib \
&& true && true
# install python2-minimal packages from Debian-11; REQUIRED
RUN cd /root \
&& aria2c --checksum=sha-256=85833c92314011b89bbead6f9a5a7a360b5ee4f9b95e001225afead4ebf9f7d3 \
'https://ftp.debian.org/debian/pool/main/p/python2.7/libpython2.7-minimal_2.7.18-8+deb11u1_amd64.deb' \
&& aria2c --checksum=sha-256=44f0cdc1a343303d31c55fcb3a6402cfe326adf749ec30e375e6e0c0c5f7c1f7 \
'https://ftp.debian.org/debian/pool/main/p/python2.7/python2.7-minimal_2.7.18-8+deb11u1_amd64.deb' \
&& dpkg -i ./*.deb \
&& rm ./*.deb \
&& if ! test -f /usr/bin/python2; then ln -s -v python2.7 /usr/bin/python2; fi \
&& ldconfig \
&& true
# manually unpack and install compat libs from Ubuntu-16.04; REQUIRED # manually unpack and install compat libs from Ubuntu-16.04; REQUIRED
RUN cd /root \ RUN cd /root \
&& aria2c --checksum=sha-256=de22baf3dd851a10e16fbf66a243e70149ca46e06b2939fdc79429196cefc090 \ && aria2c --checksum=sha-256=de22baf3dd851a10e16fbf66a243e70149ca46e06b2939fdc79429196cefc090 \

File diff suppressed because it is too large Load Diff