Linux r-1tbfree-gecko-e8ip2zsa-2f967-wvg4t 6.12.63-84.121.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Dec 31 02:07:30 UTC 2025 x86_64
PHP/8.5.2 (Development Server)
: | : 10.16.14.243
Cant Read [ /etc/named.conf ]
8.5.2
root
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
bin /
[ HOME SHELL ]
Name
Size
Permission
Action
[
54.41
KB
-rwxr-xr-x
addr2line
23.22
KB
-rwxr-xr-x
apt
18.31
KB
-rwxr-xr-x
apt-cache
90.38
KB
-rwxr-xr-x
apt-cdrom
26.38
KB
-rwxr-xr-x
apt-config
30.31
KB
-rwxr-xr-x
apt-get
58.38
KB
-rwxr-xr-x
apt-mark
62.38
KB
-rwxr-xr-x
ar
51.25
KB
-rwxr-xr-x
arch
42.45
KB
-rwxr-xr-x
as
776.55
KB
-rwxr-xr-x
autoconf
6.54
KB
-rwxr-xr-x
autoheader
8.88
KB
-rwxr-xr-x
autom4te
34.11
KB
-rwxr-xr-x
autoreconf
26.24
KB
-rwxr-xr-x
autoscan
16.78
KB
-rwxr-xr-x
autoupdate
33.22
KB
-rwxr-xr-x
awk
166.66
KB
-rwxr-xr-x
b2sum
62.45
KB
-rwxr-xr-x
base32
46.41
KB
-rwxr-xr-x
base64
46.41
KB
-rwxr-xr-x
basename
42.41
KB
-rwxr-xr-x
basenc
58.41
KB
-rwxr-xr-x
bash
1.24
MB
-rwxr-xr-x
bashbug
6.78
KB
-rwxr-xr-x
bunzip2
38.3
KB
-rwxr-xr-x
bzcat
38.3
KB
-rwxr-xr-x
bzcmp
2.17
KB
-rwxr-xr-x
bzdiff
2.17
KB
-rwxr-xr-x
bzegrep
3.69
KB
-rwxr-xr-x
bzexe
4.78
KB
-rwxr-xr-x
bzfgrep
3.69
KB
-rwxr-xr-x
bzgrep
3.69
KB
-rwxr-xr-x
bzip2
38.3
KB
-rwxr-xr-x
bzip2recover
14.23
KB
-rwxr-xr-x
bzless
1.27
KB
-rwxr-xr-x
bzmore
1.27
KB
-rwxr-xr-x
c++
1.11
MB
-rwxr-xr-x
c++filt
22.59
KB
-rwxr-xr-x
c89
428
B
-rwxr-xr-x
c89-gcc
428
B
-rwxr-xr-x
c99
454
B
-rwxr-xr-x
c99-gcc
454
B
-rwxr-xr-x
c_rehash
6.73
KB
-rwxr-xr-x
captoinfo
94.34
KB
-rwxr-xr-x
cat
46.48
KB
-rwxr-xr-x
cc
1.11
MB
-rwxr-xr-x
chage
111.18
KB
-rwxr-sr-x
chcon
78.41
KB
-rwxr-xr-x
chfn
69.23
KB
-rwsr-xr-x
chgrp
74.45
KB
-rwxr-xr-x
chmod
70.45
KB
-rwxr-xr-x
choom
54.38
KB
-rwxr-xr-x
chown
74.45
KB
-rwxr-xr-x
chrt
70.38
KB
-rwxr-xr-x
chsh
51.7
KB
-rwsr-xr-x
cksum
134.45
KB
-rwxr-xr-x
clear
14.24
KB
-rwxr-xr-x
clear_console
14.15
KB
-rwxr-xr-x
cmp
54.95
KB
-rwxr-xr-x
comm
46.45
KB
-rwxr-xr-x
corelist
15.01
KB
-rwxr-xr-x
cp
146.45
KB
-rwxr-xr-x
cpan
8.16
KB
-rwxr-xr-x
cpan5.40-x86_64-linux-gnu
8.18
KB
-rwxr-xr-x
cpp
1.11
MB
-rwxr-xr-x
cpp-14
1.11
MB
-rwxr-xr-x
csplit
58.45
KB
-rwxr-xr-x
curl
314.34
KB
-rwxr-xr-x
cut
54.45
KB
-rwxr-xr-x
dash
126.7
KB
-rwxr-xr-x
date
98.45
KB
-rwxr-xr-x
dd
74.48
KB
-rwxr-xr-x
deb-systemd-helper
23.79
KB
-rwxr-xr-x
deb-systemd-invoke
6.97
KB
-rwxr-xr-x
debconf
2.8
KB
-rwxr-xr-x
debconf-apt-progress
11.57
KB
-rwxr-xr-x
debconf-communicate
623
B
-rwxr-xr-x
debconf-copydb
1.68
KB
-rwxr-xr-x
debconf-escape
668
B
-rwxr-xr-x
debconf-set-selections
3.14
KB
-rwxr-xr-x
debconf-show
1.78
KB
-rwxr-xr-x
df
106.92
KB
-rwxr-xr-x
diff
159.61
KB
-rwxr-xr-x
diff3
71.14
KB
-rwxr-xr-x
dir
154.91
KB
-rwxr-xr-x
dircolors
54.45
KB
-rwxr-xr-x
dirname
42.41
KB
-rwxr-xr-x
dmesg
88.71
KB
-rwxr-xr-x
dnsdomainname
26.15
KB
-rwxr-xr-x
domainname
26.15
KB
-rwxr-xr-x
dpkg
319.05
KB
-rwxr-xr-x
dpkg-architecture
14.84
KB
-rwxr-xr-x
dpkg-buildapi
1.79
KB
-rwxr-xr-x
dpkg-buildflags
8.14
KB
-rwxr-xr-x
dpkg-buildpackage
30.32
KB
-rwxr-xr-x
dpkg-buildtree
2.12
KB
-rwxr-xr-x
dpkg-checkbuilddeps
7.45
KB
-rwxr-xr-x
dpkg-deb
178.53
KB
-rwxr-xr-x
dpkg-distaddfile
2.72
KB
-rwxr-xr-x
dpkg-divert
158.77
KB
-rwxr-xr-x
dpkg-genbuildinfo
18.69
KB
-rwxr-xr-x
dpkg-genchanges
17.51
KB
-rwxr-xr-x
dpkg-gencontrol
14.62
KB
-rwxr-xr-x
dpkg-gensymbols
10.66
KB
-rwxr-xr-x
dpkg-maintscript-helper
20.63
KB
-rwxr-xr-x
dpkg-mergechangelogs
8.7
KB
-rwxr-xr-x
dpkg-name
6.58
KB
-rwxr-xr-x
dpkg-parsechangelog
4.83
KB
-rwxr-xr-x
dpkg-query
170.77
KB
-rwxr-xr-x
dpkg-realpath
58.33
KB
-rwxr-xr-x
dpkg-scanpackages
8.45
KB
-rwxr-xr-x
dpkg-scansources
9.15
KB
-rwxr-xr-x
dpkg-shlibdeps
32.59
KB
-rwxr-xr-x
dpkg-source
23.18
KB
-rwxr-xr-x
dpkg-split
142.48
KB
-rwxr-xr-x
dpkg-statoverride
86.51
KB
-rwxr-xr-x
dpkg-trigger
90.5
KB
-rwxr-xr-x
dpkg-vendor
3.18
KB
-rwxr-xr-x
du
110.45
KB
-rwxr-xr-x
echo
42.41
KB
-rwxr-xr-x
egrep
41
B
-rwxr-xr-x
elfedit
35.13
KB
-rwxr-xr-x
enc2xs
40.97
KB
-rwxr-xr-x
encguess
2.99
KB
-rwxr-xr-x
env
54.83
KB
-rwxr-xr-x
expand
46.45
KB
-rwxr-xr-x
expiry
30.52
KB
-rwxr-sr-x
expr
50.41
KB
-rwxr-xr-x
factor
74.45
KB
-rwxr-xr-x
fallocate
34.38
KB
-rwxr-xr-x
false
42.41
KB
-rwxr-xr-x
fgrep
41
B
-rwxr-xr-x
file
26.56
KB
-rwxr-xr-x
find
227.58
KB
-rwxr-xr-x
findmnt
99.9
KB
-rwxr-xr-x
flock
34.46
KB
-rwxr-xr-x
fmt
50.41
KB
-rwxr-xr-x
fold
46.41
KB
-rwxr-xr-x
g++
1.11
MB
-rwxr-xr-x
g++-14
1.11
MB
-rwxr-xr-x
gcc
1.11
MB
-rwxr-xr-x
gcc-14
1.11
MB
-rwxr-xr-x
gcc-ar
30.58
KB
-rwxr-xr-x
gcc-ar-14
30.58
KB
-rwxr-xr-x
gcc-nm
30.58
KB
-rwxr-xr-x
gcc-nm-14
30.58
KB
-rwxr-xr-x
gcc-ranlib
30.58
KB
-rwxr-xr-x
gcc-ranlib-14
30.58
KB
-rwxr-xr-x
gcov
448.12
KB
-rwxr-xr-x
gcov-14
448.12
KB
-rwxr-xr-x
gcov-dump
364.07
KB
-rwxr-xr-x
gcov-dump-14
364.07
KB
-rwxr-xr-x
gcov-tool
396.16
KB
-rwxr-xr-x
gcov-tool-14
396.16
KB
-rwxr-xr-x
gencat
26.37
KB
-rwxr-xr-x
getconf
26.29
KB
-rwxr-xr-x
getent
34.65
KB
-rwxr-xr-x
getopt
34.38
KB
-rwxr-xr-x
gmake
271.92
KB
-rwxr-xr-x
gp-archive
35.09
KB
-rwxr-xr-x
gp-collect-app
55.27
KB
-rwxr-xr-x
gp-display-html
630.35
KB
-rwxr-xr-x
gp-display-src
30.8
KB
-rwxr-xr-x
gp-display-text
157.36
KB
-rwxr-xr-x
gpasswd
86.49
KB
-rwsr-xr-x
gprof
96.42
KB
-rwxr-xr-x
gprofng
22.59
KB
-rwxr-xr-x
gprofng-archive
35.09
KB
-rwxr-xr-x
gprofng-collect-app
55.27
KB
-rwxr-xr-x
gprofng-display-html
630.35
KB
-rwxr-xr-x
gprofng-display-src
30.8
KB
-rwxr-xr-x
gprofng-display-text
157.36
KB
-rwxr-xr-x
grep
198.39
KB
-rwxr-xr-x
groups
42.41
KB
-rwxr-xr-x
gunzip
2.28
KB
-rwxr-xr-x
gzexe
6.29
KB
-rwxr-xr-x
gzip
99.8
KB
-rwxr-xr-x
h2ph
28.15
KB
-rwxr-xr-x
h2xs
59.51
KB
-rwxr-xr-x
hardlink
62.48
KB
-rwxr-xr-x
head
50.45
KB
-rwxr-xr-x
hostid
42.41
KB
-rwxr-xr-x
hostname
26.15
KB
-rwxr-xr-x
i386
86.66
KB
-rwxr-xr-x
iconv
66.44
KB
-rwxr-xr-x
id
50.45
KB
-rwxr-xr-x
ifnames
4.09
KB
-rwxr-xr-x
infocmp
66.31
KB
-rwxr-xr-x
infotocap
94.34
KB
-rwxr-xr-x
install
150.48
KB
-rwxr-xr-x
instmodsh
4.27
KB
-rwxr-xr-x
ionice
34.38
KB
-rwxr-xr-x
ipcmk
34.45
KB
-rwxr-xr-x
ipcrm
74.38
KB
-rwxr-xr-x
ipcs
82.38
KB
-rwxr-xr-x
ischroot
14.41
KB
-rwxr-xr-x
join
58.48
KB
-rwxr-xr-x
json_pp
4.9
KB
-rwxr-xr-x
ld
1.78
MB
-rwxr-xr-x
ld.bfd
1.78
MB
-rwxr-xr-x
ld.so
220.31
KB
-rwxr-xr-x
ldd
5.23
KB
-rwxr-xr-x
libnetcfg
15.41
KB
-rwxr-xr-x
link
42.41
KB
-rwxr-xr-x
linux32
86.66
KB
-rwxr-xr-x
linux64
86.66
KB
-rwxr-xr-x
ln
74.45
KB
-rwxr-xr-x
locale
45.56
KB
-rwxr-xr-x
localedef
303.05
KB
-rwxr-xr-x
logger
58.98
KB
-rwxr-xr-x
login
90.38
KB
-rwxr-xr-x
logname
42.41
KB
-rwxr-xr-x
ls
154.91
KB
-rwxr-xr-x
lsblk
242.39
KB
-rwxr-xr-x
lscpu
162.39
KB
-rwxr-xr-x
lsipc
110.38
KB
-rwxr-xr-x
lslocks
78.8
KB
-rwxr-xr-x
lslogins
110.38
KB
-rwxr-xr-x
lsmem
70.38
KB
-rwxr-xr-x
lsns
90.39
KB
-rwxr-xr-x
lto-dump
31.43
MB
-rwxr-xr-x
lto-dump-14
31.43
MB
-rwxr-xr-x
lzcat
102.7
KB
-rwxr-xr-x
lzcmp
7.41
KB
-rwxr-xr-x
lzdiff
7.41
KB
-rwxr-xr-x
lzegrep
10.17
KB
-rwxr-xr-x
lzfgrep
10.17
KB
-rwxr-xr-x
lzgrep
10.17
KB
-rwxr-xr-x
lzless
2.33
KB
-rwxr-xr-x
lzma
102.7
KB
-rwxr-xr-x
lzmainfo
18.3
KB
-rwxr-xr-x
lzmore
2.18
KB
-rwxr-xr-x
m4
279.52
KB
-rwxr-xr-x
make
271.92
KB
-rwxr-xr-x
make-first-existing-target
4.79
KB
-rwxr-xr-x
mawk
166.66
KB
-rwxr-xr-x
mcookie
38.45
KB
-rwxr-xr-x
md5sum
54.45
KB
-rwxr-xr-x
mkdir
86.41
KB
-rwxr-xr-x
mkfifo
74.41
KB
-rwxr-xr-x
mknod
82.41
KB
-rwxr-xr-x
mktemp
46.41
KB
-rwxr-xr-x
more
58.39
KB
-rwxr-xr-x
mount
70.38
KB
-rwsr-xr-x
mountpoint
18.38
KB
-rwxr-xr-x
mv
146.45
KB
-rwxr-xr-x
namei
38.38
KB
-rwxr-xr-x
nawk
166.66
KB
-rwxr-xr-x
newgrp
18.38
KB
-rwsr-xr-x
nice
42.41
KB
-rwxr-xr-x
nisdomainname
26.15
KB
-rwxr-xr-x
nl
50.51
KB
-rwxr-xr-x
nm
44.1
KB
-rwxr-xr-x
nohup
46.41
KB
-rwxr-xr-x
nproc
46.41
KB
-rwxr-xr-x
nsenter
86.65
KB
-rwxr-xr-x
numfmt
66.48
KB
-rwxr-xr-x
objcopy
155.83
KB
-rwxr-xr-x
objdump
387.05
KB
-rwxr-xr-x
od
82.45
KB
-rwxr-xr-x
openssl
1.05
MB
-rwxr-xr-x
pager
58.39
KB
-rwxr-xr-x
partx
134.39
KB
-rwxr-xr-x
passwd
115.4
KB
-rwsr-xr-x
paste
46.45
KB
-rwxr-xr-x
patch
167.59
KB
-rwxr-xr-x
pathchk
42.41
KB
-rwxr-xr-x
perl
3.75
MB
-rwxr-xr-x
perl5.40-x86_64-linux-gnu
14.41
KB
-rwxr-xr-x
perl5.40.1
3.75
MB
-rwxr-xr-x
perlbug
44.52
KB
-rwxr-xr-x
perldoc
125
B
-rwxr-xr-x
perlivp
10.61
KB
-rwxr-xr-x
perlthanks
44.52
KB
-rwxr-xr-x
piconv
8.16
KB
-rwxr-xr-x
pidof
26.31
KB
-rwxr-xr-x
pinky
58.45
KB
-rwxr-xr-x
pkg-config
44.04
KB
-rwxr-xr-x
pkgconf
44.04
KB
-rwxr-xr-x
pl2pm
4.43
KB
-rwxr-xr-x
pldd
22.37
KB
-rwxr-xr-x
pod2html
3.95
KB
-rwxr-xr-x
pod2man
18.46
KB
-rwxr-xr-x
pod2text
12.8
KB
-rwxr-xr-x
pod2usage
4.01
KB
-rwxr-xr-x
podchecker
3.64
KB
-rwxr-xr-x
pr
78.51
KB
-rwxr-xr-x
printenv
42.41
KB
-rwxr-xr-x
printf
66.41
KB
-rwxr-xr-x
prlimit
42.9
KB
-rwxr-xr-x
prove
13.36
KB
-rwxr-xr-x
ptar
3.48
KB
-rwxr-xr-x
ptardiff
2.58
KB
-rwxr-xr-x
ptargrep
4.29
KB
-rwxr-xr-x
ptx
62.48
KB
-rwxr-xr-x
pwd
42.41
KB
-rwxr-xr-x
ranlib
51.25
KB
-rwxr-xr-x
rbash
1.24
MB
-rwxr-xr-x
re2c
1.05
MB
-rwxr-xr-x
re2d
1.05
MB
-rwxr-xr-x
re2go
1.05
MB
-rwxr-xr-x
re2hs
1.05
MB
-rwxr-xr-x
re2js
1.05
MB
-rwxr-xr-x
re2ocaml
1.05
MB
-rwxr-xr-x
re2py
1.05
MB
-rwxr-xr-x
re2rust
1.05
MB
-rwxr-xr-x
re2v
1.05
MB
-rwxr-xr-x
re2zig
1.05
MB
-rwxr-xr-x
readelf
759.63
KB
-rwxr-xr-x
readlink
54.41
KB
-rwxr-xr-x
realpath
54.45
KB
-rwxr-xr-x
rename.ul
30.38
KB
-rwxr-xr-x
renice
14.38
KB
-rwxr-xr-x
reset
30.24
KB
-rwxr-xr-x
rev
14.38
KB
-rwxr-xr-x
rgrep
30
B
-rwxr-xr-x
rm
74.45
KB
-rwxr-xr-x
rmdir
42.41
KB
-rwxr-xr-x
rpcgen
95
KB
-rwxr-xr-x
run-parts
26.75
KB
-rwxr-xr-x
runcon
46.41
KB
-rwxr-xr-x
savelog
10.24
KB
-rwxr-xr-x
script
78.38
KB
-rwxr-xr-x
scriptlive
66.38
KB
-rwxr-xr-x
scriptreplay
46.38
KB
-rwxr-xr-x
sdiff
67.09
KB
-rwxr-xr-x
sed
123.46
KB
-rwxr-xr-x
seq
46.41
KB
-rwxr-xr-x
setarch
86.66
KB
-rwxr-xr-x
setpriv
90.39
KB
-rwxr-xr-x
setsid
14.38
KB
-rwxr-xr-x
setterm
46.38
KB
-rwxr-xr-x
sg
18.38
KB
-rwsr-xr-x
sh
126.7
KB
-rwxr-xr-x
sha1sum
54.45
KB
-rwxr-xr-x
sha224sum
54.45
KB
-rwxr-xr-x
sha256sum
54.45
KB
-rwxr-xr-x
sha384sum
54.45
KB
-rwxr-xr-x
sha512sum
54.45
KB
-rwxr-xr-x
shasum
9.75
KB
-rwxr-xr-x
shred
66.45
KB
-rwxr-xr-x
shuf
62.41
KB
-rwxr-xr-x
size
26.94
KB
-rwxr-xr-x
sleep
42.41
KB
-rwxr-xr-x
sort
118.7
KB
-rwxr-xr-x
splain
19
KB
-rwxr-xr-x
split
70.86
KB
-rwxr-xr-x
sqv
1.78
MB
-rwxr-xr-x
stat
102.45
KB
-rwxr-xr-x
stdbuf
46.41
KB
-rwxr-xr-x
streamzip
7.87
KB
-rwxr-xr-x
strings
31.06
KB
-rwxr-xr-x
strip
155.86
KB
-rwxr-xr-x
stty
74.45
KB
-rwxr-xr-x
su
82.38
KB
-rwsr-xr-x
sum
50.42
KB
-rwxr-xr-x
sync
42.41
KB
-rwxr-xr-x
tabs
18.23
KB
-rwxr-xr-x
tac
46.41
KB
-rwxr-xr-x
tail
78.48
KB
-rwxr-xr-x
tar
447.54
KB
-rwxr-xr-x
taskset
66.38
KB
-rwxr-xr-x
tee
46.45
KB
-rwxr-xr-x
tempfile
14.23
KB
-rwxr-xr-x
test
46.41
KB
-rwxr-xr-x
tic
94.34
KB
-rwxr-xr-x
timeout
46.86
KB
-rwxr-xr-x
toe
22.23
KB
-rwxr-xr-x
touch
86.45
KB
-rwxr-xr-x
tput
30.27
KB
-rwxr-xr-x
tr
58.41
KB
-rwxr-xr-x
true
42.41
KB
-rwxr-xr-x
truncate
46.41
KB
-rwxr-xr-x
tset
30.24
KB
-rwxr-xr-x
tsort
58.41
KB
-rwxr-xr-x
tty
42.41
KB
-rwxr-xr-x
tzselect
21.36
KB
-rwxr-xr-x
uclampset
70.38
KB
-rwxr-xr-x
umount
54.38
KB
-rwsr-xr-x
uname
42.45
KB
-rwxr-xr-x
uncompress
2.28
KB
-rwxr-xr-x
unexpand
46.45
KB
-rwxr-xr-x
uniq
54.45
KB
-rwxr-xr-x
unlink
42.41
KB
-rwxr-xr-x
unlzma
102.7
KB
-rwxr-xr-x
unshare
90.62
KB
-rwxr-xr-x
unxz
102.7
KB
-rwxr-xr-x
update-alternatives
58.31
KB
-rwxr-xr-x
users
50.41
KB
-rwxr-xr-x
vdir
154.91
KB
-rwxr-xr-x
wall
46.38
KB
-rwxr-xr-x
wc
66.45
KB
-rwxr-xr-x
wcurl
10.98
KB
-rwxr-xr-x
wdctl
74.38
KB
-rwxr-xr-x
wget
471.36
KB
-rwxr-xr-x
whereis
30.38
KB
-rwxr-xr-x
which
1.05
KB
-rwxr-xr-x
which.debianutils
1.05
KB
-rwxr-xr-x
who
62.45
KB
-rwxr-xr-x
whoami
42.41
KB
-rwxr-xr-x
x86_64
86.66
KB
-rwxr-xr-x
x86_64-linux-gnu-addr2line
23.22
KB
-rwxr-xr-x
x86_64-linux-gnu-ar
51.25
KB
-rwxr-xr-x
x86_64-linux-gnu-as
776.55
KB
-rwxr-xr-x
x86_64-linux-gnu-c++filt
22.59
KB
-rwxr-xr-x
x86_64-linux-gnu-cpp
1.11
MB
-rwxr-xr-x
x86_64-linux-gnu-cpp-14
1.11
MB
-rwxr-xr-x
x86_64-linux-gnu-elfedit
35.13
KB
-rwxr-xr-x
x86_64-linux-gnu-g++
1.11
MB
-rwxr-xr-x
x86_64-linux-gnu-g++-14
1.11
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc
1.11
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc-14
1.11
MB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar
30.58
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ar-14
30.58
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm
30.58
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-nm-14
30.58
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib
30.58
KB
-rwxr-xr-x
x86_64-linux-gnu-gcc-ranlib-14
30.58
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov
448.12
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-14
448.12
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump
364.07
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-dump-14
364.07
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool
396.16
KB
-rwxr-xr-x
x86_64-linux-gnu-gcov-tool-14
396.16
KB
-rwxr-xr-x
x86_64-linux-gnu-gprof
96.42
KB
-rwxr-xr-x
x86_64-linux-gnu-ld
1.78
MB
-rwxr-xr-x
x86_64-linux-gnu-ld.bfd
1.78
MB
-rwxr-xr-x
x86_64-linux-gnu-lto-dump
31.43
MB
-rwxr-xr-x
x86_64-linux-gnu-lto-dump-14
31.43
MB
-rwxr-xr-x
x86_64-linux-gnu-nm
44.1
KB
-rwxr-xr-x
x86_64-linux-gnu-objcopy
155.83
KB
-rwxr-xr-x
x86_64-linux-gnu-objdump
387.05
KB
-rwxr-xr-x
x86_64-linux-gnu-pkg-config
44.04
KB
-rwxr-xr-x
x86_64-linux-gnu-pkgconf
44.04
KB
-rwxr-xr-x
x86_64-linux-gnu-ranlib
51.25
KB
-rwxr-xr-x
x86_64-linux-gnu-readelf
759.63
KB
-rwxr-xr-x
x86_64-linux-gnu-size
26.94
KB
-rwxr-xr-x
x86_64-linux-gnu-strings
31.06
KB
-rwxr-xr-x
x86_64-linux-gnu-strip
155.86
KB
-rwxr-xr-x
xargs
74.45
KB
-rwxr-xr-x
xsubpp
5.05
KB
-rwxr-xr-x
xz
102.7
KB
-rwxr-xr-x
xzcat
102.7
KB
-rwxr-xr-x
xzcmp
7.41
KB
-rwxr-xr-x
xzdiff
7.41
KB
-rwxr-xr-x
xzegrep
10.17
KB
-rwxr-xr-x
xzfgrep
10.17
KB
-rwxr-xr-x
xzgrep
10.17
KB
-rwxr-xr-x
xzless
2.33
KB
-rwxr-xr-x
xzmore
2.18
KB
-rwxr-xr-x
yes
42.41
KB
-rwxr-xr-x
ypdomainname
26.15
KB
-rwxr-xr-x
zcat
1.93
KB
-rwxr-xr-x
zcmp
1.64
KB
-rwxr-xr-x
zdiff
6.3
KB
-rwxr-xr-x
zdump
26.21
KB
-rwxr-xr-x
zegrep
29
B
-rwxr-xr-x
zfgrep
29
B
-rwxr-xr-x
zforce
2.03
KB
-rwxr-xr-x
zgrep
8.01
KB
-rwxr-xr-x
zipdetails
231.06
KB
-rwxr-xr-x
zless
2.38
KB
-rwxr-xr-x
zmore
1.79
KB
-rwxr-xr-x
znew
4.46
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : dpkg-source
#!/usr/bin/perl # # dpkg-source # # Copyright © 1996 Ian Jackson <ijackson@chiark.greenend.org.uk> # Copyright © 1997 Klee Dienes <klee@debian.org> # Copyright © 1999-2003 Wichert Akkerman <wakkerma@debian.org> # Copyright © 1999 Ben Collins <bcollins@debian.org> # Copyright © 2000-2003 Adam Heath <doogie@debian.org> # Copyright © 2005 Brendan O'Dea <bod@debian.org> # Copyright © 2006-2008 Frank Lichtenheld <djpig@debian.org> # Copyright © 2006-2009,2012 Guillem Jover <guillem@debian.org> # Copyright © 2008-2011 Raphaël Hertzog <hertzog@debian.org> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. use strict; use warnings; use List::Util qw(any none); use Cwd; use File::Basename; use File::Spec; use Dpkg (); use Dpkg::Gettext; use Dpkg::ErrorHandling; use Dpkg::Arch qw(:operators); use Dpkg::Deps; use Dpkg::Compression; use Dpkg::Conf; use Dpkg::Control::Info; use Dpkg::Control::Tests; use Dpkg::Control::Fields; use Dpkg::Substvars; use Dpkg::Version; use Dpkg::Package; use Dpkg::Changelog::Parse; use Dpkg::Source::Format; use Dpkg::Source::Package qw(get_default_diff_ignore_regex set_default_diff_ignore_regex get_default_tar_ignore_pattern); use Dpkg::Vendor qw(run_vendor_hook); textdomain('dpkg-dev'); my $controlfile; my $changelogformat; my $build_format; my %options = ( # Ignore files tar_ignore => [], diff_ignore_regex => '', # Misc options copy_orig_tarballs => 1, no_check => 0, no_overwrite_dir => 1, require_valid_signature => 0, require_strong_checksums => 0, ); # Fields to remove/override my %remove; my %override; my $substvars = Dpkg::Substvars->new(); my $tar_ignore_default_pattern_done; my $diff_ignore_regex = get_default_diff_ignore_regex(); my @options; my @cmdline_options; while (@ARGV && $ARGV[0] =~ m/^-/) { my $arg = shift @ARGV; if ($arg eq '-b' or $arg eq '--build') { setopmode('build'); } elsif ($arg eq '-x' or $arg eq '--extract') { setopmode('extract'); } elsif ($arg eq '--before-build') { setopmode('before-build'); } elsif ($arg eq '--after-build') { setopmode('after-build'); } elsif ($arg eq '--commit') { setopmode('commit'); } elsif ($arg eq '--print-format') { setopmode('print-format'); report_options(info_fh => \*STDERR); # Avoid clutter on STDOUT } else { push @options, $arg; } } my $dir; if (defined($options{opmode}) && $options{opmode} =~ /^(build|print-format|(before|after)-build|commit)$/) { if (not scalar(@ARGV)) { usageerr(g_('--%s needs a directory'), $options{opmode}) unless $1 eq 'commit'; $dir = '.'; } else { $dir = File::Spec->catdir(shift(@ARGV)); } stat($dir) or syserr(g_('cannot stat directory %s'), $dir); if (not -d $dir) { error(g_('directory argument %s is not a directory'), $dir); } if ($dir eq '.') { # . is never correct, adjust automatically $dir = basename(getcwd()); chdir '..' or syserr(g_("unable to chdir to '%s'"), '..'); } # --format options are not allowed, they would take precedence # over real command line options, debian/source/format should be used # instead # --unapply-patches is only allowed in local-options as it's a matter # of personal taste and the default should be to keep patches applied my $forbidden_opts_re = { 'options' => qr/^--(?:format=|unapply-patches$|abort-on-upstream-changes$)/, 'local-options' => qr/^--format=/, }; foreach my $filename ('local-options', 'options') { my $conf = Dpkg::Conf->new(); my $optfile = File::Spec->catfile($dir, 'debian', 'source', $filename); next unless -f $optfile; $conf->load($optfile); $conf->filter(remove => sub { $_[0] =~ $forbidden_opts_re->{$filename} }); if (@$conf) { info(g_('using options from %s: %s'), $optfile, join(' ', @$conf)) unless $options{opmode} eq 'print-format'; unshift @options, @$conf; } } } while (@options) { $_ = shift(@options); if (m/^--format=(.*)$/) { $build_format //= $1; } elsif (m/^-(?:Z|-compression=)(.*)$/) { my $compression = $1; $options{compression} = $compression; usageerr(g_('%s is not a supported compression'), $compression) unless compression_is_supported($compression); compression_set_default($compression); } elsif (m/^-(?:z|-compression-level=)(.*)$/) { my $comp_level = $1; $options{comp_level} = $comp_level; usageerr(g_('%s is not a compression level'), $comp_level) unless compression_is_valid_level($comp_level); compression_set_default_level($comp_level); } elsif (m/^--threads-max=(.*)$/) { my $threads = $1; $options{comp_threads} = $threads; compression_set_threads($threads); } elsif (m/^-c(.*)$/) { $controlfile = $1; } elsif (m/^-l(.*)$/) { $options{changelog_file} = $1; } elsif (m/^-F([0-9a-z]+)$/) { $changelogformat = $1; } elsif (m/^-D([^\=:]+)[=:](.*)$/s) { $override{$1} = $2; } elsif (m/^-U([^\=:]+)$/) { $remove{$1} = 1; } elsif (m/^--diff-ignore$/) { $options{diff_ignore_regex} = $diff_ignore_regex; } elsif (m/^-(?:i|-diff-ignore=)(.*)$/) { $options{diff_ignore_regex} = $1 ? $1 : $diff_ignore_regex; } elsif (m/^--extend-diff-ignore=(.+)$/) { $diff_ignore_regex .= "|$1"; if ($options{diff_ignore_regex}) { $options{diff_ignore_regex} .= "|$1"; } set_default_diff_ignore_regex($diff_ignore_regex); } elsif (m/^-(?:I|-tar-ignore=)(.+)$/) { push @{$options{tar_ignore}}, $1; } elsif (m/^-(?:I|-tar-ignore)$/) { unless ($tar_ignore_default_pattern_done) { push @{$options{tar_ignore}}, get_default_tar_ignore_pattern(); # Prevent adding multiple times $tar_ignore_default_pattern_done = 1; } } elsif (m/^--no-copy$/) { $options{copy_orig_tarballs} = 0; } elsif (m/^--no-check$/) { $options{no_check} = 1; } elsif (m/^--no-overwrite-dir$/) { $options{no_overwrite_dir} = 1; } elsif (m/^--require-valid-signature$/) { $options{require_valid_signature} = 1; } elsif (m/^--require-strong-checksums$/) { $options{require_strong_checksums} = 1; } elsif (m/^-V(\w[-:0-9A-Za-z]*)[=:](.*)$/s) { $substvars->set($1, $2); } elsif (m/^-T(.*)$/) { $substvars->load($1) if -e $1; } elsif (m/^-(?:\?|-help)$/) { usage(); exit(0); } elsif (m/^--version$/) { version(); exit(0); } elsif (m/^-[EW]$/) { # Deprecated option warning(g_('-E and -W are deprecated, they are without effect')); } elsif (m/^-q$/) { report_options(quiet_warnings => 1); $options{quiet} = 1; } elsif (m/^--$/) { last; } else { push @cmdline_options, $_; } } unless (defined($options{opmode})) { usageerr(g_('need an action option')); } if ($options{opmode} =~ /^(build|print-format|(before|after)-build|commit)$/) { $options{ARGV} = \@ARGV; $options{changelog_file} ||= "$dir/debian/changelog"; $controlfile ||= "$dir/debian/control"; my %ch_options = (file => $options{changelog_file}); $ch_options{changelogformat} = $changelogformat if $changelogformat; my $changelog = changelog_parse(%ch_options); my $control = Dpkg::Control::Info->new($controlfile); # <https://reproducible-builds.org/specs/source-date-epoch/> $ENV{SOURCE_DATE_EPOCH} ||= $changelog->{timestamp} || time; # Select the format to use if (not defined $build_format) { my $format_file = "$dir/debian/source/format"; if (-e $format_file) { my $format = Dpkg::Source::Format->new(filename => $format_file); $build_format = $format->get(); } else { warning(g_('no source format specified in %s, ' . 'see dpkg-source(1)'), 'debian/source/format') if $options{opmode} eq 'build'; $build_format = '1.0'; } } my $srcpkg = Dpkg::Source::Package->new(format => $build_format, options => \%options); my $fields = $srcpkg->{fields}; $srcpkg->parse_cmdline_options(@cmdline_options); my @sourcearch; my %archadded; my @binarypackages; # Scan control info of source package my $src_fields = $control->get_source(); error(g_("%s doesn't contain any information about the source package"), $controlfile) unless defined $src_fields; foreach my $f (keys %{$src_fields}) { my $v = $src_fields->{$f}; if ($f eq 'Source') { set_source_name($v); $fields->{$f} = $v; } elsif ($f eq 'Uploaders') { # Merge in a single-line. ($fields->{$f} = $v) =~ s/\s*[\r\n]\s*/ /g; } elsif (any { $f eq $_ } field_list_src_dep()) { my $dep; my $type = field_get_dep_type($f); $dep = deps_parse($v, build_dep => 1, union => $type eq 'union'); error(g_('cannot parse %s field'), $f) unless defined $dep; my $facts = Dpkg::Deps::KnownFacts->new(); $dep->simplify_deps($facts); $dep->sort() if $type eq 'union'; $fields->{$f} = $dep->output(); } else { field_transfer_single($src_fields, $fields, $f); } } # Scan control info of binary packages my @pkglist; foreach my $pkg ($control->get_packages()) { my $p = $pkg->{'Package'}; my %pkg_prop; foreach my $f (qw(Section Priority)) { $pkg_prop{lc $f} = $pkg->{$f} || $src_fields->{$f} || field_get_default_value($f); } $pkg_prop{type} = $pkg->{'Package-Type'} || $pkg->get_custom_field('Package-Type') || 'deb'; $pkg_prop{arch} = join ',', split ' ', $pkg->{'Architecture'}; my $profile = $pkg->{'Build-Profiles'}; if (defined $profile) { # Instead of splitting twice and then joining twice, we just do # simple string replacements: # Remove the enclosing <> $profile =~ s/^\s*<(.*)>\s*$/$1/; # Join lists with a plus (OR) $profile =~ s/>\s+</+/g; # Join their elements with a comma (AND) $profile =~ s/\s+/,/g; $pkg_prop{profile} = $profile; } # Handle optional boolean fields. foreach my $f (qw(Protected Essential)) { if (defined $pkg->{$f} and $pkg->{$f} eq 'yes') { $pkg_prop{lc $f} = 'yes'; } } # Generate the package list properties. my $pkg_summary = join ' ', $p, @pkg_prop{qw(type section priority)}; foreach my $prop (qw(arch profile protected essential)) { next unless exists $pkg_prop{$prop}; $pkg_summary .= " $prop=$pkg_prop{$prop}"; } push @pkglist, $pkg_summary; push @binarypackages, $p; foreach my $f (keys %{$pkg}) { my $v = $pkg->{$f}; if ($f eq 'Architecture') { # Gather all binary architectures in one set. 'any' and 'all' # are special-cased as they need to be the only ones in the # current stanza if present. if (debarch_eq($v, 'any') || debarch_eq($v, 'all')) { push(@sourcearch, $v) unless $archadded{$v}++; } else { for my $a (split(/\s+/, $v)) { error(g_("'%s' is not a legal architecture string " . "in package '%s'"), $a, $p) if debarch_is_illegal($a); error(g_('architecture %s only allowed on its ' . "own (list for package %s is '%s')"), $a, $p, $a) if $a eq 'any' or $a eq 'all'; push(@sourcearch, $a) unless $archadded{$a}++; } } } elsif (any { $f eq $_ } qw(Homepage Description)) { # Do not overwrite the same field from the source entry } else { field_transfer_single($pkg, $fields, $f); } } } unless (scalar(@pkglist)) { error(g_("%s doesn't list any binary package"), $controlfile); } if (any { $_ eq 'any' } @sourcearch) { # If we encounter one 'any' then the other arches become insignificant # except for 'all' that must also be kept if (any { $_ eq 'all' } @sourcearch) { @sourcearch = qw(any all); } else { @sourcearch = qw(any); } } else { # Minimize arch list, by removing arches already covered by wildcards my @arch_wildcards = grep { debarch_is_wildcard($_) } @sourcearch; my @mini_sourcearch = @arch_wildcards; foreach my $arch (@sourcearch) { if (none { debarch_is($arch, $_) } @arch_wildcards) { push @mini_sourcearch, $arch; } } @sourcearch = @mini_sourcearch; } $fields->{'Architecture'} = join(' ', @sourcearch); $fields->{'Package-List'} = "\n" . join("\n", sort @pkglist); # Check if we have a testsuite, and handle manual and automatic values. set_testsuite_fields($fields, @binarypackages); # Scan fields of dpkg-parsechangelog foreach my $f (keys %{$changelog}) { my $v = $changelog->{$f}; if ($f eq 'Source') { set_source_name($v); $fields->{$f} = $v; } elsif ($f eq 'Version') { my ($ok, $error) = version_check($v); error($error) unless $ok; $fields->{$f} = $v; } elsif ($f eq 'Binary-Only') { error(g_('building source for a binary-only release')) if $v eq 'yes' and $options{opmode} eq 'build'; } elsif ($f eq 'Maintainer') { # Do not replace the field coming from the source entry } else { field_transfer_single($changelog, $fields, $f); } } $fields->{'Binary'} = join(', ', @binarypackages); # Avoid overly long line by splitting over multiple lines if (length($fields->{'Binary'}) > 980) { $fields->{'Binary'} =~ s/(.{0,980}), ?/$1,\n/g; } if ($options{opmode} eq 'print-format') { print $fields->{'Format'} . "\n"; exit(0); } elsif ($options{opmode} eq 'before-build') { $srcpkg->before_build($dir); exit(0); } elsif ($options{opmode} eq 'after-build') { $srcpkg->after_build($dir); exit(0); } elsif ($options{opmode} eq 'commit') { $srcpkg->commit($dir); exit(0); } # Verify pre-requisites are met my ($res, $msg) = $srcpkg->can_build($dir); error(g_("can't build with source format '%s': %s"), $build_format, $msg) unless $res; # Only -b left info(g_("using source format '%s'"), $fields->{'Format'}); run_vendor_hook('before-source-build', $srcpkg); # Build the files (.tar.gz, .diff.gz, etc) $srcpkg->build($dir); # Write the .dsc my $dscname = $srcpkg->get_basename(1) . '.dsc'; info(g_('building %s in %s'), get_source_name(), $dscname); $srcpkg->write_dsc(filename => $dscname, remove => \%remove, override => \%override, substvars => $substvars); exit(0); } elsif ($options{opmode} eq 'extract') { # Check command line unless (scalar(@ARGV)) { usageerr(g_('--%s needs at least one argument, the .dsc'), $options{opmode}); } if (scalar(@ARGV) > 2) { usageerr(g_('--%s takes no more than two arguments'), $options{opmode}); } my $dsc = shift(@ARGV); if (-d $dsc) { usageerr(g_('--%s needs the .dsc file as first argument, not a directory'), $options{opmode}); } # Create the object that does everything my $srcpkg = Dpkg::Source::Package->new(filename => $dsc, options => \%options); # Parse command line options $srcpkg->parse_cmdline_options(@cmdline_options); # Decide where to unpack my $newdirectory = $srcpkg->get_basedirname(); if (@ARGV) { $newdirectory = File::Spec->catdir(shift(@ARGV)); if (-e $newdirectory) { error(g_('unpack target exists: %s'), $newdirectory); } } # Various checks before unpacking unless ($options{no_check}) { if ($srcpkg->is_signed()) { $srcpkg->check_signature(); } elsif ($options{require_valid_signature}) { error(g_("%s doesn't contain a valid OpenPGP signature"), $dsc); } else { warning(g_('extracting unsigned source package (%s)'), $dsc); } $srcpkg->check_checksums(); } # Unpack the source package (delegated to Dpkg::Source::Package::*) info(g_('extracting %s in %s'), $srcpkg->{fields}{'Source'}, $newdirectory); $srcpkg->extract($newdirectory); exit(0); } sub set_testsuite_fields { my ($fields, @binarypackages) = @_; my $testsuite_field = $fields->{'Testsuite'} // ''; my %testsuite = map { $_ => 1 } split /\s*,\s*/, $testsuite_field; if (-e "$dir/debian/tests/control") { error(g_('test control %s is not a regular file'), 'debian/tests/control') unless -f _; $testsuite{autopkgtest} = 1; my $tests = Dpkg::Control::Tests->new(); $tests->load("$dir/debian/tests/control"); set_testsuite_triggers_field($tests, $fields, @binarypackages); } elsif ($testsuite{autopkgtest}) { warning(g_("%s field contains value '%s', but no tests control file %s"), 'Testsuite', 'autopkgtest', 'debian/tests/control'); delete $testsuite{autopkgtest}; } $fields->{'Testsuite'} = join ', ', sort keys %testsuite; } sub set_testsuite_triggers_field { my ($tests, $fields, @binarypackages) = @_; my %testdeps; # Never overwrite a manually defined field. return if $fields->{'Testsuite-Triggers'}; foreach my $test ($tests->get()) { if (not exists $test->{Tests} and not exists $test->{'Test-Command'}) { error(g_('test control %s is missing %s or %s field'), 'debian/tests/control', 'Tests', 'Test-Command'); } next unless $test->{Depends}; my $deps = deps_parse($test->{Depends}, use_arch => 0, tests_dep => 1); deps_iterate($deps, sub { $testdeps{$_[0]->{package}} = 1 }); } # Remove our own binaries and its meta-depends variant. foreach my $pkg (@binarypackages, qw(@)) { delete $testdeps{$pkg}; } $fields->{'Testsuite-Triggers'} = join ', ', sort keys %testdeps; } sub setopmode { my $opmode = shift; if (defined($options{opmode})) { usageerr(g_('two commands specified: --%s and --%s'), $options{opmode}, $opmode); } $options{opmode} = $opmode; } sub print_option { my $opt = shift; my $help = gettext($opt->{help}); if (length $opt->{name} > 25) { return sprintf " %-25s\n%s%s.\n", $opt->{name}, ' ' x 27, $help; } else { return sprintf " %-25s%s.\n", $opt->{name}, $help; } } sub get_format_help { $build_format //= '1.0'; my $srcpkg = Dpkg::Source::Package->new(format => $build_format); my @cmdline = $srcpkg->describe_cmdline_options(); return '' unless @cmdline; my $help_build = my $help_extract = ''; my $help; foreach my $opt (@cmdline) { $help_build .= print_option($opt) if $opt->{when} eq 'build'; $help_extract .= print_option($opt) if $opt->{when} eq 'extract'; } if ($help_build) { $help .= "\n"; $help .= "Build format $build_format options:\n"; $help .= $help_build || C_('source options', '<none>'); } if ($help_extract) { $help .= "\n"; $help .= "Extract format $build_format options:\n"; $help .= $help_extract || C_('source options', '<none>'); } return $help; } sub version { printf g_("Debian %s version %s.\n"), $Dpkg::PROGNAME, $Dpkg::PROGVERSION; print g_(' This is free software; see the GNU General Public License version 2 or later for copying conditions. There is NO warranty. '); } sub usage { printf g_( 'Usage: %s [<option>...] <command>') . "\n\n" . g_( 'Commands: -x, --extract <filename>.dsc [<output-dir>] extract source package. -b, --build <dir> build source package. --print-format <dir> print the format to be used for the source package. --before-build <dir> run the corresponding source package format hook. --after-build <dir> run the corresponding source package format hook. --commit [<dir> [<patch-name>]] store upstream changes in a new patch.') . "\n\n" . g_( "Build options: -c<control-file> get control info from this file. -l<changelog-file> get per-version info from this file. -F<changelog-format> force changelog format. --format=<source-format> set the format to be used for the source package. -V<name>=<value> set a substitution variable. -T<substvars-file> read variables here. -D<field>=<value> override or add a .dsc field and value. -U<field> remove a field. -i, --diff-ignore[=<regex>] filter out files to ignore diffs of (defaults to: '%s'). -I, --tar-ignore[=<pattern>] filter out files when building tarballs (defaults to: %s). -Z, --compression=<compression> select compression to use (defaults to '%s', supported are: %s). -z, --compression-level=<level> compression level to use (defaults to '%d', supported are: '1'-'9', 'best', 'fast')") . "\n\n" . g_( "Extract options: --no-copy don't copy .orig tarballs --no-check don't check signature and checksums before unpacking --no-overwrite-dir do not overwrite directory on extraction --require-valid-signature abort if the package doesn't have a valid signature --require-strong-checksums abort if the package contains no strong checksums --ignore-bad-version allow bad source package versions.") . "\n" . get_format_help() . "\n" . g_( 'General options: --threads-max=<threads> use at most <threads> with compressor. -q quiet mode. -?, --help show this help message. --version show the version.') . "\n\n" . g_( 'Source format specific build and extract options are available; use --format with --help to see them.') . "\n", $Dpkg::PROGNAME, get_default_diff_ignore_regex(), join(' ', map { "-I$_" } get_default_tar_ignore_pattern()), compression_get_default(), join(' ', compression_get_list()), compression_get_default_level(); }
Close