Linux ns8.secondary29.go.th 2.6.32-754.28.1.el6.x86_64 #1 SMP Wed Mar 11 18:38:45 UTC 2020 x86_64
Apache/2.2.15 (CentOS)
: 122.154.134.11 | : 122.154.134.9
Cant Read [ /etc/named.conf ]
5.6.40
apache
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
.fipscheck.hmac
65
B
-rw-r--r--
.ssh.hmac
65
B
-rw-r--r--
411toppm
11.26
KB
-rwxr-xr-x
5250keys
876
B
-rwxr-xr-x
GET
14.18
KB
-rwxr-xr-x
HEAD
14.18
KB
-rwxr-xr-x
Mail
381.95
KB
-rwxr-xr-x
POST
14.18
KB
-rwxr-xr-x
[
36.13
KB
-rwxr-xr-x
a2p
109.27
KB
-rwxr-xr-x
a2ping
91.65
KB
-rwxr-xr-x
ab
49.54
KB
-rwxr-xr-x
abrt-action-analyze-backtrace
21.81
KB
-rwxr-xr-x
abrt-action-analyze-c
20.66
KB
-rwxr-xr-x
abrt-action-analyze-ccpp-local
1.28
KB
-rwxr-xr-x
abrt-action-analyze-core
6.52
KB
-rwxr-xr-x
abrt-action-analyze-oops
21.26
KB
-rwxr-xr-x
abrt-action-analyze-python
19.73
KB
-rwxr-xr-x
abrt-action-generate-backtrace
21.13
KB
-rwxr-xr-x
abrt-action-generate-core-back...
19.93
KB
-rwxr-xr-x
abrt-action-install-debuginfo
7.02
KB
-rwxr-xr-x
abrt-action-list-dsos
2.69
KB
-rwxr-xr-x
abrt-action-notify
8.66
KB
-rwxr-xr-x
abrt-action-save-kernel-data
1.26
KB
-rwxr-xr-x
abrt-action-save-package-data
29.41
KB
-rwxr-xr-x
abrt-action-trim-files
24.56
KB
-rwxr-xr-x
abrt-cli
31.16
KB
-rwxr-xr-x
abrt-cli-root
8.67
KB
-rwxr-xr-x
abrt-dedup-client
36.2
KB
-rwxr-xr-x
abrt-dump-oops
28.66
KB
-rwxr-xr-x
abrt-handle-upload
8.79
KB
-rwxr-xr-x
ac
24.23
KB
-rwxr-xr-x
aclocal
30.45
KB
-rwxr-xr-x
aclocal-1.11
30.45
KB
-rwxr-xr-x
aconnect
22.37
KB
-rwxr-xr-x
acpi_listen
14.63
KB
-rwxr-xr-x
addftinfo
25.52
KB
-rwxr-xr-x
addr2line
29.16
KB
-rwxr-xr-x
afs5log
76.61
KB
-rwxr-xr-x
aleph
458.53
KB
-rwxr-xr-x
allcm
3.3
KB
-rwxr-xr-x
allec
3.3
KB
-rwxr-xr-x
allneeded
903
B
-rwxr-xr-x
alsa-info
27.22
KB
-rwxr-xr-x
alsa-info.sh
27.22
KB
-rwxr-xr-x
alsaloop
1.49
MB
-rwxr-xr-x
alsamixer
74.68
KB
-rwxr-xr-x
amidi
22.94
KB
-rwxr-xr-x
amixer
54.85
KB
-rwxr-xr-x
amstex
650.74
KB
-rwxr-xr-x
anytopnm
11.11
KB
-rwxr-xr-x
aplay
76.96
KB
-rwxr-xr-x
aplaymidi
25.51
KB
-rwxr-xr-x
apropos
1.74
KB
-rwxr-xr-x
ar
59.55
KB
-rwxr-xr-x
arecord
76.96
KB
-rwxr-xr-x
arecordmidi
28.36
KB
-rwxr-xr-x
as
529.23
KB
-rwxr-xr-x
asciitopgm
10.2
KB
-rwxr-xr-x
aseqdump
20.84
KB
-rwxr-xr-x
aseqnet
21.88
KB
-rwxr-xr-x
aserver
32.12
KB
-rwxr-xr-x
assistant-qt4
947.75
KB
-rwxr-xr-x
assistant_adp
603.22
KB
-rwxr-xr-x
at
53.19
KB
-rwsr-xr-x
atktopbm
11.36
KB
-rwxr-xr-x
atq
53.19
KB
-rwsr-xr-x
atrm
53.19
KB
-rwsr-xr-x
attr
13.52
KB
-rwxr-xr-x
aulast
18.31
KB
-rwxr-xr-x
aulastlog
12.88
KB
-rwxr-xr-x
ausyscall
11.02
KB
-rwxr-xr-x
autoconf
14.29
KB
-rwxr-xr-x
autoheader
8.29
KB
-rwxr-xr-x
autom4te
31.04
KB
-rwxr-xr-x
automake
251.04
KB
-rwxr-xr-x
automake-1.11
251.04
KB
-rwxr-xr-x
autopoint
18.32
KB
-rwxr-xr-x
autoreconf
19.76
KB
-rwxr-xr-x
autoscan
16.67
KB
-rwxr-xr-x
autoupdate
32.97
KB
-rwxr-xr-x
auvirt
34.01
KB
-rwxr-xr-x
awk
373.78
KB
-rwxr-xr-x
b2m
10.87
KB
-rwxr-xr-x
b43-fwcutter
26.95
KB
-rwxr-xr-x
base64
32.08
KB
-rwxr-xr-x
bashbug-64
6.77
KB
-rwxr-xr-x
batch
137
B
-rwxr-xr-x
bc
85.78
KB
-rwxr-xr-x
bdftopcf
10.91
KB
-rwxr-xr-x
bdftops
292
B
-rwxr-xr-x
berkeley_db_svc
74.05
KB
-rwxr-xr-x
bibtex
100.58
KB
-rwxr-xr-x
bibtex8
126.81
KB
-rwxr-xr-x
bioradtopgm
10.41
KB
-rwxr-xr-x
bison
296.2
KB
-rwxr-xr-x
blkiomon
24.82
KB
-rwxr-xr-x
blkparse
46.11
KB
-rwxr-xr-x
blkrawverify
15.17
KB
-rwxr-xr-x
blktrace
38.83
KB
-rwxr-xr-x
bmp2tiff
17.5
KB
-rwxr-xr-x
bmptopnm
22.91
KB
-rwxr-xr-x
bmptoppm
22.91
KB
-rwxr-xr-x
bno_plot.py
3.38
KB
-rwxr-xr-x
brushtopbm
9.32
KB
-rwxr-xr-x
btrace
891
B
-rwxr-xr-x
btrecord
16.55
KB
-rwxr-xr-x
btreplay
26.84
KB
-rwxr-xr-x
btt
72.35
KB
-rwxr-xr-x
build-classpath
1.5
KB
-rwxr-xr-x
build-classpath-directory
383
B
-rwxr-xr-x
build-jar-repository
1.54
KB
-rwxr-xr-x
bunzip2
35.48
KB
-rwxr-xr-x
byacc
76.46
KB
-rwxr-xr-x
bzcat
35.48
KB
-rwxr-xr-x
bzcmp
2.08
KB
-rwxr-xr-x
bzdiff
2.08
KB
-rwxr-xr-x
bzgrep
1.64
KB
-rwxr-xr-x
bzip2
35.48
KB
-rwxr-xr-x
bzip2recover
13.14
KB
-rwxr-xr-x
bzless
1.23
KB
-rwxr-xr-x
bzmore
1.23
KB
-rwxr-xr-x
c++
264.98
KB
-rwxr-xr-x
c++filt
28.54
KB
-rwxr-xr-x
c2ph
35.74
KB
-rwxr-xr-x
c89
224
B
-rwxr-xr-x
c99
215
B
-rwxr-xr-x
ca-legacy
1.61
KB
-rwxr-xr-x
cal
21.09
KB
-rwxr-xr-x
callgrind_annotate
39.92
KB
-rwxr-xr-x
callgrind_control
11.25
KB
-rwxr-xr-x
cameratopam
110.96
KB
-rwxr-xr-x
cancel
14.33
KB
-rwxr-xr-x
cancel.cups
14.33
KB
-rwxr-xr-x
captoinfo
52.52
KB
-rwxr-xr-x
cas
17.01
KB
-rwxr-xr-x
cas-admin
9.84
KB
-rwxr-xr-x
catchsegv
3.3
KB
-rwxr-xr-x
cc
265.34
KB
-rwxr-xr-x
ccache-swig
49.04
KB
-rwxr-xr-x
certmaster-getcert
130.03
KB
-rwxr-xr-x
certutil
172.66
KB
-rwxr-xr-x
certwatch
18.33
KB
-rwxr-xr-x
cg_annotate
31.42
KB
-rwxr-xr-x
cg_diff
10.17
KB
-rwxr-xr-x
cg_merge
68.01
KB
-rwxr-xr-x
chacl
16.82
KB
-rwxr-xr-x
chage
68.83
KB
-rwsr-xr-x
chainsaw
693
B
-rwxr-xr-x
chattr
13.8
KB
-rwxr-xr-x
chcon
58.28
KB
-rwxr-xr-x
check-binary-files
3.25
KB
-rwxr-xr-x
checkmodule
274.53
KB
-rwxr-xr-x
checkpolicy
282.53
KB
-rwxr-xr-x
checksctp
7.75
KB
-rwxr-xr-x
cheetah
73
B
-rwxr-xr-x
cheetah-analyze
114
B
-rwxr-xr-x
cheetah-compile
89
B
-rwxr-xr-x
chfn
19.71
KB
-rws--x--x
chrt
12.77
KB
-rwxr-xr-x
chsh
19.59
KB
-rws--x--x
chvt
9.82
KB
-rwxr-xr-x
ci
90.02
KB
-rwxr-xr-x
cifsiostat
55.98
KB
-rwxr-xr-x
cjpeg
31.84
KB
-rwxr-xr-x
ck-history
27.01
KB
-rwxr-xr-x
ck-launch-session
11.2
KB
-rwxr-xr-x
ck-list-sessions
15.39
KB
-rwxr-xr-x
cksum
28.14
KB
-rwxr-xr-x
clean-binary-files
12.91
KB
-rwxr-xr-x
clear
8.16
KB
-rwxr-xr-x
cloog
14.98
KB
-rwxr-xr-x
clusterdb
57.98
KB
-rwxr-xr-x
cmp
23.09
KB
-rwxr-xr-x
cmsutil
103.77
KB
-rwxr-xr-x
cmuwmtopbm
9.7
KB
-rwxr-xr-x
co
85.62
KB
-rwxr-xr-x
col
14.21
KB
-rwxr-xr-x
colcrt
11.04
KB
-rwxr-xr-x
colrm
8.64
KB
-rwxr-xr-x
column
13.16
KB
-rwxr-xr-x
combinediff
48.13
KB
-rwxr-xr-x
comm
31.3
KB
-rwxr-xr-x
config_data
7.07
KB
-rwxr-xr-x
consolehelper
8.67
KB
-rwxr-xr-x
corelist
6.36
KB
-rwxr-xr-x
cpan
11.56
KB
-rwxr-xr-x
cpan2dist
21.88
KB
-rwxr-xr-x
cpanp
3.32
KB
-rwxr-xr-x
cpanp-run-perl
536
B
-rwxr-xr-x
cpp
264.98
KB
-rwxr-xr-x
crash
7.07
MB
-rwxr-xr-x
create-jar-links
4.55
KB
-rwxr-xr-x
createdb
59.52
KB
-rwxr-xr-x
createlang
61.05
KB
-rwxr-xr-x
createuser
59.81
KB
-rwxr-xr-x
crlutil
115.62
KB
-rwxr-xr-x
crontab
50.57
KB
-rwsr-xr-x
cscope
327.81
KB
-rwxr-xr-x
cscope-indexer
3.77
KB
-rwxr-xr-x
cslatex
650.74
KB
-rwxr-xr-x
csplain
650.74
KB
-rwxr-xr-x
csplit
106.16
KB
-rwxr-xr-x
csslint-0.6
22.67
KB
-rwxr-xr-x
ctags
230.13
KB
-rwxr-xr-x
ctangle
43.22
KB
-rwxr-xr-x
ctie
18.92
KB
-rwxr-xr-x
cupstestdsc
14.23
KB
-rwxr-xr-x
cupstestppd
62.62
KB
-rwxr-xr-x
curl
131.35
KB
-rwxr-xr-x
cut
44.47
KB
-rwxr-xr-x
cvs
626.08
KB
-rwxr-xr-x
cvsbug
13.7
KB
-rwxr-xr-x
cweave
80.28
KB
-rwxr-xr-x
db_archive
11.8
KB
-rwxr-xr-x
db_checkpoint
13.79
KB
-rwxr-xr-x
db_codegen
25.59
KB
-rwxr-xr-x
db_deadlock
14.16
KB
-rwxr-xr-x
db_dump
15.8
KB
-rwxr-xr-x
db_dump185
63.81
KB
-rwxr-xr-x
db_hotbackup
20.88
KB
-rwxr-xr-x
db_load
26.78
KB
-rwxr-xr-x
db_printlog
69.6
KB
-rwxr-xr-x
db_recover
13.48
KB
-rwxr-xr-x
db_stat
14.5
KB
-rwxr-xr-x
db_upgrade
12.31
KB
-rwxr-xr-x
db_verify
12.9
KB
-rwxr-xr-x
dbilogstrip
1.43
KB
-rwxr-xr-x
dbiprof
6.15
KB
-rwxr-xr-x
dbiproxy
5.35
KB
-rwxr-xr-x
dbus-binding-tool
87.89
KB
-rwxr-xr-x
dc
48.65
KB
-rwxr-xr-x
ddate
13.68
KB
-rwxr-xr-x
ddbugtopbm
10.95
KB
-rwxr-xr-x
deallocvt
10.28
KB
-rwxr-xr-x
debuginfo-install
7.46
KB
-rwxr-xr-x
dehtmldiff
1.32
KB
-rwxr-xr-x
desktop-file-install
51.77
KB
-rwxr-xr-x
desktop-file-validate
43.81
KB
-rwxr-xr-x
dialog
35.69
KB
-rwxr-xr-x
diff
84.34
KB
-rwxr-xr-x
diff-jars
1.2
KB
-rwxr-xr-x
diff3
26.94
KB
-rwxr-xr-x
diffstat
34.27
KB
-rwxr-xr-x
dig
150.51
KB
-rwxr-xr-x
dir
114.3
KB
-rwxr-xr-x
dircolors
35.74
KB
-rwxr-xr-x
dirname
25.65
KB
-rwxr-xr-x
djpeg
32.17
KB
-rwxr-xr-x
dltest
10.8
KB
-rwxr-xr-x
dmp
37.08
KB
-rwxr-xr-x
doxygen
5.47
MB
-rwxr-xr-x
doxytag
285.77
KB
-rwxr-xr-x
dprofpp
23.52
KB
-rwxr-xr-x
drill
63.46
KB
-rwxr-xr-x
dropdb
55.79
KB
-rwxr-xr-x
droplang
63.36
KB
-rwxr-xr-x
dropuser
55.79
KB
-rwxr-xr-x
dstat
81.42
KB
-rwxr-xr-x
du
96.88
KB
-rwxr-xr-x
dumphint
554
B
-rwxr-xr-x
dvi2fax
1.07
KB
-rwxr-xr-x
dvipdf
1.03
KB
-rwxr-xr-x
dvips
203.13
KB
-rwxr-xr-x
dvired
3.01
KB
-rwxr-xr-x
dvitomp
38.8
KB
-rwxr-xr-x
e2pall
2.66
KB
-rwxr-xr-x
easy_install
323
B
-rwxr-xr-x
easy_install-2.6
331
B
-rwxr-xr-x
ebrowse
46.57
KB
-rwxr-xr-x
ecj
117
B
-rwxr-xr-x
editdiff
1.91
KB
-rwxr-xr-x
eject
8.67
KB
-rwxr-xr-x
elinks
1.2
MB
-rwxr-xr-x
emacs
10.51
MB
-rwxr-xr-t
emacs-23.1
10.51
MB
-rwxr-xr-t
emacsclient
24.71
KB
-rwxr-xr-x
enc2xs
38.23
KB
-rwxr-xr-x
env
25.75
KB
-rwxr-xr-x
envsubst
32.77
KB
-rwxr-xr-x
eplain
650.74
KB
-rwxr-xr-x
eps2eps
632
B
-rwxr-xr-x
epsffit
13.96
KB
-rwxr-xr-x
epstopdf
12.02
KB
-rwxr-xr-x
eqn
140.8
KB
-rwxr-xr-x
eqn2graph
2.19
KB
-rwxr-xr-x
escp2topbm
9.98
KB
-rwxr-xr-x
espdiff
1.53
KB
-rwxr-xr-x
etags
100.07
KB
-rwxr-xr-x
etags.emacs
100.07
KB
-rwxr-xr-x
etex
650.74
KB
-rwxr-xr-x
eu-addr2line
25.46
KB
-rwxr-xr-x
eu-ar
36.27
KB
-rwxr-xr-x
eu-elfcmp
33.06
KB
-rwxr-xr-x
eu-elflint
101.55
KB
-rwxr-xr-x
eu-findtextrel
19.51
KB
-rwxr-xr-x
eu-make-debug-archive
2.84
KB
-rwxr-xr-x
eu-nm
46.32
KB
-rwxr-xr-x
eu-objdump
33.37
KB
-rwxr-xr-x
eu-ranlib
20.49
KB
-rwxr-xr-x
eu-readelf
174.43
KB
-rwxr-xr-x
eu-size
18.76
KB
-rwxr-xr-x
eu-stack
29.21
KB
-rwxr-xr-x
eu-strings
19.82
KB
-rwxr-xr-x
eu-strip
50.24
KB
-rwxr-xr-x
eu-unstrip
48.64
KB
-rwxr-xr-x
execstack
180.27
KB
-rwxr-xr-x
expand
29.79
KB
-rwxr-xr-x
expr
97.88
KB
-rwxr-xr-x
extconv
8
KB
-rwxr-xr-x
eyuvtoppm
11.86
KB
-rwxr-xr-x
f95
277.73
KB
-rwxr-xr-x
factor
47.84
KB
-rwxr-xr-x
fallocate
11.33
KB
-rwxr-xr-x
fastjar
47.43
KB
-rwxr-xr-x
fax2ps
19.02
KB
-rwxr-xr-x
fax2tiff
17.92
KB
-rwxr-xr-x
fc-cache
17.02
KB
-rwxr-xr-x
fc-cat
15.1
KB
-rwxr-xr-x
fc-list
12.71
KB
-rwxr-xr-x
fc-match
13.98
KB
-rwxr-xr-x
fc-query
11.38
KB
-rwxr-xr-x
fc-scan
11.74
KB
-rwxr-xr-x
fgconsole
10.38
KB
-rwxr-xr-x
fiascotopnm
92.72
KB
-rwxr-xr-x
file
19.32
KB
-rwxr-xr-x
filterdiff
44.24
KB
-rwxr-xr-x
find
233.4
KB
-rwxr-xr-x
find-jar
749
B
-rwxr-xr-x
find-repos-of-install
4.27
KB
-rwxr-xr-x
find2perl
23.06
KB
-rwxr-xr-x
findsmb
4.5
KB
-rwxr-xr-x
fipscheck
14.57
KB
-rwxr-xr-x
fipshmac
13.9
KB
-rwxr-xr-x
fitstopnm
16.29
KB
-rwxr-xr-x
fixcvsdiff
1.83
KB
-rwxr-xr-x
flac
191.95
KB
-rwxr-xr-x
flex
329.84
KB
-rwxr-xr-x
flex++
329.84
KB
-rwxr-xr-x
flipdiff
48.13
KB
-rwxr-xr-x
flock
14.15
KB
-rwxr-xr-x
floppy
27.98
KB
-rwxr-xr-x
fmt
33.23
KB
-rwxr-xr-x
fmtutil
28.47
KB
-rwxr-xr-x
fmtutil-sys
831
B
-rwxr-xr-x
fold
30.95
KB
-rwxr-xr-x
font2c
300
B
-rwxr-xr-x
fontinst
552
B
-rwxr-xr-x
fonttosfnt
36.59
KB
-rwxr-xr-x
foomatic-combo-xml
45.17
KB
-rwxr-xr-x
foomatic-compiledb
4.52
KB
-rwxr-xr-x
foomatic-configure
133.59
KB
-rwxr-xr-x
foomatic-datafile
9.45
KB
-rwxr-xr-x
foomatic-perl-data
81.95
KB
-rwxr-xr-x
foomatic-ppd-options
3.91
KB
-rwxr-xr-x
foomatic-ppd-to-xml
8.79
KB
-rwxr-xr-x
foomatic-ppdfile
9.45
KB
-rwxr-xr-x
foomatic-printjob
34.27
KB
-rwxr-xr-x
foomatic-rip
108.56
KB
-rwxr-xr-x
foomatic-searchprinter
2.43
KB
-rwxr-xr-x
fprintd-delete
12.99
KB
-rwxr-xr-x
fprintd-enroll
12.7
KB
-rwxr-xr-x
fprintd-list
13.45
KB
-rwxr-xr-x
fprintd-verify
14.66
KB
-rwxr-xr-x
free
14.02
KB
-rwxr-xr-x
fstopgm
10.46
KB
-rwxr-xr-x
funzip
24.84
KB
-rwxr-xr-x
g++
264.98
KB
-rwxr-xr-x
g3topbm
15.47
KB
-rwxr-xr-x
gawk
373.78
KB
-rwxr-xr-x
gcc
265.34
KB
-rwxr-xr-x
gcj-dbtool
36.13
KB
-rwxr-xr-x
gconf-merge-tree
60.98
KB
-rwxr-xr-x
gconftool-2
70.29
KB
-rwxr-xr-x
gcore
1.99
KB
-rwxr-xr-x
gcov
43.09
KB
-rwxr-xr-x
gctags
101.78
KB
-rwxr-xr-x
gdb
4.3
MB
-rwxr-xr-x
gdb-add-index
1.07
KB
-rwxr-xr-x
gdbtui
4.3
MB
-rwxr-xr-x
gdbus
37.91
KB
-rwxr-xr-x
gdk-pixbuf-query-loaders-64
16.42
KB
-rwxr-xr-x
gemtopbm
12.04
KB
-rwxr-xr-x
gemtopnm
12.04
KB
-rwxr-xr-x
gencat
25.18
KB
-rwxr-xr-x
gendiff
586
B
-rwxr-xr-x
genkey
43.96
KB
-rwxr-xr-x
geqn
140.8
KB
-rwxr-xr-x
getafm
5.98
KB
-rwxr-xr-x
getcert
134.02
KB
-rwxr-xr-x
getcifsacl
10.2
KB
-rwxr-xr-x
getconf
24.93
KB
-rwxr-xr-x
getent
29.79
KB
-rwxr-xr-x
getfacl
25.63
KB
-rwxr-xr-x
getfattr
21.46
KB
-rwxr-xr-x
getkeycodes
10.54
KB
-rwxr-xr-x
getopt
15.27
KB
-rwxr-xr-x
gettext
32.7
KB
-rwxr-xr-x
gettext.sh
4.54
KB
-rwxr-xr-x
gettextize
40.92
KB
-rwxr-xr-x
gfortran
277.73
KB
-rwxr-xr-x
gftodvi
45.33
KB
-rwxr-xr-x
gftopk
26.82
KB
-rwxr-xr-x
gftype
26.74
KB
-rwxr-xr-x
ghostscript
18.68
KB
-rwxr-xr-x
gif2tiff
17.47
KB
-rwxr-xr-x
giftopnm
23.99
KB
-rwxr-xr-x
gij
9.55
KB
-rwxr-xr-x
gindxbib
31.53
KB
-rwxr-xr-x
gio-querymodules-64
14.03
KB
-rwxr-xr-x
git
1.09
MB
-rwxr-xr-x
git-receive-pack
1.09
MB
-rwxr-xr-x
git-shell
450.64
KB
-rwxr-xr-x
git-upload-archive
1.09
MB
-rwxr-xr-x
git-upload-pack
460.71
KB
-rwxr-xr-x
gjar
10.21
KB
-rwxr-xr-x
gjarsigner
10.23
KB
-rwxr-xr-x
gkeytool
10.22
KB
-rwxr-xr-x
glib-compile-schemas
42.34
KB
-rwxr-xr-x
glookbib
39.98
KB
-rwxr-xr-x
gmake
169.15
KB
-rwxr-xr-x
gneqn
255
B
-rwxr-xr-x
gnroff
2.34
KB
-rwxr-xr-x
gorbd
10.21
KB
-rwxr-xr-x
gouldtoppm
10.08
KB
-rwxr-xr-x
gpasswd
73.87
KB
-rwsr-xr-x
gpg
750.44
KB
-rwxr-xr-x
gpg-agent
298.02
KB
-rwxr-xr-x
gpg-connect-agent
175.2
KB
-rwxr-xr-x
gpg-error
21.33
KB
-rwxr-xr-x
gpg-zip
3.23
KB
-rwxr-xr-x
gpg2
750.44
KB
-rwxr-xr-x
gpgconf
132.59
KB
-rwxr-xr-x
gpgkey2ssh
39.55
KB
-rwxr-xr-x
gpgparsemail
26.02
KB
-rwxr-xr-x
gpgsplit
51.38
KB
-rwxr-xr-x
gpgv
334.27
KB
-rwxr-xr-x
gpgv2
334.27
KB
-rwxr-xr-x
gpic
216.12
KB
-rwxr-xr-x
gprof
97.09
KB
-rwxr-xr-x
grefer
125.91
KB
-rwxr-xr-x
grep-changelog
7.12
KB
-rwxr-xr-x
grepdiff
44.24
KB
-rwxr-xr-x
grepjar
88.31
KB
-rwxr-xr-x
grmic
10.21
KB
-rwxr-xr-x
grmid
10.21
KB
-rwxr-xr-x
grmiregistry
10.23
KB
-rwxr-xr-x
grn
71.27
KB
-rwxr-xr-x
grodvi
86.23
KB
-rwxr-xr-x
groff
71.95
KB
-rwxr-xr-x
groffer
7.59
KB
-rwxr-xr-x
grog
2.41
KB
-rwxr-xr-x
grolbp
93.49
KB
-rwxr-xr-x
grolj4
83.24
KB
-rwxr-xr-x
grops
121.94
KB
-rwxr-xr-x
grotty
82.23
KB
-rwxr-xr-x
groups
27.34
KB
-rwxr-xr-x
gs
18.68
KB
-rwxr-xr-x
gsbj
337
B
-rwxr-xr-x
gsdj
339
B
-rwxr-xr-x
gsdj500
342
B
-rwxr-xr-x
gserialver
10.23
KB
-rwxr-xr-x
gsftopk
36.88
KB
-rwxr-xr-x
gslj
340
B
-rwxr-xr-x
gslp
337
B
-rwxr-xr-x
gsnd
264
B
-rwxr-xr-x
gsoelim
25.58
KB
-rwxr-xr-x
gst-feedback
15.76
KB
-rwxr-xr-x
gst-feedback-0.10
3.1
KB
-rwxr-xr-x
gst-inspect
15.76
KB
-rwxr-xr-x
gst-inspect-0.10
49.73
KB
-rwxr-xr-x
gst-launch
15.76
KB
-rwxr-xr-x
gst-launch-0.10
33.39
KB
-rwxr-xr-x
gst-typefind
15.76
KB
-rwxr-xr-x
gst-typefind-0.10
18.37
KB
-rwxr-xr-x
gst-xmlinspect
15.77
KB
-rwxr-xr-x
gst-xmlinspect-0.10
27.16
KB
-rwxr-xr-x
gst-xmllaunch
15.76
KB
-rwxr-xr-x
gst-xmllaunch-0.10
33.39
KB
-rwxr-xr-x
gstack
1.1
KB
-rwxr-xr-x
gtbl
103.23
KB
-rwxr-xr-x
gtk-query-immodules-2.0-64
22.66
KB
-rwxr-xr-x
gtk-update-icon-cache
36.45
KB
-rwxr-xr-x
gtnameserv
10.23
KB
-rwxr-xr-x
gtroff
355.09
KB
-rwxr-xr-x
gunzip
61
B
-rwxr-xr-x
gzexe
5.73
KB
-rwxr-xr-x
gzip
67.09
KB
-rwxr-xr-x
h2ph
27.38
KB
-rwxr-xr-x
h2xs
58.97
KB
-rwxr-xr-x
hal-device
21.75
KB
-rwxr-xr-x
hal-disable-polling
16.43
KB
-rwxr-xr-x
hal-find-by-capability
12.21
KB
-rwxr-xr-x
hal-find-by-property
12.34
KB
-rwxr-xr-x
hal-get-property
14.42
KB
-rwxr-xr-x
hal-is-caller-locked-out
12.16
KB
-rwxr-xr-x
hal-lock
17.05
KB
-rwxr-xr-x
hal-set-property
16.27
KB
-rwxr-xr-x
halt
8.67
KB
-rwxr-xr-x
hdifftopam
10.26
KB
-rwxr-xr-x
head
35.29
KB
-rwxr-xr-x
hexdump
24.87
KB
-rwxr-xr-x
hipstopgm
10.04
KB
-rwxr-xr-x
host
133.74
KB
-rwxr-xr-x
hostid
25
KB
-rwxr-xr-x
hpcdtoppm
764
B
-rwxr-xr-x
hpftodit
24.09
KB
-rwxr-xr-x
htdbm
15.04
KB
-rwxr-xr-x
htdigest
10.98
KB
-rwxr-xr-x
htpasswd
13.66
KB
-rwxr-xr-x
huge_page_setup_helper.py
12.05
KB
-rwxr-xr-x
hugeadm
68.96
KB
-rwxr-xr-x
hugectl
16.04
KB
-rwxr-xr-x
hugeedit
11.42
KB
-rwxr-xr-x
hunspell
58.84
KB
-rwxr-xr-x
hwloc-assembler
13.23
KB
-rwxr-xr-x
hwloc-assembler-remote
2.28
KB
-rwxr-xr-x
hwloc-bind
29.23
KB
-rwxr-xr-x
hwloc-calc
34.36
KB
-rwxr-xr-x
hwloc-distances
17.3
KB
-rwxr-xr-x
hwloc-distrib
21.11
KB
-rwxr-xr-x
hwloc-gather-topology
3.87
KB
-rwxr-xr-x
hwloc-info
94.2
KB
-rwxr-xr-x
hwloc-ls
94.2
KB
-rwxr-xr-x
hwloc-ps
16.11
KB
-rwxr-xr-x
i386
13.59
KB
-rwxr-xr-x
icontopbm
10.55
KB
-rwxr-xr-x
iconv
61.55
KB
-rwxr-xr-x
id
31.95
KB
-rwxr-xr-x
ident
11.88
KB
-rwxr-xr-x
idn
35.38
KB
-rwxr-xr-x
iecset
21.05
KB
-rwxr-xr-x
ifnames
3.95
KB
-rwxr-xr-x
igawk
3.02
KB
-rwxr-xr-x
ilbmtoppm
39.33
KB
-rwxr-xr-x
imgtoppm
10.82
KB
-rwxr-xr-x
indent
75.13
KB
-rwxr-xr-x
indxbib
31.53
KB
-rwxr-xr-x
info
181.73
KB
-rwxr-xr-x
infocmp
54.41
KB
-rwxr-xr-x
infokey
25.06
KB
-rwxr-xr-x
infotocap
52.52
KB
-rwxr-xr-x
infotopam
14.23
KB
-rwxr-xr-x
innochecksum
14.46
KB
-rwxr-xr-x
install
110.7
KB
-rwxr-xr-x
install-catalog
4.27
KB
-rwxr-xr-x
instmodsh
4.15
KB
-rwxr-xr-x
interdiff
48.13
KB
-rwxr-xr-x
intltool-extract
27.32
KB
-rwxr-xr-x
intltool-merge
39
KB
-rwxr-xr-x
intltool-prepare
8.4
KB
-rwxr-xr-x
intltool-update
33.74
KB
-rwxr-xr-x
intltoolize
6.98
KB
-rwxr-xr-x
ionice
18.35
KB
-rwxr-xr-x
iostat
69.9
KB
-rwxr-xr-x
ipa-getcert
126.02
KB
-rwxr-xr-x
ipcmk
17.87
KB
-rwxr-xr-x
ipcrm
12.27
KB
-rwxr-xr-x
ipcs
22.58
KB
-rwxr-xr-x
isosize
10.55
KB
-rwxr-xr-x
isql
32.02
KB
-rwxr-xr-x
iusql
27.16
KB
-rwxr-xr-x
java
9.7
KB
-rwxr-xr-x
jbigtopnm
58.69
KB
-rwxr-xr-x
join
41.89
KB
-rwxr-xr-x
jpeg2ktopam
15.01
KB
-rwxr-xr-x
jpegtopnm
31.75
KB
-rwxr-xr-x
jpegtran
30.98
KB
-rwxr-xr-x
jv-convert
10.16
KB
-rwxr-xr-x
jvmjar
1.72
KB
-rwxr-xr-x
k5srvutil
1.87
KB
-rwxr-xr-x
kadmin
74.09
KB
-rwxr-xr-x
kbdrate
11.38
KB
-rwxr-xr-x
kdestroy
10.02
KB
-rwxr-xr-x
keyrand
12.51
KB
-rwxr-xr-x
keytool
9.82
KB
-rwxr-xr-x
keyutil
66.44
KB
-rwxr-xr-x
kill
14.88
KB
-rwxr-xr-x
killall
23.89
KB
-rwxr-xr-x
kinit
26.02
KB
-rwxr-xr-x
klist
26.02
KB
-rwxr-xr-x
koi8rxterm
3.67
KB
-rwxr-xr-x
kpasswd
10.02
KB
-rwxr-xr-x
kpseaccess
8.76
KB
-rwxr-xr-x
kpsepath
3.38
KB
-rwxr-xr-x
kpsereadlink
8.87
KB
-rwxr-xr-x
kpsestat
9.57
KB
-rwxr-xr-x
kpsetool
3.38
KB
-rwxr-xr-x
kpsewhere
1.41
KB
-rwxr-xr-x
kpsewhich
24.09
KB
-rwxr-xr-x
kpsexpand
3.38
KB
-rwxr-xr-x
kswitch
10.02
KB
-rwxr-xr-x
ktutil
22.02
KB
-rwxr-xr-x
kvno
14.02
KB
-rwxr-xr-x
lacheck
63.24
KB
-rwxr-xr-x
lambda
467.72
KB
-rwxr-xr-x
lamed
458.53
KB
-rwxr-xr-x
last
19.88
KB
-rwxr-xr-x
lastb
19.88
KB
-rwxr-xr-x
lastcomm
22.88
KB
-rwxr-xr-x
lastlog
14.02
KB
-rwxr-xr-x
latex
650.74
KB
-rwxr-xr-x
latrace
95.79
KB
-rwxr-xr-x
latrace-ctl
95.79
KB
-rwxr-xr-x
lchfn
32.63
KB
-rwxr-xr-x
lchsh
30.1
KB
-rwxr-xr-x
ld
581.21
KB
-rwxr-xr-x
ldapadd
81.48
KB
-rwxr-xr-x
ldapcompare
69.19
KB
-rwxr-xr-x
ldapdelete
73.35
KB
-rwxr-xr-x
ldapexop
70.83
KB
-rwxr-xr-x
ldapmodify
81.48
KB
-rwxr-xr-x
ldapmodrdn
70.8
KB
-rwxr-xr-x
ldappasswd
70.89
KB
-rwxr-xr-x
ldapsearch
94.31
KB
-rwxr-xr-x
ldapurl
25.02
KB
-rwxr-xr-x
ldapwhoami
69.17
KB
-rwxr-xr-x
ldd
5.2
KB
-rwxr-xr-x
ldns-chaos
12.18
KB
-rwxr-xr-x
ldns-compare-zones
14.42
KB
-rwxr-xr-x
ldns-dane
45.55
KB
-rwxr-xr-x
ldns-dpa
45.02
KB
-rwxr-xr-x
ldns-gen-zone
17.96
KB
-rwxr-xr-x
ldns-key2ds
13.14
KB
-rwxr-xr-x
ldns-keyfetcher
25.82
KB
-rwxr-xr-x
ldns-keygen
16.36
KB
-rwxr-xr-x
ldns-mx
10.63
KB
-rwxr-xr-x
ldns-notify
17.13
KB
-rwxr-xr-x
ldns-nsec3-hash
11.91
KB
-rwxr-xr-x
ldns-read-zone
16.35
KB
-rwxr-xr-x
ldns-resolver
10.08
KB
-rwxr-xr-x
ldns-revoke
11.26
KB
-rwxr-xr-x
ldns-rrsig
14.67
KB
-rwxr-xr-x
ldns-signzone
29.58
KB
-rwxr-xr-x
ldns-test-edns
13.66
KB
-rwxr-xr-x
ldns-testns
35.64
KB
-rwxr-xr-x
ldns-update
17.1
KB
-rwxr-xr-x
ldns-verify-zone
26.68
KB
-rwxr-xr-x
ldns-version
8.54
KB
-rwxr-xr-x
ldns-walk
22.44
KB
-rwxr-xr-x
ldns-zcat
12.53
KB
-rwxr-xr-x
ldns-zsplit
15.55
KB
-rwxr-xr-x
ldnsd
15.63
KB
-rwxr-xr-x
leaftoppm
11.69
KB
-rwxr-xr-x
less
150.8
KB
-rwxr-xr-x
lessecho
10.41
KB
-rwxr-xr-x
lesskey
18.4
KB
-rwxr-xr-x
lesspipe.sh
2.74
KB
-rwxr-xr-x
lex
329.84
KB
-rwxr-xr-x
libnetcfg
15.36
KB
-rwxr-xr-x
libtar
14.68
KB
-rwxr-xr-x
libtool
276.69
KB
-rwxr-xr-x
libtoolize
66.56
KB
-rwxr-xr-x
linc-cleanup-sockets
13.09
KB
-rwxr-xr-x
links
1.2
MB
-rwxr-xr-x
linux32
13.59
KB
-rwxr-xr-x
linux64
13.59
KB
-rwxr-xr-x
lispmtopgm
10.19
KB
-rwxr-xr-x
lkbib
40.11
KB
-rwxr-xr-x
loadunimap
25.52
KB
-rwxr-xr-x
local-getcert
130.02
KB
-rwxr-xr-x
locale
40.4
KB
-rwxr-xr-x
localedef
321.91
KB
-rwxr-xr-x
locate
37.56
KB
-rwx--s--x
logfactor5
593
B
-rwxr-xr-x
logger
14.7
KB
-rwxr-xr-x
logname
25.09
KB
-rwxr-xr-x
logresolve
10.94
KB
-rwxr-xr-x
look
11.46
KB
-rwxr-xr-x
lookbib
39.98
KB
-rwxr-xr-x
lp
18.38
KB
-rwxr-xr-x
lp.cups
18.38
KB
-rwxr-xr-x
lp5250d
17.86
KB
-rwxr-xr-x
lpoptions
14.36
KB
-rwxr-xr-x
lppasswd
14.38
KB
-rwxr-xr-x
lpq
14.38
KB
-rwxr-xr-x
lpq.cups
14.38
KB
-rwxr-xr-x
lpr
14.35
KB
-rwxr-xr-x
lpr.cups
14.35
KB
-rwxr-xr-x
lprm
10.21
KB
-rwxr-xr-x
lprm.cups
10.21
KB
-rwxr-xr-x
lprsetup.sh
4.55
KB
-rwxr-xr-x
lpstat
26.71
KB
-rwxr-xr-x
lpstat.cups
26.71
KB
-rwxr-xr-x
lsattr
12.77
KB
-rwxr-xr-x
lsb_release
15.56
KB
-rwxr-xr-x
lscpu
53.92
KB
-rwxr-xr-x
lsdiff
44.24
KB
-rwxr-xr-x
lshal
27.89
KB
-rwxr-xr-x
lslogins
50.78
KB
-rwxr-xr-x
lstopo
105.62
KB
-rwxr-xr-x
lstopo-no-graphics
94.2
KB
-rwxr-xr-x
lsusb
105.49
KB
-rwxr-xr-x
lsusb.py
13.09
KB
-rwxr-xr-x
ltrace
111.55
KB
-rwxr-xr-x
lua
17.45
KB
-rwxr-xr-x
luac
113.37
KB
-rwxr-xr-x
lwp-download
7.89
KB
-rwxr-xr-x
lwp-dump
2.55
KB
-rwxr-xr-x
lwp-mirror
2.33
KB
-rwxr-xr-x
lwp-request
14.18
KB
-rwxr-xr-x
lwp-rget
14.71
KB
-rwxr-xr-x
lzcat
50.63
KB
-rwxr-xr-x
lzcmp
5.1
KB
-rwxr-xr-x
lzdiff
5.1
KB
-rwxr-xr-x
lzegrep
5.36
KB
-rwxr-xr-x
lzfgrep
5.36
KB
-rwxr-xr-x
lzgrep
5.36
KB
-rwxr-xr-x
lzless
1.76
KB
-rwxr-xr-x
lzma
50.63
KB
-rwxr-xr-x
lzmadec
15.11
KB
-rwxr-xr-x
lzmainfo
12.56
KB
-rwxr-xr-x
lzmore
2.12
KB
-rwxr-xr-x
m4
207.46
KB
-rwxr-xr-x
macptopbm
9.7
KB
-rwxr-xr-x
mag
10.13
KB
-rwxr-xr-x
mailq
208.61
KB
-rwxr-xr-x
mailq.postfix
208.61
KB
-rwxr-xr-x
make
169.15
KB
-rwxr-xr-x
makeindex
83.06
KB
-rwxr-xr-x
makempx
21.23
KB
-rwxr-xr-x
mako-render
893
B
-rwxr-xr-x
man
54.8
KB
-rwxr-xr-x
man2html
60.84
KB
-rwxr-xr-x
manpath
54.8
KB
-rwxr-xr-x
manweb
12.19
KB
-rwxr-xr-x
mapscrn
20.55
KB
-rwxr-xr-x
markdown
1.24
KB
-rwxr-xr-x
mbchk
607.3
KB
-rwxr-xr-x
mc
963.14
KB
-rwxr-xr-x
mcedit
963.14
KB
-rwxr-xr-x
mcmfmt
8.4
KB
-rwxr-xr-x
mcookie
13.93
KB
-rwxr-xr-x
mcview
963.14
KB
-rwxr-xr-x
md5sum
35.27
KB
-rwxr-xr-x
mdatopbm
11.94
KB
-rwxr-xr-x
memhog
13.24
KB
-rwxr-xr-x
merge
63.04
KB
-rwxr-xr-x
mesg
9.57
KB
-rwxr-xr-x
metaflac
111.89
KB
-rwxr-xr-x
mf
270.67
KB
-rwxr-xr-x
mf-nowin
254.84
KB
-rwxr-xr-x
mft
53.45
KB
-rwxr-xr-x
mgrtopbm
10.01
KB
-rwxr-xr-x
migratepages
12.41
KB
-rwxr-xr-x
migspeed
15.16
KB
-rwxr-xr-x
mkfifo
29.09
KB
-rwxr-xr-x
mkfontdir
131
B
-rwxr-xr-x
mkfontscale
34.02
KB
-rwxr-xr-x
mkindex
947
B
-rwxr-xr-x
mkocp
171
B
-rwxr-xr-x
mkofm
83
B
-rwxr-xr-x
mktexfmt
28.47
KB
-rwxr-xr-x
mktexlsr
5.66
KB
-rwxr-xr-x
mktexmf
3.76
KB
-rwxr-xr-x
mktexpk
8.91
KB
-rwxr-xr-x
mktextfm
4.72
KB
-rwxr-xr-x
mllatex
650.74
KB
-rwxr-xr-x
mltex
650.74
KB
-rwxr-xr-x
modutil
157.41
KB
-rwxr-xr-x
mp2bug
1.24
KB
-rwxr-xr-x
mpost
365.57
KB
-rwxr-xr-x
mpstat
59.74
KB
-rwxr-xr-x
mpto
13.21
KB
-rwxr-xr-x
mrftopbm
10.52
KB
-rwxr-xr-x
ms_print
23.64
KB
-rwxr-xr-x
msgattrib
23.53
KB
-rwxr-xr-x
msgcat
23.8
KB
-rwxr-xr-x
msgcmp
17.73
KB
-rwxr-xr-x
msgcomm
22.2
KB
-rwxr-xr-x
msgconv
19.56
KB
-rwxr-xr-x
msgen
19.47
KB
-rwxr-xr-x
msgexec
16.27
KB
-rwxr-xr-x
msgfilter
25.75
KB
-rwxr-xr-x
msgfmt
67.73
KB
-rwxr-xr-x
msggrep
103.15
KB
-rwxr-xr-x
msghack
12.51
KB
-rwxr-xr-x
msginit
44.45
KB
-rwxr-xr-x
msgmerge
44.63
KB
-rwxr-xr-x
msgunfmt
31.2
KB
-rwxr-xr-x
msguniq
21.26
KB
-rwxr-xr-x
msql2mysql
1.38
KB
-rwxr-xr-x
mtvtoppm
9.73
KB
-rwxr-xr-x
musixflx
20.3
KB
-rwxr-xr-x
my_print_defaults
1.34
MB
-rwxr-xr-x
myisam_ftdump
1.59
MB
-rwxr-xr-x
myisamchk
1.7
MB
-rwxr-xr-x
myisamlog
1.59
MB
-rwxr-xr-x
myisampack
1.62
MB
-rwxr-xr-x
mysql
348.62
KB
-rwxr-xr-x
mysql_client_test
408.45
KB
-rwxr-xr-x
mysql_config
7.77
KB
-rwxr-xr-x
mysql_convert_table_format
4.15
KB
-rwxr-xr-x
mysql_find_rows
3.24
KB
-rwxr-xr-x
mysql_fix_extensions
1.23
KB
-rwxr-xr-x
mysql_fix_privilege_tables
5.7
KB
-rwxr-xr-x
mysql_install_db
14.3
KB
-rwxr-xr-x
mysql_secure_installation
8.01
KB
-rwxr-xr-x
mysql_setpermission
17.06
KB
-rwxr-xr-x
mysql_tzinfo_to_sql
1.31
MB
-rwxr-xr-x
mysql_upgrade
77.36
KB
-rwxr-xr-x
mysql_waitpid
174.54
KB
-rwxr-xr-x
mysql_zap
3.8
KB
-rwxr-xr-x
mysqlaccess
108.95
KB
-rwxr-xr-x
mysqladmin
42.6
KB
-rwxr-xr-x
mysqlbinlog
160.74
KB
-rwxr-xr-x
mysqlbug
7.77
KB
-rwxr-xr-x
mysqlcheck
39.13
KB
-rwxr-xr-x
mysqld_multi
23.92
KB
-rwxr-xr-x
mysqldump
95.73
KB
-rwxr-xr-x
mysqldumpslow
7.23
KB
-rwxr-xr-x
mysqlhotcopy
31.72
KB
-rwxr-xr-x
mysqlimport
34.39
KB
-rwxr-xr-x
mysqlshow
33.69
KB
-rwxr-xr-x
mysqlslap
52.3
KB
-rwxr-xr-x
mysqltest
194.11
KB
-rwxr-xr-x
nail
381.95
KB
-rwxr-xr-x
namei
15.99
KB
-rwxr-xr-x
nano
174.7
KB
-rwxr-xr-x
nc
25.76
KB
-rwxr-xr-x
needs-restarting
5.61
KB
-rwxr-xr-x
neotoppm
9.7
KB
-rwxr-xr-x
neqn
255
B
-rwxr-xr-x
net
8.33
MB
-rwxr-xr-x
netaddr
920
B
-rwxr-xr-x
newaliases
208.61
KB
-rwxr-xr-x
newaliases.postfix
208.61
KB
-rwxr-xr-x
newer
9.74
KB
-rwxr-xr-x
newgrp
39.3
KB
-rwsr-xr-x
nfs4_editfacl
28.38
KB
-rwxr-xr-x
nfs4_getfacl
16.55
KB
-rwxr-xr-x
nfs4_setfacl
28.38
KB
-rwxr-xr-x
ngettext
32.16
KB
-rwxr-xr-x
nl
98.3
KB
-rwxr-xr-x
nm
43.29
KB
-rwxr-xr-x
nmblookup
1.65
MB
-rwxr-xr-x
nohup
29.07
KB
-rwxr-xr-x
nosetests
299
B
-rwxr-xr-x
nproc
27.22
KB
-rwxr-xr-x
nroff
2.34
KB
-rwxr-xr-x
nsenter
22.3
KB
-rwxr-xr-x
nslookup
133.68
KB
-rwxr-xr-x
nss-policy-check
10.2
KB
-rwxr-xr-x
nsupdate
75.52
KB
-rwxr-xr-x
ntpstat
10.02
KB
-rwxr-xr-x
numactl
30.48
KB
-rwxr-xr-x
numademo
45.19
KB
-rwxr-xr-x
numastat
28
KB
-rwxr-xr-x
objcopy
213.91
KB
-rwxr-xr-x
objdump
281.38
KB
-rwxr-xr-x
ocount
157.13
KB
-rwxr-xr-x
ocs
7.1
KB
-rwxr-xr-x
od
60.72
KB
-rwxr-xr-x
odbc_config
9.98
KB
-rwxr-xr-x
odbcinst
27.28
KB
-rwxr-xr-x
oddjob_request
35.52
KB
-rwxr-xr-x
odvips
203.13
KB
-rwxr-xr-x
ofm2opl
117.45
KB
-rwxr-xr-x
oldfind
230.81
KB
-rwxr-xr-x
omega
467.72
KB
-rwxr-xr-x
omfonts
117.45
KB
-rwxr-xr-x
omshell
442.43
KB
-rwxr-xr-x
on_ac_power
1.57
KB
-rwxr-xr-x
op-check-perfevents
8.98
KB
-rwxr-xr-x
opannotate
1.22
MB
-rwxr-xr-x
oparchive
1.11
MB
-rwxr-xr-x
opcontrol
55.85
KB
-rwxr-xr-x
open
16.2
KB
-rwxr-xr-x
openssl
535.34
KB
-rwxr-xr-x
openvt
16.2
KB
-rwxr-xr-x
operf
265.8
KB
-rwxr-xr-x
opgprof
1.14
MB
-rwxr-xr-x
ophelp
65.3
KB
-rwxr-xr-x
opimport
71.67
KB
-rwxr-xr-x
opjitconv
776.27
KB
-rwxr-xr-x
opl2ofm
117.45
KB
-rwxr-xr-x
opreport
1.32
MB
-rwxr-xr-x
oprof_start
249.99
KB
-rwxr-xr-x
oprofiled
102.55
KB
-rwxr-xr-x
orbd
10
KB
-rwxr-xr-x
oscap
102.66
KB
-rwxr-xr-x
otangle
43.39
KB
-rwxr-xr-x
otfdump
31.47
KB
-rwxr-xr-x
otflist
11.98
KB
-rwxr-xr-x
otftobdf
11.78
KB
-rwxr-xr-x
otfview
70.52
KB
-rwxr-xr-x
otp2ocp
37.27
KB
-rwxr-xr-x
outocp
12.59
KB
-rwxr-xr-x
ovf2ovp
117.45
KB
-rwxr-xr-x
ovp2ovf
117.45
KB
-rwxr-xr-x
p11-kit
120.36
KB
-rwxr-xr-x
pack200
9.85
KB
-rwxr-xr-x
package-cleanup
18.16
KB
-rwxr-xr-x
pagesize
34.27
KB
-rwxr-xr-x
pal2rgb
15.1
KB
-rwxr-xr-x
palmtopnm
22.54
KB
-rwxr-xr-x
pamaddnoise
15
KB
-rwxr-xr-x
pamarith
16.05
KB
-rwxr-xr-x
pambackground
12.89
KB
-rwxr-xr-x
pambayer
10.98
KB
-rwxr-xr-x
pamchannel
10.95
KB
-rwxr-xr-x
pamcomp
17.52
KB
-rwxr-xr-x
pamcut
16.66
KB
-rwxr-xr-x
pamdeinterlace
10.09
KB
-rwxr-xr-x
pamdepth
10.6
KB
-rwxr-xr-x
pamdice
13.05
KB
-rwxr-xr-x
pamditherbw
21.15
KB
-rwxr-xr-x
pamedge
10.46
KB
-rwxr-xr-x
pamendian
8.87
KB
-rwxr-xr-x
pamenlarge
11.59
KB
-rwxr-xr-x
pamfile
11.27
KB
-rwxr-xr-x
pamfixtrunc
10.57
KB
-rwxr-xr-x
pamflip
18.86
KB
-rwxr-xr-x
pamfunc
13.11
KB
-rwxr-xr-x
pamgauss
11.16
KB
-rwxr-xr-x
pamgradient
11.14
KB
-rwxr-xr-x
pamlookup
12.38
KB
-rwxr-xr-x
pammasksharpen
11.25
KB
-rwxr-xr-x
pammixinterlace
11.98
KB
-rwxr-xr-x
pamoil
10.32
KB
-rwxr-xr-x
pamperspective
24.88
KB
-rwxr-xr-x
pampick
10.97
KB
-rwxr-xr-x
pampop9
9.86
KB
-rwxr-xr-x
pamrgbatopng
10.95
KB
-rwxr-xr-x
pamscale
27.3
KB
-rwxr-xr-x
pamseq
11.04
KB
-rwxr-xr-x
pamsharpmap
10.38
KB
-rwxr-xr-x
pamsharpness
9.7
KB
-rwxr-xr-x
pamsistoaglyph
12.36
KB
-rwxr-xr-x
pamslice
10.39
KB
-rwxr-xr-x
pamsplit
10.94
KB
-rwxr-xr-x
pamstack
11.32
KB
-rwxr-xr-x
pamstereogram
18.3
KB
-rwxr-xr-x
pamstretch
12.76
KB
-rwxr-xr-x
pamstretch-gen
2.13
KB
-rwxr-xr-x
pamsumm
10.62
KB
-rwxr-xr-x
pamsummcol
11.23
KB
-rwxr-xr-x
pamthreshold
15.34
KB
-rwxr-xr-x
pamtilt
16.16
KB
-rwxr-xr-x
pamtodjvurle
11.66
KB
-rwxr-xr-x
pamtofits
11.49
KB
-rwxr-xr-x
pamtogif
20.45
KB
-rwxr-xr-x
pamtohdiff
9.73
KB
-rwxr-xr-x
pamtohtmltbl
11.88
KB
-rwxr-xr-x
pamtojpeg2k
17.98
KB
-rwxr-xr-x
pamtompfont
10.1
KB
-rwxr-xr-x
pamtooctaveimg
11.53
KB
-rwxr-xr-x
pamtopam
9.2
KB
-rwxr-xr-x
pamtopfm
10.88
KB
-rwxr-xr-x
pamtopnm
10.14
KB
-rwxr-xr-x
pamtosvg
77.25
KB
-rwxr-xr-x
pamtotga
16.26
KB
-rwxr-xr-x
pamtotiff
32.83
KB
-rwxr-xr-x
pamtouil
13.08
KB
-rwxr-xr-x
pamtoxvmini
10.9
KB
-rwxr-xr-x
pamundice
14.63
KB
-rwxr-xr-x
pamx
37.57
KB
-rwxr-xr-x
pango-querymodules-64
18.2
KB
-rwxr-xr-x
pango-view
60.86
KB
-rwxr-xr-x
passwd
30.05
KB
-rwsr-xr-x
paste
28.45
KB
-rwxr-xr-x
patch
117.9
KB
-rwxr-xr-x
patgen
33.33
KB
-rwxr-xr-x
pathchk
27.23
KB
-rwxr-xr-x
pax
110.9
KB
-rwxr-xr-x
pbmclean
10.73
KB
-rwxr-xr-x
pbmlife
9.25
KB
-rwxr-xr-x
pbmmake
10.03
KB
-rwxr-xr-x
pbmmask
11.26
KB
-rwxr-xr-x
pbmminkowski
9.69
KB
-rwxr-xr-x
pbmpage
11.35
KB
-rwxr-xr-x
pbmpscale
11.49
KB
-rwxr-xr-x
pbmreduce
11.67
KB
-rwxr-xr-x
pbmtext
15.73
KB
-rwxr-xr-x
pbmtextps
14.95
KB
-rwxr-xr-x
pbmto10x
10.77
KB
-rwxr-xr-x
pbmto4425
9.75
KB
-rwxr-xr-x
pbmtoascii
10.34
KB
-rwxr-xr-x
pbmtoatk
10.58
KB
-rwxr-xr-x
pbmtobbnbg
9.71
KB
-rwxr-xr-x
pbmtocmuwm
9.38
KB
-rwxr-xr-x
pbmtodjvurle
10.05
KB
-rwxr-xr-x
pbmtoepsi
10.23
KB
-rwxr-xr-x
pbmtoepson
11.17
KB
-rwxr-xr-x
pbmtoescp2
10.68
KB
-rwxr-xr-x
pbmtog3
14.6
KB
-rwxr-xr-x
pbmtogem
10.66
KB
-rwxr-xr-x
pbmtogo
11.13
KB
-rwxr-xr-x
pbmtoibm23xx
11.29
KB
-rwxr-xr-x
pbmtoicon
10.13
KB
-rwxr-xr-x
pbmtolj
13.32
KB
-rwxr-xr-x
pbmtoln03
11.26
KB
-rwxr-xr-x
pbmtolps
10.62
KB
-rwxr-xr-x
pbmtomacp
10.97
KB
-rwxr-xr-x
pbmtomatrixorbital
9
KB
-rwxr-xr-x
pbmtomda
11.16
KB
-rwxr-xr-x
pbmtomgr
9.08
KB
-rwxr-xr-x
pbmtomrf
10.66
KB
-rwxr-xr-x
pbmtonokia
13.44
KB
-rwxr-xr-x
pbmtopgm
10.01
KB
-rwxr-xr-x
pbmtopi3
9.73
KB
-rwxr-xr-x
pbmtopk
21.49
KB
-rwxr-xr-x
pbmtoplot
8.88
KB
-rwxr-xr-x
pbmtoppa
28.51
KB
-rwxr-xr-x
pbmtopsg3
13.45
KB
-rwxr-xr-x
pbmtoptx
9.06
KB
-rwxr-xr-x
pbmtowbmp
9.16
KB
-rwxr-xr-x
pbmtox10bm
1.35
KB
-rwxr-xr-x
pbmtoxbm
13.47
KB
-rwxr-xr-x
pbmtoybm
9.31
KB
-rwxr-xr-x
pbmtozinc
10.57
KB
-rwxr-xr-x
pbmupc
17.69
KB
-rwxr-xr-x
pc1toppm
9.97
KB
-rwxr-xr-x
pcdovtoppm
5.43
KB
-rwxr-xr-x
pcregrep
31.66
KB
-rwxr-xr-x
pcretest
48.23
KB
-rwxr-xr-x
pcxtoppm
15.05
KB
-rwxr-xr-x
pdbedit
2.04
MB
-rwxr-xr-x
pdf2dsc
696
B
-rwxr-xr-x
pdf2ps
901
B
-rwxr-xr-x
pdfcrop
8.29
KB
-rwxr-xr-x
pdfcslatex
650.74
KB
-rwxr-xr-x
pdfcsplain
650.74
KB
-rwxr-xr-x
pdfetex
650.74
KB
-rwxr-xr-x
pdffonts
22.33
KB
-rwxr-xr-x
pdfimages
48.73
KB
-rwxr-xr-x
pdfinfo
28.02
KB
-rwxr-xr-x
pdflatex
650.74
KB
-rwxr-xr-x
pdfopt
547
B
-rwxr-xr-x
pdftex
650.74
KB
-rwxr-xr-x
pdftohtml
91.53
KB
-rwxr-xr-x
pdftoppm
23.75
KB
-rwxr-xr-x
pdftops
23.7
KB
-rwxr-xr-x
pdftosrc
14.99
KB
-rwxr-xr-x
pdftotext
25.67
KB
-rwxr-xr-x
peekfd
12.7
KB
-rwxr-xr-x
perf
2.1
MB
-rwxr-xr-x
perl
12.97
KB
-rwxr-xr-x
perl5.10.1
12.97
KB
-rwxr-xr-x
perlbug
43.68
KB
-rwxr-xr-x
perldoc
224
B
-rwxr-xr-x
perlivp
12.01
KB
-rwxr-xr-x
perltex
14.46
KB
-rwxr-xr-x
perlthanks
43.68
KB
-rwxr-xr-x
perror
1.32
MB
-rwxr-xr-x
pf2afm
495
B
-rwxr-xr-x
pfb2pfa
12.09
KB
-rwxr-xr-x
pfbtopfa
511
B
-rwxr-xr-x
pfbtops
10.05
KB
-rwxr-xr-x
pfmtopam
12.52
KB
-rwxr-xr-x
pg_dump
273.87
KB
-rwxr-xr-x
pg_dumpall
79.73
KB
-rwxr-xr-x
pg_restore
125.13
KB
-rwxr-xr-x
pgawk
374.73
KB
-rwxr-xr-x
pgmabel
14.17
KB
-rwxr-xr-x
pgmbentley
8.88
KB
-rwxr-xr-x
pgmcrater
14.16
KB
-rwxr-xr-x
pgmdeshadow
10.02
KB
-rwxr-xr-x
pgmedge
10.46
KB
-rwxr-xr-x
pgmenhance
10.03
KB
-rwxr-xr-x
pgmhist
10.02
KB
-rwxr-xr-x
pgmkernel
9.95
KB
-rwxr-xr-x
pgmmake
10.03
KB
-rwxr-xr-x
pgmmedian
13.79
KB
-rwxr-xr-x
pgmminkowski
10.55
KB
-rwxr-xr-x
pgmmorphconv
11.44
KB
-rwxr-xr-x
pgmnoise
9.73
KB
-rwxr-xr-x
pgmnorm
14.18
KB
-rwxr-xr-x
pgmoil
10.32
KB
-rwxr-xr-x
pgmramp
10.58
KB
-rwxr-xr-x
pgmslice
10.39
KB
-rwxr-xr-x
pgmtexture
24.82
KB
-rwxr-xr-x
pgmtofs
10.15
KB
-rwxr-xr-x
pgmtolispm
10.11
KB
-rwxr-xr-x
pgmtopbm
37
B
-rwxr-xr-x
pgmtopgm
8.91
KB
-rwxr-xr-x
pgmtoppm
11.15
KB
-rwxr-xr-x
pgrep
20.08
KB
-rwxr-xr-x
phar
14.48
KB
-rwxr-xr-x
phar.phar
14.48
KB
-rwxr-xr-x
php
3.88
MB
-rwxr-xr-x
php-cgi
3.86
MB
-rwxr-xr-x
phpize
4.64
KB
-rwxr-xr-x
physe
650.74
KB
-rwxr-xr-x
phyzzx
650.74
KB
-rwxr-xr-x
pi1toppm
9.7
KB
-rwxr-xr-x
pi3topbm
9.73
KB
-rwxr-xr-x
pic
216.12
KB
-rwxr-xr-x
pic2graph
2.5
KB
-rwxr-xr-x
piconv
7.17
KB
-rwxr-xr-x
pidstat
70.03
KB
-rwxr-xr-x
pinentry
2.54
KB
-rwxr-xr-x
pinentry-curses
52.58
KB
-rwxr-xr-x
pinfo
101.66
KB
-rwxr-xr-x
pinky
32.73
KB
-rwxr-xr-x
pjtoppm
12.7
KB
-rwxr-xr-x
pk12util
92.2
KB
-rwxr-xr-x
pk2bm
15.48
KB
-rwxr-xr-x
pkaction
14.02
KB
-rwxr-xr-x
pkcheck
14.02
KB
-rwxr-xr-x
pkexec
22.02
KB
-rwsr-xr-x
pkg-config
108.06
KB
-rwxr-xr-x
pkill
20.08
KB
-rwxr-xr-x
pktogf
25.36
KB
-rwxr-xr-x
pktopbm
16.7
KB
-rwxr-xr-x
pktype
18.84
KB
-rwxr-xr-x
pl2pm
4.42
KB
-rwxr-xr-x
pltotf
61.48
KB
-rwxr-xr-x
plymouth
35.95
KB
-rwxr-xr-x
pm-is-supported
983
B
-rwxr-xr-x
pm-utils-bugreport-info.sh
816
B
-rwxr-xr-x
pmap
15.91
KB
-rwxr-xr-x
png2theora
29.38
KB
-rwxr-xr-x
pngtopam
23.31
KB
-rwxr-xr-x
pngtopnm
22.4
KB
-rwxr-xr-x
pnmalias
13.29
KB
-rwxr-xr-x
pnmarith
16.05
KB
-rwxr-xr-x
pnmcat
16.55
KB
-rwxr-xr-x
pnmcolormap
16.7
KB
-rwxr-xr-x
pnmcomp
17.52
KB
-rwxr-xr-x
pnmconvol
34.2
KB
-rwxr-xr-x
pnmcrop
18.7
KB
-rwxr-xr-x
pnmcut
16.66
KB
-rwxr-xr-x
pnmdepth
10.6
KB
-rwxr-xr-x
pnmenlarge
11.59
KB
-rwxr-xr-x
pnmfile
11.27
KB
-rwxr-xr-x
pnmflip
2.43
KB
-rwxr-xr-x
pnmgamma
17.46
KB
-rwxr-xr-x
pnmhisteq
12.72
KB
-rwxr-xr-x
pnmhistmap
14.3
KB
-rwxr-xr-x
pnmindex
14.94
KB
-rwxr-xr-x
pnminterp
12.76
KB
-rwxr-xr-x
pnminvert
10.1
KB
-rwxr-xr-x
pnmmargin
2.32
KB
-rwxr-xr-x
pnmmontage
15.05
KB
-rwxr-xr-x
pnmnlfilt
22.36
KB
-rwxr-xr-x
pnmnoraw
31
B
-rwxr-xr-x
pnmnorm
14.18
KB
-rwxr-xr-x
pnmpad
17.08
KB
-rwxr-xr-x
pnmpaste
13.45
KB
-rwxr-xr-x
pnmpsnr
11.73
KB
-rwxr-xr-x
pnmquant
7.67
KB
-rwxr-xr-x
pnmremap
19.03
KB
-rwxr-xr-x
pnmrotate
16.13
KB
-rwxr-xr-x
pnmscale
27.3
KB
-rwxr-xr-x
pnmscalefixed
16.26
KB
-rwxr-xr-x
pnmshear
11.89
KB
-rwxr-xr-x
pnmsmooth
11.3
KB
-rwxr-xr-x
pnmsplit
10.94
KB
-rwxr-xr-x
pnmstitch
27.35
KB
-rwxr-xr-x
pnmtile
9.73
KB
-rwxr-xr-x
pnmtoddif
16.73
KB
-rwxr-xr-x
pnmtofiasco
157.32
KB
-rwxr-xr-x
pnmtofits
11.49
KB
-rwxr-xr-x
pnmtojbig
60.86
KB
-rwxr-xr-x
pnmtojpeg
21.91
KB
-rwxr-xr-x
pnmtopalm
23.91
KB
-rwxr-xr-x
pnmtopclxl
17.68
KB
-rwxr-xr-x
pnmtoplainpnm
31
B
-rwxr-xr-x
pnmtopng
40.81
KB
-rwxr-xr-x
pnmtopnm
10.14
KB
-rwxr-xr-x
pnmtops
27.6
KB
-rwxr-xr-x
pnmtorast
16.2
KB
-rwxr-xr-x
pnmtorle
34.88
KB
-rwxr-xr-x
pnmtosgi
13.11
KB
-rwxr-xr-x
pnmtosir
9.96
KB
-rwxr-xr-x
pnmtotiff
32.83
KB
-rwxr-xr-x
pnmtotiffcmyk
29.99
KB
-rwxr-xr-x
pnmtoxwd
12.95
KB
-rwxr-xr-x
pod2html
2.28
KB
-rwxr-xr-x
pod2latex
10.01
KB
-rwxr-xr-x
pod2man
20.68
KB
-rwxr-xr-x
pod2text
8.87
KB
-rwxr-xr-x
pod2usage
3.26
KB
-rwxr-xr-x
podchecker
3.61
KB
-rwxr-xr-x
podselect
2.47
KB
-rwxr-xr-x
pooltype
15.72
KB
-rwxr-xr-x
post-grohtml
136.2
KB
-rwxr-xr-x
poweroff
8.67
KB
-rwxr-xr-x
ppdc
14.51
KB
-rwxr-xr-x
ppdhtml
10.36
KB
-rwxr-xr-x
ppdi
10.3
KB
-rwxr-xr-x
ppdmerge
14.41
KB
-rwxr-xr-x
ppdpo
10.36
KB
-rwxr-xr-x
ppl-config
104.6
KB
-rwxr-xr-x
ppm2tiff
14.86
KB
-rwxr-xr-x
ppm3d
14.56
KB
-rwxr-xr-x
ppmbrighten
12.41
KB
-rwxr-xr-x
ppmchange
10.33
KB
-rwxr-xr-x
ppmcie
25.87
KB
-rwxr-xr-x
ppmcolormask
11.52
KB
-rwxr-xr-x
ppmcolors
8.84
KB
-rwxr-xr-x
ppmdcfont
10.39
KB
-rwxr-xr-x
ppmddumpfont
8.63
KB
-rwxr-xr-x
ppmdim
9.73
KB
-rwxr-xr-x
ppmdist
10.2
KB
-rwxr-xr-x
ppmdither
11.88
KB
-rwxr-xr-x
ppmdmkfont
13.53
KB
-rwxr-xr-x
ppmdraw
18.56
KB
-rwxr-xr-x
ppmfade
10.97
KB
-rwxr-xr-x
ppmflash
9.73
KB
-rwxr-xr-x
ppmforge
22.62
KB
-rwxr-xr-x
ppmglobe
10.16
KB
-rwxr-xr-x
ppmhist
12.13
KB
-rwxr-xr-x
ppmlabel
12.95
KB
-rwxr-xr-x
ppmmake
9.72
KB
-rwxr-xr-x
ppmmix
10.05
KB
-rwxr-xr-x
ppmnorm
14.18
KB
-rwxr-xr-x
ppmntsc
12.65
KB
-rwxr-xr-x
ppmpat
23.12
KB
-rwxr-xr-x
ppmquant
926
B
-rwxr-xr-x
ppmquantall
2.33
KB
-rwxr-xr-x
ppmrainbow
1.79
KB
-rwxr-xr-x
ppmrelief
9.72
KB
-rwxr-xr-x
ppmrough
13.77
KB
-rwxr-xr-x
ppmshadow
8.64
KB
-rwxr-xr-x
ppmshift
10.17
KB
-rwxr-xr-x
ppmspread
10.09
KB
-rwxr-xr-x
ppmtoacad
14.69
KB
-rwxr-xr-x
ppmtoarbtxt
14.73
KB
-rwxr-xr-x
ppmtobmp
18.45
KB
-rwxr-xr-x
ppmtoeyuv
14.1
KB
-rwxr-xr-x
ppmtogif
13.23
KB
-rwxr-xr-x
ppmtoicr
12.45
KB
-rwxr-xr-x
ppmtoilbm
40.15
KB
-rwxr-xr-x
ppmtojpeg
21.91
KB
-rwxr-xr-x
ppmtoleaf
13.05
KB
-rwxr-xr-x
ppmtolj
11.71
KB
-rwxr-xr-x
ppmtomap
82
B
-rwxr-xr-x
ppmtomitsu
19.99
KB
-rwxr-xr-x
ppmtompeg
508.71
KB
-rwxr-xr-x
ppmtoneo
13.06
KB
-rwxr-xr-x
ppmtopcx
17.05
KB
-rwxr-xr-x
ppmtopgm
12.62
KB
-rwxr-xr-x
ppmtopi1
10.05
KB
-rwxr-xr-x
ppmtopict
11.93
KB
-rwxr-xr-x
ppmtopj
12.01
KB
-rwxr-xr-x
ppmtopjxl
15.91
KB
-rwxr-xr-x
ppmtoppm
8.97
KB
-rwxr-xr-x
ppmtopuzz
10.09
KB
-rwxr-xr-x
ppmtorgb3
10.11
KB
-rwxr-xr-x
ppmtosixel
10.87
KB
-rwxr-xr-x
ppmtoterm
9.7
KB
-rwxr-xr-x
ppmtouil
13.08
KB
-rwxr-xr-x
ppmtowinicon
17.41
KB
-rwxr-xr-x
ppmtoxpm
14.53
KB
-rwxr-xr-x
ppmtoyuv
9.71
KB
-rwxr-xr-x
ppmtoyuvsplit
10.9
KB
-rwxr-xr-x
ppmtv
9.73
KB
-rwxr-xr-x
ppmwheel
10.43
KB
-rwxr-xr-x
pr
62.8
KB
-rwxr-xr-x
pre-grohtml
76.61
KB
-rwxr-xr-x
printafm
386
B
-rwxr-xr-x
printenv
25.66
KB
-rwxr-xr-x
printf
48.91
KB
-rwxr-xr-x
profiles
1.59
MB
-rwxr-xr-x
protoize
70.42
KB
-rwxr-xr-x
prove
9.15
KB
-rwxr-xr-x
proxy
10.72
KB
-rwxr-xr-x
ps2ascii
786
B
-rwxr-xr-x
ps2epsi
2.71
KB
-rwxr-xr-x
ps2frag
229
B
-rwxr-xr-x
ps2pdf
315
B
-rwxr-xr-x
ps2pdf12
260
B
-rwxr-xr-x
ps2pdf13
260
B
-rwxr-xr-x
ps2pdf14
260
B
-rwxr-xr-x
ps2pdfwr
1.06
KB
-rwxr-xr-x
ps2pk
135.38
KB
-rwxr-xr-x
ps2ps
634
B
-rwxr-xr-x
ps2ps2
704
B
-rwxr-xr-x
ps4pdf
4.19
KB
-rwxr-xr-x
psbook
18.52
KB
-rwxr-xr-x
psed
52.08
KB
-rwxr-xr-x
psfaddtable
20.52
KB
-rwxr-xr-x
psfgettable
20.52
KB
-rwxr-xr-x
psfstriptable
20.52
KB
-rwxr-xr-x
psfxtable
20.52
KB
-rwxr-xr-x
psidtopgm
10.18
KB
-rwxr-xr-x
pslatex
1.41
KB
-rwxr-xr-x
psnup
26.8
KB
-rwxr-xr-x
psql
334.97
KB
-rwxr-xr-x
psresize
24.37
KB
-rwxr-xr-x
psselect
19.83
KB
-rwxr-xr-x
pstack
1.1
KB
-rwxr-xr-x
pstopnm
19.6
KB
-rwxr-xr-x
pstops
25.27
KB
-rwxr-xr-x
pstree
24.66
KB
-rwxr-xr-x
pstree.x11
24.66
KB
-rwxr-xr-x
pstruct
35.74
KB
-rwxr-xr-x
ptar
2.72
KB
-rwxr-xr-x
ptardiff
2.46
KB
-rwxr-xr-x
ptx
126.56
KB
-rwxr-xr-x
pv.sh
1.39
KB
-rwxr-xr-x
pwdx
9.91
KB
-rwxr-xr-x
pydoc
78
B
-rwxr-xr-x
pygmentize
141
B
-rwxr-xr-x
python
8.82
KB
-rwxr-xr-x
python2
8.82
KB
-rwxr-xr-x
python2.6
8.82
KB
-rwxr-xr-x
qdbus
63.64
KB
-rwxr-xr-x
qdbusviewer
182.99
KB
-rwxr-xr-x
qrttoppm
9.73
KB
-rwxr-xr-x
qtconfig-qt4
342.75
KB
-rwxr-xr-x
quota
80.81
KB
-rwxr-xr-x
quotasync
64.69
KB
-rwxr-xr-x
ranlib
59.55
KB
-rwxr-xr-x
ras2tiff
14.33
KB
-rwxr-xr-x
rasttopnm
15.35
KB
-rwxr-xr-x
raw2tiff
19.59
KB
-rwxr-xr-x
rawtopgm
12.34
KB
-rwxr-xr-x
rawtoppm
11.77
KB
-rwxr-xr-x
rcs
90.95
KB
-rwxr-xr-x
rcs-checkin
3.88
KB
-rwxr-xr-x
rcs2log
19.12
KB
-rwxr-xr-x
rcsclean
85.66
KB
-rwxr-xr-x
rcsdiff
65.53
KB
-rwxr-xr-x
rcsfreeze
3.15
KB
-rwxr-xr-x
rcsmerge
65.53
KB
-rwxr-xr-x
rdate
13.24
KB
-rwxr-xr-x
rdjpgcom
12.19
KB
-rwxr-xr-x
readelf
296.33
KB
-rwxr-xr-x
readlink
39.12
KB
-rwxr-xr-x
reboot
8.67
KB
-rwxr-xr-x
rebuild-gcj-db
441
B
-rwxr-xr-x
rebuild-jar-repository
1.76
KB
-rwxr-xr-x
recode-sr-latin
15.16
KB
-rwxr-xr-x
recountdiff
3.36
KB
-rwxr-xr-x
rediff
36.25
KB
-rwxr-xr-x
refer
125.91
KB
-rwxr-xr-x
reindexdb
59.5
KB
-rwxr-xr-x
rename
9.66
KB
-rwxr-xr-x
renice
10.38
KB
-rwxr-xr-x
replace
1.32
MB
-rwxr-xr-x
repo-graph
4.1
KB
-rwxr-xr-x
repo-rss
9.99
KB
-rwxr-xr-x
repoclosure
11.35
KB
-rwxr-xr-x
repodiff
11.63
KB
-rwxr-xr-x
repomanage
6.88
KB
-rwxr-xr-x
repoquery
45.03
KB
-rwxr-xr-x
report
19.87
KB
-rwxr-xr-x
report-cli
39.41
KB
-rwxr-xr-x
reporter-kerneloops
28.23
KB
-rwxr-xr-x
reporter-mailx
23.69
KB
-rwxr-xr-x
reporter-print
22.07
KB
-rwxr-xr-x
reporter-rhtsupport
55.41
KB
-rwxr-xr-x
reporter-upload
29.73
KB
-rwxr-xr-x
reporter-ureport
34.34
KB
-rwxr-xr-x
reposync
14.74
KB
-rwxr-xr-x
repotrack
8.54
KB
-rwxr-xr-x
reset
21.91
KB
-rwxr-xr-x
resize
17.88
KB
-rwxr-xr-x
resizecons
19.06
KB
-rwxr-xr-x
resolve_stack_dump
1.32
MB
-rwxr-xr-x
resolveip
1.32
MB
-rwxr-xr-x
rev
9.93
KB
-rwxr-xr-x
rgb2ycbcr
15.7
KB
-rwxr-xr-x
rgb3toppm
9.72
KB
-rwxr-xr-x
rhgb-client
35.95
KB
-rwxr-xr-x
rlatopam
13.01
KB
-rwxr-xr-x
rletopnm
31.41
KB
-rwxr-xr-x
rlog
70.2
KB
-rwxr-xr-x
rmail
262
B
-rwxr-xr-x
rmail.postfix
262
B
-rwxr-xr-x
rmid
9.81
KB
-rwxr-xr-x
rmiregistry
9.82
KB
-rwxr-xr-x
rnano
174.7
KB
-rwxr-xr-x
rngtest
16.45
KB
-rwxr-xr-x
rpcclient
7.41
MB
-rwxr-xr-x
rpcgen
93.46
KB
-rwxr-xr-x
rpm2cpio
15.73
KB
-rwxr-xr-x
rpmbuild
34.41
KB
-rwxr-xr-x
rpmdb
29.98
KB
-rwxr-xr-x
rpmquery
29.98
KB
-rwxr-xr-x
rpmsign
29.98
KB
-rwxr-xr-x
rpmverify
29.98
KB
-rwxr-xr-x
rsvg
2.44
KB
-rwxr-xr-x
rsvg-convert
27.82
KB
-rwxr-xr-x
rsvg-view
42.67
KB
-rwxr-xr-x
rsync
405.24
KB
-rwxr-xr-x
rubibtex
2.52
KB
-rwxr-xr-x
rumakeindex
1.75
KB
-rwxr-xr-x
run-parts
1.38
KB
-rwxr-xr-x
runcon
31.16
KB
-rwxr-xr-x
rvim
2.22
MB
-rwxr-xr-x
s2p
52.08
KB
-rwxr-xr-x
sadf
111.99
KB
-rwxr-xr-x
sar
82.96
KB
-rwxr-xr-x
satyr
22.85
KB
-rwxr-xr-x
sbigtopgm
11.43
KB
-rwxr-xr-x
scl
21.48
KB
-rwxr-xr-x
scl_enabled
258
B
-rwxr-xr-x
scl_source
1.83
KB
-rwxr-xr-x
scp
66.06
KB
-rwxr-xr-x
script
16.24
KB
-rwxr-xr-x
scriptreplay
10.91
KB
-rwxr-xr-x
scs2ascii
13.52
KB
-rwxr-xr-x
scs2pdf
26.78
KB
-rwxr-xr-x
scs2ps
15.09
KB
-rwxr-xr-x
sctp_darn
42.79
KB
-rwxr-xr-x
sctp_status
22.45
KB
-rwxr-xr-x
sctp_test
31.59
KB
-rwxr-xr-x
sdiff
28.32
KB
-rwxr-xr-x
secon
18.39
KB
-rwxr-xr-x
sedismod
169.45
KB
-rwxr-xr-x
sedispol
142.02
KB
-rwxr-xr-x
seekwatcher
32.28
KB
-rwxr-xr-x
selfsign-getcert
130.03
KB
-rwxr-xr-x
semodule_deps
194.95
KB
-rwxr-xr-x
semodule_expand
10.34
KB
-rwxr-xr-x
semodule_link
10.27
KB
-rwxr-xr-x
semodule_package
14.59
KB
-rwxr-xr-x
seq
42.91
KB
-rwxr-xr-x
servertool
9.84
KB
-rwxr-xr-x
setarch
13.59
KB
-rwxr-xr-x
setcifsacl
18.29
KB
-rwxr-xr-x
setfacl
36.15
KB
-rwxr-xr-x
setfattr
18.02
KB
-rwxr-xr-x
setkeycodes
10.23
KB
-rwxr-xr-x
setleds
11.98
KB
-rwxr-xr-x
setmetamode
9.74
KB
-rwxr-xr-x
setsid
8.59
KB
-rwxr-xr-x
setterm
25.1
KB
-rwxr-xr-x
setup
8.67
KB
-rwxr-xr-x
setup-nsssysinit.sh
1.5
KB
-rwxr-xr-x
sftp
102.07
KB
-rwxr-xr-x
sg
39.3
KB
-rwsr-xr-x
sgitopnm
14.65
KB
-rwxr-xr-x
sgmlwhich
265
B
-rwxr-xr-x
sha1sum
38.98
KB
-rwxr-xr-x
sha224sum
44.7
KB
-rwxr-xr-x
sha256sum
44.7
KB
-rwxr-xr-x
sha384sum
49.91
KB
-rwxr-xr-x
sha512sum
49.91
KB
-rwxr-xr-x
sharesec
1.57
MB
-rwxr-xr-x
shasum
7.48
KB
-rwxr-xr-x
show-changed-rco
10.11
KB
-rwxr-xr-x
show-installed
16.18
KB
-rwxr-xr-x
showchar
2.51
KB
-rwxr-xr-x
showconsolefont
17.26
KB
-rwxr-xr-x
showkey
13.78
KB
-rwxr-xr-x
shred
50.23
KB
-rwxr-xr-x
shuf
38.03
KB
-rwxr-xr-x
signtool
168.09
KB
-rwxr-xr-x
signver
91.64
KB
-rwxr-xr-x
sinjdoc
132
B
-rw-r-xr-x
sirtopnm
10.22
KB
-rwxr-xr-x
size
32.95
KB
-rwxr-xr-x
skill
18.31
KB
-rwxr-xr-x
slabtop
17.16
KB
-rwxr-xr-x
sldtoppm
17.45
KB
-rwxr-xr-x
slogin
440.16
KB
-rwxr-xr-x
smbcacls
6.1
MB
-rwxr-xr-x
smbclient
6.14
MB
-rwxr-xr-x
smbcontrol
1.6
MB
-rwxr-xr-x
smbcquotas
6.09
MB
-rwxr-xr-x
smbget
6.33
MB
-rwxr-xr-x
smbpasswd
6.12
MB
-rwxr-xr-x
smbprint
2.24
KB
-rwxr-xr-x
smbspool
3.31
MB
-rwxr-xr-x
smbta-util
1.56
MB
-rwxr-xr-x
smbtar
4.78
KB
-rwxr-xr-x
smbtree
6.03
MB
-rwxr-xr-x
sndfile-cmp
10.42
KB
-rwxr-xr-x
sndfile-convert
18.83
KB
-rwxr-xr-x
sndfile-info
14.2
KB
-rwxr-xr-x
sndfile-metadata-get
12.62
KB
-rwxr-xr-x
sndfile-metadata-set
18.17
KB
-rwxr-xr-x
sndfile-play
17.83
KB
-rwxr-xr-x
sndfile-regtest
19.54
KB
-rwxr-xr-x
snice
18.31
KB
-rwxr-xr-x
soelim
25.58
KB
-rwxr-xr-x
spctoppm
10.02
KB
-rwxr-xr-x
speaker-test
34.23
KB
-rwxr-xr-x
splain
17.04
KB
-rwxr-xr-x
split
54.06
KB
-rwxr-xr-x
splitdiff
2.96
KB
-rwxr-xr-x
spottopgm
10.99
KB
-rwxr-xr-x
sprof
26.2
KB
-rwxr-xr-x
sputoppm
9.19
KB
-rwxr-xr-x
sqlite3
58
KB
-rwxr-xr-x
ssh
440.16
KB
-rwxr-xr-x
ssh-add
155.2
KB
-rwxr-xr-x
ssh-agent
138.07
KB
-rwxr-sr-x
ssh-copy-id
1.39
KB
-rwxr-xr-x
ssh-keygen
195.2
KB
-rwxr-xr-x
ssh-keyscan
247.8
KB
-rwxr-xr-x
ssltap
115.44
KB
-rwxr-xr-x
sss_ssh_authorizedkeys
33.24
KB
-rwxr-xr-x
sss_ssh_knownhostsproxy
35.95
KB
-rwxr-xr-x
stap
2.92
MB
-rwxr-xr-x
stap-merge
10.02
KB
-rwxr-xr-x
stap-prep
3.79
KB
-rwxr-xr-x
stap-report
4.41
KB
-rwxr-xr-x
staprun
178.78
KB
---s--x---
stapsh
26.09
KB
-rwxr-xr-x
stat
49.79
KB
-rwxr-xr-x
stdbuf
61.98
KB
-rwxr-xr-x
strace
425.97
KB
-rwxr-xr-x
strace-log-merge
944
B
-rwxr-xr-x
strings
31.7
KB
-rwxr-xr-x
strip
213.94
KB
-rwxr-xr-x
sudo
120.93
KB
---s--x--x
sudoedit
120.93
KB
---s--x--x
sudoreplay
62.34
KB
---x--x--x
sum
33.82
KB
-rwxr-xr-x
svn
195.63
KB
-rwxr-xr-x
svnadmin
61.46
KB
-rwxr-xr-x
svndumpfilter
33.09
KB
-rwxr-xr-x
svnlook
61.07
KB
-rwxr-xr-x
svnsync
43.66
KB
-rwxr-xr-x
svnversion
11.28
KB
-rwxr-xr-x
swig
1.09
MB
-rwxr-xr-x
system-config-firewall-tui
1.13
KB
-rwxr-xr-x
system-config-network
8.67
KB
-rwxr-xr-x
system-config-network-cmd
8.67
KB
-rwxr-xr-x
tabs
14.14
KB
-rwxr-xr-x
tac
94
KB
-rwxr-xr-x
tail
60.05
KB
-rwxr-xr-x
tailf
11.66
KB
-rwxr-xr-x
tangle
46.31
KB
-rwxr-xr-x
tbl
103.23
KB
-rwxr-xr-x
tcpdf_addfont
7.28
KB
-rwxr-xr-x
tee
27.1
KB
-rwxr-xr-x
test
33.02
KB
-rwxr-xr-x
testparm
1.57
MB
-rwxr-xr-x
tex
281.8
KB
-rwxr-xr-x
texconfig
43.33
KB
-rwxr-xr-x
texconfig-dialog
12.75
KB
-rwxr-xr-x
texconfig-sys
838
B
-rwxr-xr-x
texhash
5.66
KB
-rwxr-xr-x
texlinks
8.66
KB
-rwxr-xr-x
texsis
650.74
KB
-rwxr-xr-x
tfmtodit
30.16
KB
-rwxr-xr-x
tftopl
46.8
KB
-rwxr-xr-x
tgatoppm
13.73
KB
-rwxr-xr-x
theora_dump_video
17.2
KB
-rwxr-xr-x
theora_encode
45.05
KB
-rwxr-xr-x
theora_player
266
B
-rwxr-xr-x
theora_player.bin
26.41
KB
-rwxr-xr-x
thinkjettopbm
22.05
KB
-rwxr-xr-x
thumbnail
19.32
KB
-rwxr-xr-x
thumbpdf
40.59
KB
-rwxr-xr-x
tic
52.52
KB
-rwxr-xr-x
tie
14.8
KB
-rwxr-xr-x
tiff2bw
16.05
KB
-rwxr-xr-x
tiff2pdf
67.74
KB
-rwxr-xr-x
tiff2ps
45.01
KB
-rwxr-xr-x
tiff2rgba
15.59
KB
-rwxr-xr-x
tiffcmp
18.64
KB
-rwxr-xr-x
tiffcp
35.16
KB
-rwxr-xr-x
tiffcrop
101.85
KB
-rwxr-xr-x
tiffdither
14.37
KB
-rwxr-xr-x
tiffdump
20.45
KB
-rwxr-xr-x
tiffinfo
17.95
KB
-rwxr-xr-x
tiffmedian
18.83
KB
-rwxr-xr-x
tiffset
12.77
KB
-rwxr-xr-x
tiffsplit
14.85
KB
-rwxr-xr-x
tifftopnm
36.16
KB
-rwxr-xr-x
time
17.51
KB
-rwxr-xr-x
timeout
49
KB
-rwxr-xr-x
tload
11.53
KB
-rwxr-xr-x
tmpwatch
21.15
KB
-rwxr-xr-x
tn5250
36.44
KB
-rwxr-xr-x
tnameserv
10.04
KB
-rwxr-xr-x
toe
15.13
KB
-rwxr-xr-x
tomcat6-digest
1.06
KB
-rwxr-xr-x
tomcat6-tool-wrapper
1.02
KB
-rwxr-xr-x
top
66.77
KB
-rwxr-xr-x
tput
14.91
KB
-rwxr-xr-x
tr
40.48
KB
-rwxr-xr-x
trace-cmd
269.22
KB
-rwxr-xr-x
troff
355.09
KB
-rwxr-xr-x
truncate
49.96
KB
-rwxr-xr-x
tset
21.91
KB
-rwxr-xr-x
tsort
35.02
KB
-rwxr-xr-x
ttmkfdir
107.1
KB
-rwxr-xr-x
tty
24.87
KB
-rwxr-xr-x
tzselect
6.96
KB
-rwxr-xr-x
ucs2any
21.34
KB
-rwxr-xr-x
ul
17.12
KB
-rwxr-xr-x
unexpand
31.01
KB
-rwxr-xr-x
uniq
38.09
KB
-rwxr-xr-x
unix-lpr.sh
4.11
KB
-rwxr-xr-x
unlzma
50.63
KB
-rwxr-xr-x
unpack200
89.75
KB
-rwxr-xr-x
unprotoize
60.15
KB
-rwxr-xr-x
unshare
12.9
KB
-rwxr-xr-x
unwrapdiff
5.8
KB
-rwxr-xr-x
unxz
50.63
KB
-rwxr-xr-x
unzip
165.79
KB
-rwxr-xr-x
unzipsfx
79.17
KB
-rwxr-xr-x
update-ca-trust
8.54
KB
-rwxr-xr-x
update-desktop-database
18.18
KB
-rwxr-xr-x
update-gdk-pixbuf-loaders
484
B
-rwxr-xr-x
update-gio-modules
319
B
-rw-r--r--
update-gtk-immodules
313
B
-rwxr-xr-x
update-mime-database
49.73
KB
-rwxr-xr-x
updatedb
39.77
KB
-rwxr-xr-x
updmap
46.06
KB
-rwxr-xr-x
updmap-sys
829
B
-rwxr-xr-x
uptime
8.16
KB
-rwxr-xr-x
urlgrabber
12.15
KB
-rwxr-xr-x
usb-devices
4.1
KB
-rwxr-xr-x
usbhid-dump
23.39
KB
-rwxr-xr-x
users
27.06
KB
-rwxr-xr-x
utmpdump
13.86
KB
-rwxr-xr-x
uuidgen
9.14
KB
-rwxr-xr-x
uxterm
3.59
KB
-rwxr-xr-x
vacuumdb
37.89
KB
-rwxr-xr-x
valgrind
45.66
KB
-rwxr-xr-x
valgrind-listener
27.78
KB
-rwxr-xr-x
vdir
114.3
KB
-rwxr-xr-x
verify_blkparse
9.63
KB
-rwxr-xr-x
verifytree
9.19
KB
-rwxr-xr-x
vftovp
51.98
KB
-rwxr-xr-x
vgdb
95.42
KB
-rwxr-xr-x
vim
2.22
MB
-rwxr-xr-x
vimdiff
2.22
MB
-rwxr-xr-x
vimtutor
2.04
KB
-rwxr-xr-x
vmstat
24.3
KB
-rwxr-xr-x
vnstat
94.77
KB
-rwxr-xr-x
vnstati
83.65
KB
-rwxr-xr-x
volname
8.7
KB
-rwxr-xr-x
vptovf
60.27
KB
-rwxr-xr-x
w
16.22
KB
-rwxr-xr-x
wall
14.87
KB
-r-xr-sr-x
watch
16.46
KB
-rwxr-xr-x
watchgnupg
13.84
KB
-rwxr-xr-x
wbinfo
1.64
MB
-rwxr-xr-x
wbmptopbm
9.71
KB
-rwxr-xr-x
wc
35.55
KB
-rwxr-xr-x
wcmgr
25.78
KB
-rwxr-xr-x
weave
67.33
KB
-rwxr-xr-x
webalizer
172.85
KB
-rwxr-xr-x
webazolver
172.85
KB
-rwxr-xr-x
wftopfa
284
B
-rwxr-xr-x
wget
358.25
KB
-rwxr-xr-x
whatis
1.74
KB
-rwxr-xr-x
whereis
14.27
KB
-rwxr-xr-x
which
24.93
KB
-rwxr-xr-x
whiptail
29.59
KB
-rwxr-xr-x
who
47.8
KB
-rwxr-xr-x
whoami
25.66
KB
-rwxr-xr-x
winicontoppm
16.57
KB
-rwxr-xr-x
withsctp
227
B
-rwxr-xr-x
write
11.73
KB
-rwxr-sr-x
wrjpgcom
12.89
KB
-rwxr-xr-x
x3270
1.26
MB
-rwxr-xr-x
x3270if
19.76
KB
-rwxr-xr-x
x86_64
13.59
KB
-rwxr-xr-x
x86_64-redhat-linux-c++
264.98
KB
-rwxr-xr-x
x86_64-redhat-linux-g++
264.98
KB
-rwxr-xr-x
x86_64-redhat-linux-gcc
265.34
KB
-rwxr-xr-x
xargs
45.55
KB
-rwxr-xr-x
xbmtopbm
13.3
KB
-rwxr-xr-x
xdg-desktop-icon
14.7
KB
-rwxr-xr-x
xdg-desktop-menu
37.06
KB
-rwxr-xr-x
xdg-email
18.61
KB
-rwxr-xr-x
xdg-icon-resource
23.89
KB
-rwxr-xr-x
xdg-mime
28.88
KB
-rwxr-xr-x
xdg-open
10.94
KB
-rwxr-xr-x
xdg-screensaver
20.57
KB
-rwxr-xr-x
xdg-settings
24.47
KB
-rwxr-xr-x
xgettext
219.69
KB
-rwxr-xr-x
ximtoppm
14.28
KB
-rwxr-xr-x
xml-resolver
514
B
-rwxr-xr-x
xml-xparse
508
B
-rwxr-xr-x
xml-xread
505
B
-rwxr-xr-x
xml_grep
12.88
KB
-rwxr-xr-x
xml_merge
3.98
KB
-rwxr-xr-x
xml_pp
7.57
KB
-rwxr-xr-x
xml_spellcheck
6.44
KB
-rwxr-xr-x
xml_split
21.13
KB
-rwxr-xr-x
xmlcatalog
19.09
KB
-rwxr-xr-x
xmllint
63.34
KB
-rwxr-xr-x
xmlwf
25.47
KB
-rwxr-xr-x
xpmtoppm
18.11
KB
-rwxr-xr-x
xsltproc
28.88
KB
-rwxr-xr-x
xsubpp
4
KB
-rwxr-xr-x
xt5250
2.71
KB
-rwxr-xr-x
xterm
414.13
KB
-rwxr-xr-x
xvminitoppm
10.64
KB
-rwxr-xr-x
xwdtopnm
21.57
KB
-rwxr-xr-x
xxd
18.24
KB
-rwxr-xr-x
xz
50.63
KB
-rwxr-xr-x
xzcat
50.63
KB
-rwxr-xr-x
xzcmp
5.1
KB
-rwxr-xr-x
xzdec
15.07
KB
-rwxr-xr-x
xzdiff
5.1
KB
-rwxr-xr-x
xzegrep
5.36
KB
-rwxr-xr-x
xzfgrep
5.36
KB
-rwxr-xr-x
xzgrep
5.36
KB
-rwxr-xr-x
xzless
1.76
KB
-rwxr-xr-x
xzmore
2.12
KB
-rwxr-xr-x
yacc
76.46
KB
-rwxr-xr-x
ybmtopbm
9.74
KB
-rwxr-xr-x
yes
25.06
KB
-rwxr-xr-x
ypcat
15.79
KB
-rwxr-xr-x
ypchfn
25.41
KB
-rwxr-xr-x
ypchsh
25.41
KB
-rwxr-xr-x
ypmatch
13.66
KB
-rwxr-xr-x
yppasswd
25.41
KB
-rwxr-xr-x
ypwhich
17.14
KB
-rwxr-xr-x
yum
801
B
-rwxr-xr-x
yum-builddep
8.34
KB
-rwxr-xr-x
yum-config-manager
8.32
KB
-rwxr-xr-x
yum-debug-dump
7.42
KB
-rwxr-xr-x
yum-debug-restore
7.75
KB
-rwxr-xr-x
yum-groups-manager
10.77
KB
-rwxr-xr-x
yumdownloader
12
KB
-rwxr-xr-x
yuvsplittoppm
11.7
KB
-rwxr-xr-x
yuvtoppm
10.13
KB
-rwxr-xr-x
zcmp
67
B
-rwxr-xr-x
zdiff
4.34
KB
-rwxr-xr-x
zegrep
62
B
-rwxr-xr-x
zeisstopnm
10.47
KB
-rwxr-xr-x
zfgrep
62
B
-rwxr-xr-x
zforce
1.98
KB
-rwxr-xr-x
zgrep
4.86
KB
-rwxr-xr-x
zip
210.51
KB
-rwxr-xr-x
zipcloak
107.13
KB
-rwxr-xr-x
zipgrep
2.88
KB
-rwxr-xr-x
zipinfo
165.79
KB
-rwxr-xr-x
zipnote
99.47
KB
-rwxr-xr-x
zipsplit
102.81
KB
-rwxr-xr-x
zless
1.69
KB
-rwxr-xr-x
zmore
2.54
KB
-rwxr-xr-x
znew
5.12
KB
-rwxr-xr-x
zsoelim
25.58
KB
-rwxr-xr-x
zts-php
4.09
MB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : h2xs
#!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; use warnings; =head1 NAME h2xs - convert .h C header files to Perl extensions =head1 SYNOPSIS B<h2xs> [B<OPTIONS> ...] [headerfile ... [extra_libraries]] B<h2xs> B<-h>|B<-?>|B<--help> =head1 DESCRIPTION I<h2xs> builds a Perl extension from C header files. The extension will include functions which can be used to retrieve the value of any #define statement which was in the C header files. The I<module_name> will be used for the name of the extension. If module_name is not supplied then the name of the first header file will be used, with the first character capitalized. If the extension might need extra libraries, they should be included here. The extension Makefile.PL will take care of checking whether the libraries actually exist and how they should be loaded. The extra libraries should be specified in the form -lm -lposix, etc, just as on the cc command line. By default, the Makefile.PL will search through the library path determined by Configure. That path can be augmented by including arguments of the form B<-L/another/library/path> in the extra-libraries argument. In spite of its name, I<h2xs> may also be used to create a skeleton pure Perl module. See the B<-X> option. =head1 OPTIONS =over 5 =item B<-A>, B<--omit-autoload> Omit all autoload facilities. This is the same as B<-c> but also removes the S<C<use AutoLoader>> statement from the .pm file. =item B<-B>, B<--beta-version> Use an alpha/beta style version number. Causes version number to be "0.00_01" unless B<-v> is specified. =item B<-C>, B<--omit-changes> Omits creation of the F<Changes> file, and adds a HISTORY section to the POD template. =item B<-F>, B<--cpp-flags>=I<addflags> Additional flags to specify to C preprocessor when scanning header for function declarations. Writes these options in the generated F<Makefile.PL> too. =item B<-M>, B<--func-mask>=I<regular expression> selects functions/macros to process. =item B<-O>, B<--overwrite-ok> Allows a pre-existing extension directory to be overwritten. =item B<-P>, B<--omit-pod> Omit the autogenerated stub POD section. =item B<-X>, B<--omit-XS> Omit the XS portion. Used to generate a skeleton pure Perl module. C<-c> and C<-f> are implicitly enabled. =item B<-a>, B<--gen-accessors> Generate an accessor method for each element of structs and unions. The generated methods are named after the element name; will return the current value of the element if called without additional arguments; and will set the element to the supplied value (and return the new value) if called with an additional argument. Embedded structures and unions are returned as a pointer rather than the complete structure, to facilitate chained calls. These methods all apply to the Ptr type for the structure; additionally two methods are constructed for the structure type itself, C<_to_ptr> which returns a Ptr type pointing to the same structure, and a C<new> method to construct and return a new structure, initialised to zeroes. =item B<-b>, B<--compat-version>=I<version> Generates a .pm file which is backwards compatible with the specified perl version. For versions < 5.6.0, the changes are. - no use of 'our' (uses 'use vars' instead) - no 'use warnings' Specifying a compatibility version higher than the version of perl you are using to run h2xs will have no effect. If unspecified h2xs will default to compatibility with the version of perl you are using to run h2xs. =item B<-c>, B<--omit-constant> Omit C<constant()> from the .xs file and corresponding specialised C<AUTOLOAD> from the .pm file. =item B<-d>, B<--debugging> Turn on debugging messages. =item B<-e>, B<--omit-enums>=[I<regular expression>] If I<regular expression> is not given, skip all constants that are defined in a C enumeration. Otherwise skip only those constants that are defined in an enum whose name matches I<regular expression>. Since I<regular expression> is optional, make sure that this switch is followed by at least one other switch if you omit I<regular expression> and have some pending arguments such as header-file names. This is ok: h2xs -e -n Module::Foo foo.h This is not ok: h2xs -n Module::Foo -e foo.h In the latter, foo.h is taken as I<regular expression>. =item B<-f>, B<--force> Allows an extension to be created for a header even if that header is not found in standard include directories. =item B<-g>, B<--global> Include code for safely storing static data in the .xs file. Extensions that do no make use of static data can ignore this option. =item B<-h>, B<-?>, B<--help> Print the usage, help and version for this h2xs and exit. =item B<-k>, B<--omit-const-func> For function arguments declared as C<const>, omit the const attribute in the generated XS code. =item B<-m>, B<--gen-tied-var> B<Experimental>: for each variable declared in the header file(s), declare a perl variable of the same name magically tied to the C variable. =item B<-n>, B<--name>=I<module_name> Specifies a name to be used for the extension, e.g., S<-n RPC::DCE> =item B<-o>, B<--opaque-re>=I<regular expression> Use "opaque" data type for the C types matched by the regular expression, even if these types are C<typedef>-equivalent to types from typemaps. Should not be used without B<-x>. This may be useful since, say, types which are C<typedef>-equivalent to integers may represent OS-related handles, and one may want to work with these handles in OO-way, as in C<$handle-E<gt>do_something()>. Use C<-o .> if you want to handle all the C<typedef>ed types as opaque types. The type-to-match is whitewashed (except for commas, which have no whitespace before them, and multiple C<*> which have no whitespace between them). =item B<-p>, B<--remove-prefix>=I<prefix> Specify a prefix which should be removed from the Perl function names, e.g., S<-p sec_rgy_> This sets up the XS B<PREFIX> keyword and removes the prefix from functions that are autoloaded via the C<constant()> mechanism. =item B<-s>, B<--const-subs>=I<sub1,sub2> Create a perl subroutine for the specified macros rather than autoload with the constant() subroutine. These macros are assumed to have a return type of B<char *>, e.g., S<-s sec_rgy_wildcard_name,sec_rgy_wildcard_sid>. =item B<-t>, B<--default-type>=I<type> Specify the internal type that the constant() mechanism uses for macros. The default is IV (signed integer). Currently all macros found during the header scanning process will be assumed to have this type. Future versions of C<h2xs> may gain the ability to make educated guesses. =item B<--use-new-tests> When B<--compat-version> (B<-b>) is present the generated tests will use C<Test::More> rather than C<Test> which is the default for versions before 5.7.2 . C<Test::More> will be added to PREREQ_PM in the generated C<Makefile.PL>. =item B<--use-old-tests> Will force the generation of test code that uses the older C<Test> module. =item B<--skip-exporter> Do not use C<Exporter> and/or export any symbol. =item B<--skip-ppport> Do not use C<Devel::PPPort>: no portability to older version. =item B<--skip-autoloader> Do not use the module C<AutoLoader>; but keep the constant() function and C<sub AUTOLOAD> for constants. =item B<--skip-strict> Do not use the pragma C<strict>. =item B<--skip-warnings> Do not use the pragma C<warnings>. =item B<-v>, B<--version>=I<version> Specify a version number for this extension. This version number is added to the templates. The default is 0.01, or 0.00_01 if C<-B> is specified. The version specified should be numeric. =item B<-x>, B<--autogen-xsubs> Automatically generate XSUBs basing on function declarations in the header file. The package C<C::Scan> should be installed. If this option is specified, the name of the header file may look like C<NAME1,NAME2>. In this case NAME1 is used instead of the specified string, but XSUBs are emitted only for the declarations included from file NAME2. Note that some types of arguments/return-values for functions may result in XSUB-declarations/typemap-entries which need hand-editing. Such may be objects which cannot be converted from/to a pointer (like C<long long>), pointers to functions, or arrays. See also the section on L<LIMITATIONS of B<-x>>. =back =head1 EXAMPLES # Default behavior, extension is Rusers h2xs rpcsvc/rusers # Same, but extension is RUSERS h2xs -n RUSERS rpcsvc/rusers # Extension is rpcsvc::rusers. Still finds <rpcsvc/rusers.h> h2xs rpcsvc::rusers # Extension is ONC::RPC. Still finds <rpcsvc/rusers.h> h2xs -n ONC::RPC rpcsvc/rusers # Without constant() or AUTOLOAD h2xs -c rpcsvc/rusers # Creates templates for an extension named RPC h2xs -cfn RPC # Extension is ONC::RPC. h2xs -cfn ONC::RPC # Extension is a pure Perl module with no XS code. h2xs -X My::Module # Extension is Lib::Foo which works at least with Perl5.005_03. # Constants are created for all #defines and enums h2xs can find # in foo.h. h2xs -b 5.5.3 -n Lib::Foo foo.h # Extension is Lib::Foo which works at least with Perl5.005_03. # Constants are created for all #defines but only for enums # whose names do not start with 'bar_'. h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h # Makefile.PL will look for library -lrpc in # additional directory /opt/net/lib h2xs rpcsvc/rusers -L/opt/net/lib -lrpc # Extension is DCE::rgynbase # prefix "sec_rgy_" is dropped from perl function names h2xs -n DCE::rgynbase -p sec_rgy_ dce/rgynbase # Extension is DCE::rgynbase # prefix "sec_rgy_" is dropped from perl function names # subroutines are created for sec_rgy_wildcard_name and # sec_rgy_wildcard_sid h2xs -n DCE::rgynbase -p sec_rgy_ \ -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid dce/rgynbase # Make XS without defines in perl.h, but with function declarations # visible from perl.h. Name of the extension is perl1. # When scanning perl.h, define -DEXT=extern -DdEXT= -DINIT(x)= # Extra backslashes below because the string is passed to shell. # Note that a directory with perl header files would # be added automatically to include path. h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h # Same with function declaration in proto.h as visible from perl.h. h2xs -xAn perl2 perl.h,proto.h # Same but select only functions which match /^av_/ h2xs -M '^av_' -xAn perl2 perl.h,proto.h # Same but treat SV* etc as "opaque" types h2xs -o '^[S]V \*$' -M '^av_' -xAn perl2 perl.h,proto.h =head2 Extension based on F<.h> and F<.c> files Suppose that you have some C files implementing some functionality, and the corresponding header files. How to create an extension which makes this functionality accessible in Perl? The example below assumes that the header files are F<interface_simple.h> and I<interface_hairy.h>, and you want the perl module be named as C<Ext::Ension>. If you need some preprocessor directives and/or linking with external libraries, see the flags C<-F>, C<-L> and C<-l> in L<"OPTIONS">. =over =item Find the directory name Start with a dummy run of h2xs: h2xs -Afn Ext::Ension The only purpose of this step is to create the needed directories, and let you know the names of these directories. From the output you can see that the directory for the extension is F<Ext/Ension>. =item Copy C files Copy your header files and C files to this directory F<Ext/Ension>. =item Create the extension Run h2xs, overwriting older autogenerated files: h2xs -Oxan Ext::Ension interface_simple.h interface_hairy.h h2xs looks for header files I<after> changing to the extension directory, so it will find your header files OK. =item Archive and test As usual, run cd Ext/Ension perl Makefile.PL make dist make make test =item Hints It is important to do C<make dist> as early as possible. This way you can easily merge(1) your changes to autogenerated files if you decide to edit your C<.h> files and rerun h2xs. Do not forget to edit the documentation in the generated F<.pm> file. Consider the autogenerated files as skeletons only, you may invent better interfaces than what h2xs could guess. Consider this section as a guideline only, some other options of h2xs may better suit your needs. =back =head1 ENVIRONMENT No environment variables are used. =head1 AUTHOR Larry Wall and others =head1 SEE ALSO L<perl>, L<perlxstut>, L<ExtUtils::MakeMaker>, and L<AutoLoader>. =head1 DIAGNOSTICS The usual warnings if it cannot read or write the files involved. =head1 LIMITATIONS of B<-x> F<h2xs> would not distinguish whether an argument to a C function which is of the form, say, C<int *>, is an input, output, or input/output parameter. In particular, argument declarations of the form int foo(n) int *n should be better rewritten as int foo(n) int &n if C<n> is an input parameter. Additionally, F<h2xs> has no facilities to intuit that a function int foo(addr,l) char *addr int l takes a pair of address and length of data at this address, so it is better to rewrite this function as int foo(sv) SV *addr PREINIT: STRLEN len; char *s; CODE: s = SvPV(sv,len); RETVAL = foo(s, len); OUTPUT: RETVAL or alternately static int my_foo(SV *sv) { STRLEN len; char *s = SvPV(sv,len); return foo(s, len); } MODULE = foo PACKAGE = foo PREFIX = my_ int foo(sv) SV *sv See L<perlxs> and L<perlxstut> for additional details. =cut # ' # Grr use strict; my( $H2XS_VERSION ) = ' $Revision: 1.23 $ ' =~ /\$Revision:\s+([^\s]+)/; my $TEMPLATE_VERSION = '0.01'; my @ARGS = @ARGV; my $compat_version = $]; use Getopt::Long; use Config; use Text::Wrap; $Text::Wrap::huge = 'overflow'; $Text::Wrap::columns = 80; use ExtUtils::Constant qw (WriteConstants WriteMakefileSnippet autoload); use File::Compare; use File::Path; sub usage { warn "@_\n" if @_; die <<EOFUSAGE; h2xs [OPTIONS ... ] [headerfile [extra_libraries]] version: $H2XS_VERSION OPTIONS: -A, --omit-autoload Omit all autoloading facilities (implies -c). -B, --beta-version Use beta \$VERSION of 0.00_01 (ignored if -v). -C, --omit-changes Omit creating the Changes file, add HISTORY heading to stub POD. -F, --cpp-flags Additional flags for C preprocessor/compile. -M, --func-mask Mask to select C functions/macros (default is select all). -O, --overwrite-ok Allow overwriting of a pre-existing extension directory. -P, --omit-pod Omit the stub POD section. -X, --omit-XS Omit the XS portion (implies both -c and -f). -a, --gen-accessors Generate get/set accessors for struct and union members (used with -x). -b, --compat-version Specify a perl version to be backwards compatibile with. -c, --omit-constant Omit the constant() function and specialised AUTOLOAD from the XS file. -d, --debugging Turn on debugging messages. -e, --omit-enums Omit constants from enums in the constant() function. If a pattern is given, only the matching enums are ignored. -f, --force Force creation of the extension even if the C header does not exist. -g, --global Include code for safely storing static data in the .xs file. -h, -?, --help Display this help message. -k, --omit-const-func Omit 'const' attribute on function arguments (used with -x). -m, --gen-tied-var Generate tied variables for access to declared variables. -n, --name Specify a name to use for the extension (recommended). -o, --opaque-re Regular expression for \"opaque\" types. -p, --remove-prefix Specify a prefix which should be removed from the Perl function names. -s, --const-subs Create subroutines for specified macros. -t, --default-type Default type for autoloaded constants (default is IV). --use-new-tests Use Test::More in backward compatible modules. --use-old-tests Use the module Test rather than Test::More. --skip-exporter Do not export symbols. --skip-ppport Do not use portability layer. --skip-autoloader Do not use the module C<AutoLoader>. --skip-strict Do not use the pragma C<strict>. --skip-warnings Do not use the pragma C<warnings>. -v, --version Specify a version number for this extension. -x, --autogen-xsubs Autogenerate XSUBs using C::Scan. --use-xsloader Use XSLoader in backward compatible modules (ignored when used with -X). extra_libraries are any libraries that might be needed for loading the extension, e.g. -lm would try to link in the math library. EOFUSAGE } my ($opt_A, $opt_B, $opt_C, $opt_F, $opt_M, $opt_O, $opt_P, $opt_X, $opt_a, $opt_c, $opt_d, $opt_e, $opt_f, $opt_g, $opt_h, $opt_k, $opt_m, $opt_n, $opt_o, $opt_p, $opt_s, $opt_v, $opt_x, $opt_b, $opt_t, $new_test, $old_test, $skip_exporter, $skip_ppport, $skip_autoloader, $skip_strict, $skip_warnings, $use_xsloader ); Getopt::Long::Configure('bundling'); Getopt::Long::Configure('pass_through'); my %options = ( 'omit-autoload|A' => \$opt_A, 'beta-version|B' => \$opt_B, 'omit-changes|C' => \$opt_C, 'cpp-flags|F=s' => \$opt_F, 'func-mask|M=s' => \$opt_M, 'overwrite_ok|O' => \$opt_O, 'omit-pod|P' => \$opt_P, 'omit-XS|X' => \$opt_X, 'gen-accessors|a' => \$opt_a, 'compat-version|b=s' => \$opt_b, 'omit-constant|c' => \$opt_c, 'debugging|d' => \$opt_d, 'omit-enums|e:s' => \$opt_e, 'force|f' => \$opt_f, 'global|g' => \$opt_g, 'help|h|?' => \$opt_h, 'omit-const-func|k' => \$opt_k, 'gen-tied-var|m' => \$opt_m, 'name|n=s' => \$opt_n, 'opaque-re|o=s' => \$opt_o, 'remove-prefix|p=s' => \$opt_p, 'const-subs|s=s' => \$opt_s, 'default-type|t=s' => \$opt_t, 'version|v=s' => \$opt_v, 'autogen-xsubs|x' => \$opt_x, 'use-new-tests' => \$new_test, 'use-old-tests' => \$old_test, 'skip-exporter' => \$skip_exporter, 'skip-ppport' => \$skip_ppport, 'skip-autoloader' => \$skip_autoloader, 'skip-warnings' => \$skip_warnings, 'skip-strict' => \$skip_strict, 'use-xsloader' => \$use_xsloader, ); GetOptions(%options) || usage; usage if $opt_h; if( $opt_b ){ usage "You cannot use -b and -m at the same time.\n" if ($opt_b && $opt_m); $opt_b =~ /^v?(\d+)\.(\d+)\.(\d+)/ || usage "You must provide the backwards compatibility version in X.Y.Z form. " . "(i.e. 5.5.0)\n"; my ($maj,$min,$sub) = ($1,$2,$3); if ($maj < 5 || ($maj == 5 && $min < 6)) { $compat_version = $sub ? sprintf("%d.%03d%02d",$maj,$min,$sub) : sprintf("%d.%03d", $maj,$min); } else { $compat_version = sprintf("%d.%03d%03d",$maj,$min,$sub); } } else { my ($maj,$min,$sub) = $compat_version =~ /(\d+)\.(\d\d\d)(\d*)/; $sub ||= 0; warn sprintf <<'EOF', $maj,$min,$sub; Defaulting to backwards compatibility with perl %d.%d.%d If you intend this module to be compatible with earlier perl versions, please specify a minimum perl version with the -b option. EOF } if( $opt_B ){ $TEMPLATE_VERSION = '0.00_01'; } if( $opt_v ){ $TEMPLATE_VERSION = $opt_v; # check if it is numeric my $temp_version = $TEMPLATE_VERSION; my $beta_version = $temp_version =~ s/(\d)_(\d\d)/$1$2/; my $notnum; { local $SIG{__WARN__} = sub { $notnum = 1 }; use warnings 'numeric'; $temp_version = 0+$temp_version; } if ($notnum) { my $module = $opt_n || 'Your::Module'; warn <<"EOF"; You have specified a non-numeric version. Unless you supply an appropriate VERSION class method, users may not be able to specify a minimum required version with C<use $module versionnum>. EOF } else { $opt_B = $beta_version; } } # -A implies -c. $skip_autoloader = $opt_c = 1 if $opt_A; # -X implies -c and -f $opt_c = $opt_f = 1 if $opt_X; $opt_t ||= 'IV'; my %const_xsub; %const_xsub = map { $_,1 } split(/,+/, $opt_s) if $opt_s; my $extralibs = ''; my @path_h; while (my $arg = shift) { if ($arg =~ /^-l/i) { $extralibs .= "$arg "; next; } last if $extralibs; push(@path_h, $arg); } usage "Must supply header file or module name\n" unless (@path_h or $opt_n); my $fmask; my $tmask; $fmask = qr{$opt_M} if defined $opt_M; $tmask = qr{$opt_o} if defined $opt_o; my $tmask_all = $tmask && $opt_o eq '.'; if ($opt_x) { eval {require C::Scan; 1} or die <<EOD; C::Scan required if you use -x option. To install C::Scan, execute perl -MCPAN -e "install C::Scan" EOD unless ($tmask_all) { $C::Scan::VERSION >= 0.70 or die <<EOD; C::Scan v. 0.70 or later required unless you use -o . option. You have version $C::Scan::VERSION installed as $INC{'C/Scan.pm'}. To install C::Scan, execute perl -MCPAN -e "install C::Scan" EOD } if (($opt_m || $opt_a) && $C::Scan::VERSION < 0.73) { die <<EOD; C::Scan v. 0.73 or later required to use -m or -a options. You have version $C::Scan::VERSION installed as $INC{'C/Scan.pm'}. To install C::Scan, execute perl -MCPAN -e "install C::Scan" EOD } } elsif ($opt_o or $opt_F) { warn <<EOD if $opt_o; Option -o does not make sense without -x. EOD warn <<EOD if $opt_F and $opt_X ; Option -F does not make sense with -X. EOD } my @path_h_ini = @path_h; my ($name, %fullpath, %prefix, %seen_define, %prefixless, %const_names); my $module = $opt_n; if( @path_h ){ use File::Spec; my @paths; my $pre_sub_tri_graphs = 1; if ($^O eq 'VMS') { # Consider overrides of default location # XXXX This is not equivalent to what the older version did: # it was looking at $hadsys header-file per header-file... my($hadsys) = grep s!^sys/!!i , @path_h; @paths = qw( Sys$Library VAXC$Include ); push @paths, ($hadsys ? 'GNU_CC_Include[vms]' : 'GNU_CC_Include[000000]'); push @paths, qw( DECC$Library_Include DECC$System_Include ); } else { @paths = (File::Spec->curdir(), $Config{usrinc}, (split ' ', $Config{locincpth}), '/usr/include'); } foreach my $path_h (@path_h) { $name ||= $path_h; $module ||= do { $name =~ s/\.h$//; if ( $name !~ /::/ ) { $name =~ s#^.*/##; $name = "\u$name"; } $name; }; if( $path_h =~ s#::#/#g && $opt_n ){ warn "Nesting of headerfile ignored with -n\n"; } $path_h .= ".h" unless $path_h =~ /\.h$/; my $fullpath = $path_h; $path_h =~ s/,.*$// if $opt_x; $fullpath{$path_h} = $fullpath; # Minor trickery: we can't chdir() before we processed the headers # (so know the name of the extension), but the header may be in the # extension directory... my $tmp_path_h = $path_h; my $rel_path_h = $path_h; my @dirs = @paths; if (not -f $path_h) { my $found; for my $dir (@paths) { $found++, last if -f ($path_h = File::Spec->catfile($dir, $tmp_path_h)); } if ($found) { $rel_path_h = $path_h; $fullpath{$path_h} = $fullpath; } else { (my $epath = $module) =~ s,::,/,g; $epath = File::Spec->catdir('ext', $epath) if -d 'ext'; $rel_path_h = File::Spec->catfile($epath, $tmp_path_h); $path_h = $tmp_path_h; # Used during -x push @dirs, $epath; } } if (!$opt_c) { die "Can't find $tmp_path_h in @dirs\n" if ( ! $opt_f && ! -f "$rel_path_h" ); # Scan the header file (we should deal with nested header files) # Record the names of simple #define constants into const_names # Function prototypes are processed below. open(CH, "<$rel_path_h") || die "Can't open $rel_path_h: $!\n"; defines: while (<CH>) { if ($pre_sub_tri_graphs) { # Preprocess all tri-graphs # including things stuck in quoted string constants. s/\?\?=/#/g; # | ??=| #| s/\?\?\!/|/g; # | ??!| || s/\?\?'/^/g; # | ??'| ^| s/\?\?\(/[/g; # | ??(| [| s/\?\?\)/]/g; # | ??)| ]| s/\?\?\-/~/g; # | ??-| ~| s/\?\?\//\\/g; # | ??/| \| s/\?\?</{/g; # | ??<| {| s/\?\?>/}/g; # | ??>| }| } if (/^[ \t]*#[ \t]*define\s+([\$\w]+)\b(?!\()\s*(?=[^"\s])(.*)/) { my $def = $1; my $rest = $2; $rest =~ s!/\*.*?(\*/|\n)|//.*!!g; # Remove comments $rest =~ s/^\s+//; $rest =~ s/\s+$//; # Cannot do: (-1) and ((LHANDLE)3) are OK: #print("Skip non-wordy $def => $rest\n"), # next defines if $rest =~ /[^\w\$]/; if ($rest =~ /"/) { print("Skip stringy $def => $rest\n") if $opt_d; next defines; } print "Matched $_ ($def)\n" if $opt_d; $seen_define{$def} = $rest; $_ = $def; next if /^_.*_h_*$/i; # special case, but for what? if (defined $opt_p) { if (!/^$opt_p(\d)/) { ++$prefix{$_} if s/^$opt_p//; } else { warn "can't remove $opt_p prefix from '$_'!\n"; } } $prefixless{$def} = $_; if (!$fmask or /$fmask/) { print "... Passes mask of -M.\n" if $opt_d and $fmask; $const_names{$_}++; } } } if (defined $opt_e and !$opt_e) { close(CH); } else { # Work from miniperl too - on "normal" systems my $SEEK_SET = eval 'use Fcntl qw/SEEK_SET/; SEEK_SET' or 0; seek CH, 0, $SEEK_SET; my $src = do { local $/; <CH> }; close CH; no warnings 'uninitialized'; # Remove C and C++ comments $src =~ s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#$2#gs; $src =~ s#//.*$##gm; while ($src =~ /\benum\s*([\w_]*)\s*\{\s([^}]+)\}/gsc) { my ($enum_name, $enum_body) = ($1, $2); # skip enums matching $opt_e next if $opt_e && $enum_name =~ /$opt_e/; my $val = 0; for my $item (split /,/, $enum_body) { next if $item =~ /\A\s*\Z/; my ($key, $declared_val) = $item =~ /(\w+)\s*(?:=\s*(.*))?/; $val = defined($declared_val) && length($declared_val) ? $declared_val : 1 + $val; $seen_define{$key} = $val; $const_names{$key} = { name => $key, macro => 1 }; } } # while (...) } # if (!defined $opt_e or $opt_e) } } } # Save current directory so that C::Scan can use it my $cwd = File::Spec->rel2abs( File::Spec->curdir ); # As Ilya suggested, use a name that contains - and then it can't clash with # the names of any packages. A directory 'fallback' will clash with any # new pragmata down the fallback:: tree, but that seems unlikely. my $constscfname = 'const-c.inc'; my $constsxsfname = 'const-xs.inc'; my $fallbackdirname = 'fallback'; my $ext = chdir 'ext' ? 'ext/' : ''; my @modparts = split(/::/,$module); my $modpname = join('-', @modparts); my $modfname = pop @modparts; my $modpmdir = join '/', 'lib', @modparts; my $modpmname = join '/', $modpmdir, $modfname.'.pm'; if ($opt_O) { warn "Overwriting existing $ext$modpname!!!\n" if -e $modpname; } else { die "Won't overwrite existing $ext$modpname\n" if -e $modpname; } -d "$modpname" || mkpath([$modpname], 0, 0775); chdir($modpname) || die "Can't chdir $ext$modpname: $!\n"; my %types_seen; my %std_types; my $fdecls = []; my $fdecls_parsed = []; my $typedef_rex; my %typedefs_pre; my %known_fnames; my %structs; my @fnames; my @fnames_no_prefix; my %vdecl_hash; my @vdecls; if( ! $opt_X ){ # use XS, unless it was disabled unless ($skip_ppport) { require Devel::PPPort; warn "Writing $ext$modpname/ppport.h\n"; Devel::PPPort::WriteFile('ppport.h') || die "Can't create $ext$modpname/ppport.h: $!\n"; } open(XS, ">$modfname.xs") || die "Can't create $ext$modpname/$modfname.xs: $!\n"; if ($opt_x) { warn "Scanning typemaps...\n"; get_typemap(); my @td; my @good_td; my $addflags = $opt_F || ''; foreach my $filename (@path_h) { my $c; my $filter; if ($fullpath{$filename} =~ /,/) { $filename = $`; $filter = $'; } warn "Scanning $filename for functions...\n"; my @styles = $Config{gccversion} ? qw(C++ C9X GNU) : qw(C++ C9X); $c = new C::Scan 'filename' => $filename, 'filename_filter' => $filter, 'add_cppflags' => $addflags, 'c_styles' => \@styles; $c->set('includeDirs' => ["$Config::Config{archlib}/CORE", $cwd]); $c->get('keywords')->{'__restrict'} = 1; push @$fdecls_parsed, @{ $c->get('parsed_fdecls') }; push(@$fdecls, @{$c->get('fdecls')}); push @td, @{$c->get('typedefs_maybe')}; if ($opt_a) { my $structs = $c->get('typedef_structs'); @structs{keys %$structs} = values %$structs; } if ($opt_m) { %vdecl_hash = %{ $c->get('vdecl_hash') }; @vdecls = sort keys %vdecl_hash; for (local $_ = 0; $_ < @vdecls; ++$_) { my $var = $vdecls[$_]; my($type, $post) = @{ $vdecl_hash{$var} }; if (defined $post) { warn "Can't handle variable '$type $var $post', skipping.\n"; splice @vdecls, $_, 1; redo; } $type = normalize_type($type); $vdecl_hash{$var} = $type; } } unless ($tmask_all) { warn "Scanning $filename for typedefs...\n"; my $td = $c->get('typedef_hash'); # eval {require 'dumpvar.pl'; ::dumpValue($td)} or warn $@ if $opt_d; my @f_good_td = grep $td->{$_}[1] eq '', keys %$td; push @good_td, @f_good_td; @typedefs_pre{@f_good_td} = map $_->[0], @$td{@f_good_td}; } } { local $" = '|'; $typedef_rex = qr(\b(?<!struct )(?:@good_td)\b) if @good_td; } %known_fnames = map @$_[1,3], @$fdecls_parsed; # [1,3] is NAME, FULLTEXT if ($fmask) { my @good; for my $i (0..$#$fdecls_parsed) { next unless $fdecls_parsed->[$i][1] =~ /$fmask/; # [1] is NAME push @good, $i; print "... Function $fdecls_parsed->[$i][1] passes -M mask.\n" if $opt_d; } $fdecls = [@$fdecls[@good]]; $fdecls_parsed = [@$fdecls_parsed[@good]]; } @fnames = sort map $_->[1], @$fdecls_parsed; # 1 is NAME # Sort declarations: { my %h = map( ($_->[1], $_), @$fdecls_parsed); $fdecls_parsed = [ @h{@fnames} ]; } @fnames_no_prefix = @fnames; @fnames_no_prefix = sort map { ++$prefix{$_} if s/^$opt_p(?!\d)//; $_ } @fnames_no_prefix if defined $opt_p; # Remove macros which expand to typedefs print "Typedefs are @td.\n" if $opt_d; my %td = map {($_, $_)} @td; # Add some other possible but meaningless values for macros for my $k (qw(char double float int long short unsigned signed void)) { $td{"$_$k"} = "$_$k" for ('', 'signed ', 'unsigned '); } # eval {require 'dumpvar.pl'; ::dumpValue( [\@td, \%td] ); 1} or warn $@; my $n = 0; my %bad_macs; while (keys %td > $n) { $n = keys %td; my ($k, $v); while (($k, $v) = each %seen_define) { # print("found '$k'=>'$v'\n"), $bad_macs{$k} = $td{$k} = $td{$v} if exists $td{$v}; } } # Now %bad_macs contains names of bad macros for my $k (keys %bad_macs) { delete $const_names{$prefixless{$k}}; print "Ignoring macro $k which expands to a typedef name '$bad_macs{$k}'\n" if $opt_d; } } } my (@const_specs, @const_names); for (sort(keys(%const_names))) { my $v = $const_names{$_}; push(@const_specs, ref($v) ? $v : $_); push(@const_names, $_); } -d $modpmdir || mkpath([$modpmdir], 0, 0775); open(PM, ">$modpmname") || die "Can't create $ext$modpname/$modpmname: $!\n"; $" = "\n\t"; warn "Writing $ext$modpname/$modpmname\n"; print PM <<"END"; package $module; use $compat_version; END print PM <<"END" unless $skip_strict; use strict; END print PM "use warnings;\n" unless $skip_warnings or $compat_version < 5.006; unless( $opt_X || $opt_c || $opt_A ){ # we'll have an AUTOLOAD(), and it will have $AUTOLOAD and # will want Carp. print PM <<'END'; use Carp; END } print PM <<'END' unless $skip_exporter; require Exporter; END my $use_Dyna = (not $opt_X and $compat_version < 5.006 and not $use_xsloader); print PM <<"END" if $use_Dyna; # use DynaLoader, unless XS was disabled require DynaLoader; END # Are we using AutoLoader or not? unless ($skip_autoloader) { # no autoloader whatsoever. unless ($opt_c) { # we're doing the AUTOLOAD print PM "use AutoLoader;\n"; } else { print PM "use AutoLoader qw(AUTOLOAD);\n" } } if ( $compat_version < 5.006 ) { my $vars = '$VERSION @ISA'; $vars .= ' @EXPORT @EXPORT_OK %EXPORT_TAGS' unless $skip_exporter; $vars .= ' $AUTOLOAD' unless $opt_X || $opt_c || $opt_A; $vars .= ' $XS_VERSION' if $opt_B && !$opt_X; print PM "use vars qw($vars);"; } # Determine @ISA. my @modISA; push @modISA, 'Exporter' unless $skip_exporter; push @modISA, 'DynaLoader' if $use_Dyna; # no XS my $myISA = "our \@ISA = qw(@modISA);"; $myISA =~ s/^our // if $compat_version < 5.006; print PM "\n$myISA\n\n"; my @exported_names = (@const_names, @fnames_no_prefix, map '$'.$_, @vdecls); my $tmp=''; $tmp .= <<"END" unless $skip_exporter; # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. # This allows declaration use $module ':all'; # If you do not need this, moving things directly into \@EXPORT or \@EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( @exported_names ) ] ); our \@EXPORT_OK = ( \@{ \$EXPORT_TAGS{'all'} } ); our \@EXPORT = qw( @const_names ); END $tmp .= "our \$VERSION = '$TEMPLATE_VERSION';\n"; if ($opt_B) { $tmp .= "our \$XS_VERSION = \$VERSION;\n" unless $opt_X; $tmp .= "\$VERSION = eval \$VERSION; # see L<perlmodstyle>\n"; } $tmp .= "\n"; $tmp =~ s/^our //mg if $compat_version < 5.006; print PM $tmp; if (@vdecls) { printf PM "our(@{[ join ', ', map '$'.$_, @vdecls ]});\n\n"; } print PM autoload ($module, $compat_version) unless $opt_c or $opt_X; if( ! $opt_X ){ # print bootstrap, unless XS is disabled if ($use_Dyna) { $tmp = <<"END"; bootstrap $module \$VERSION; END } else { $tmp = <<"END"; require XSLoader; XSLoader::load('$module', \$VERSION); END } $tmp =~ s:\$VERSION:\$XS_VERSION:g if $opt_B; print PM $tmp; } # tying the variables can happen only after bootstrap if (@vdecls) { printf PM <<END; { @{[ join "\n", map " _tievar_$_(\$$_);", @vdecls ]} } END } my $after; if( $opt_P ){ # if POD is disabled $after = '__END__'; } else { $after = '=cut'; } print PM <<"END"; # Preloaded methods go here. END print PM <<"END" unless $opt_A; # Autoload methods go after $after, and are processed by the autosplit program. END print PM <<"END"; 1; __END__ END my ($email,$author,$licence); eval { my $username; ($username,$author) = (getpwuid($>))[0,6]; if (defined $username && defined $author) { $author =~ s/,.*$//; # in case of sub fields my $domain = $Config{'mydomain'}; $domain =~ s/^\.//; $email = "$username\@$domain"; } }; $author =~ s/'/\\'/g if defined $author; $author ||= "A. U. Thor"; $email ||= 'a.u.thor@a.galaxy.far.far.away'; $licence = sprintf << "DEFAULT", $^V; Copyright (C) ${\(1900 + (localtime) [5])} by $author This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version %vd or, at your option, any later version of Perl 5 you may have available. DEFAULT my $revhist = ''; $revhist = <<EOT if $opt_C; # #=head1 HISTORY # #=over 8 # #=item $TEMPLATE_VERSION # #Original version; created by h2xs $H2XS_VERSION with options # # @ARGS # #=back # EOT my $exp_doc = $skip_exporter ? '' : <<EOD; # #=head2 EXPORT # #None by default. # EOD if (@const_names and not $opt_P) { $exp_doc .= <<EOD unless $skip_exporter; #=head2 Exportable constants # # @{[join "\n ", @const_names]} # EOD } if (defined $fdecls and @$fdecls and not $opt_P) { $exp_doc .= <<EOD unless $skip_exporter; #=head2 Exportable functions # EOD # $exp_doc .= <<EOD if $opt_p; #When accessing these functions from Perl, prefix C<$opt_p> should be removed. # #EOD $exp_doc .= <<EOD unless $skip_exporter; # @{[join "\n ", @known_fnames{@fnames}]} # EOD } my $meth_doc = ''; if ($opt_x && $opt_a) { my($name, $struct); $meth_doc .= accessor_docs($name, $struct) while ($name, $struct) = each %structs; } # Prefix the default licence with hash symbols. # Is this just cargo cult - it seems that the first thing that happens to this # block is that all the hashes are then s///g out. my $licence_hash = $licence; $licence_hash =~ s/^/#/gm; my $pod; $pod = <<"END" unless $opt_P; ## Below is stub documentation for your module. You'd better edit it! # #=head1 NAME # #$module - Perl extension for blah blah blah # #=head1 SYNOPSIS # # use $module; # blah blah blah # #=head1 DESCRIPTION # #Stub documentation for $module, created by h2xs. It looks like the #author of the extension was negligent enough to leave the stub #unedited. # #Blah blah blah. $exp_doc$meth_doc$revhist # #=head1 SEE ALSO # #Mention other useful documentation such as the documentation of #related modules or operating system documentation (such as man pages #in UNIX), or any relevant external documentation such as RFCs or #standards. # #If you have a mailing list set up for your module, mention it here. # #If you have a web site set up for your module, mention it here. # #=head1 AUTHOR # #$author, E<lt>${email}E<gt> # #=head1 COPYRIGHT AND LICENSE # $licence_hash # #=cut END $pod =~ s/^\#//gm unless $opt_P; print PM $pod unless $opt_P; close PM; if( ! $opt_X ){ # print XS, unless it is disabled warn "Writing $ext$modpname/$modfname.xs\n"; print XS <<"END"; #include "EXTERN.h" #include "perl.h" #include "XSUB.h" END print XS <<"END" unless $skip_ppport; #include "ppport.h" END if( @path_h ){ foreach my $path_h (@path_h_ini) { my($h) = $path_h; $h =~ s#^/usr/include/##; if ($^O eq 'VMS') { $h =~ s#.*vms\]#sys/# or $h =~ s#.*[:>\]]##; } print XS qq{#include <$h>\n}; } print XS "\n"; } print XS <<"END" if $opt_g; /* Global Data */ #define MY_CXT_KEY "${module}::_guts" XS_VERSION typedef struct { /* Put Global Data in here */ int dummy; /* you can access this elsewhere as MY_CXT.dummy */ } my_cxt_t; START_MY_CXT END my %pointer_typedefs; my %struct_typedefs; sub td_is_pointer { my $type = shift; my $out = $pointer_typedefs{$type}; return $out if defined $out; my $otype = $type; $out = ($type =~ /\*$/); # This converts only the guys which do not have trailing part in the typedef if (not $out and $typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) { $type = normalize_type($type); print "Is-Pointer: Type mutation via typedefs: $otype ==> $type\n" if $opt_d; $out = td_is_pointer($type); } return ($pointer_typedefs{$otype} = $out); } sub td_is_struct { my $type = shift; my $out = $struct_typedefs{$type}; return $out if defined $out; my $otype = $type; $out = ($type =~ /^(struct|union)\b/) && !td_is_pointer($type); # This converts only the guys which do not have trailing part in the typedef if (not $out and $typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) { $type = normalize_type($type); print "Is-Struct: Type mutation via typedefs: $otype ==> $type\n" if $opt_d; $out = td_is_struct($type); } return ($struct_typedefs{$otype} = $out); } print_tievar_subs(\*XS, $_, $vdecl_hash{$_}) for @vdecls; if( ! $opt_c ) { # We write the "sample" files used when this module is built by perl without # ExtUtils::Constant. # h2xs will later check that these are the same as those generated by the # code embedded into Makefile.PL unless (-d $fallbackdirname) { mkdir "$fallbackdirname" or die "Cannot mkdir $fallbackdirname: $!\n"; } warn "Writing $ext$modpname/$fallbackdirname/$constscfname\n"; warn "Writing $ext$modpname/$fallbackdirname/$constsxsfname\n"; my $cfallback = File::Spec->catfile($fallbackdirname, $constscfname); my $xsfallback = File::Spec->catfile($fallbackdirname, $constsxsfname); WriteConstants ( C_FILE => $cfallback, XS_FILE => $xsfallback, DEFAULT_TYPE => $opt_t, NAME => $module, NAMES => \@const_specs, ); print XS "#include \"$constscfname\"\n"; } my $prefix = defined $opt_p ? "PREFIX = $opt_p" : ''; # Now switch from C to XS by issuing the first MODULE declaration: print XS <<"END"; MODULE = $module PACKAGE = $module $prefix END # If a constant() function was #included then output a corresponding # XS declaration: print XS "INCLUDE: $constsxsfname\n" unless $opt_c; print XS <<"END" if $opt_g; BOOT: { MY_CXT_INIT; /* If any of the fields in the my_cxt_t struct need to be initialised, do it here. */ } END foreach (sort keys %const_xsub) { print XS <<"END"; char * $_() CODE: #ifdef $_ RETVAL = $_; #else croak("Your vendor has not defined the $module macro $_"); #endif OUTPUT: RETVAL END } my %seen_decl; my %typemap; sub print_decl { my $fh = shift; my $decl = shift; my ($type, $name, $args) = @$decl; return if $seen_decl{$name}++; # Need to do the same for docs as well? my @argnames = map {$_->[1]} @$args; my @argtypes = map { normalize_type( $_->[0], 1 ) } @$args; if ($opt_k) { s/^\s*const\b\s*// for @argtypes; } my @argarrays = map { $_->[4] || '' } @$args; my $numargs = @$args; if ($numargs and $argtypes[-1] eq '...') { $numargs--; $argnames[-1] = '...'; } local $" = ', '; $type = normalize_type($type, 1); print $fh <<"EOP"; $type $name(@argnames) EOP for my $arg (0 .. $numargs - 1) { print $fh <<"EOP"; $argtypes[$arg] $argnames[$arg]$argarrays[$arg] EOP } } sub print_tievar_subs { my($fh, $name, $type) = @_; print $fh <<END; I32 _get_$name(IV index, SV *sv) { dSP; PUSHMARK(SP); XPUSHs(sv); PUTBACK; (void)call_pv("$module\::_get_$name", G_DISCARD); return (I32)0; } I32 _set_$name(IV index, SV *sv) { dSP; PUSHMARK(SP); XPUSHs(sv); PUTBACK; (void)call_pv("$module\::_set_$name", G_DISCARD); return (I32)0; } END } sub print_tievar_xsubs { my($fh, $name, $type) = @_; print $fh <<END; void _tievar_$name(sv) SV* sv PREINIT: struct ufuncs uf; CODE: uf.uf_val = &_get_$name; uf.uf_set = &_set_$name; uf.uf_index = (IV)&_get_$name; sv_magic(sv, 0, 'U', (char*)&uf, sizeof(uf)); void _get_$name(THIS) $type THIS = NO_INIT CODE: THIS = $name; OUTPUT: SETMAGIC: DISABLE THIS void _set_$name(THIS) $type THIS CODE: $name = THIS; END } sub print_accessors { my($fh, $name, $struct) = @_; return unless defined $struct && $name !~ /\s|_ANON/; $name = normalize_type($name); my $ptrname = normalize_type("$name *"); print $fh <<"EOF"; MODULE = $module PACKAGE = ${name} $prefix $name * _to_ptr(THIS) $name THIS = NO_INIT PROTOTYPE: \$ CODE: if (sv_derived_from(ST(0), "$name")) { STRLEN len; char *s = SvPV((SV*)SvRV(ST(0)), len); if (len != sizeof(THIS)) croak("Size \%d of packed data != expected \%d", len, sizeof(THIS)); RETVAL = ($name *)s; } else croak("THIS is not of type $name"); OUTPUT: RETVAL $name new(CLASS) char *CLASS = NO_INIT PROTOTYPE: \$ CODE: Zero((void*)&RETVAL, sizeof(RETVAL), char); OUTPUT: RETVAL MODULE = $module PACKAGE = ${name}Ptr $prefix EOF my @items = @$struct; while (@items) { my $item = shift @items; if ($item->[0] =~ /_ANON/) { if (defined $item->[2]) { push @items, map [ @$_[0, 1], "$item->[2]_$_->[2]", "$item->[2].$_->[2]", ], @{ $structs{$item->[0]} }; } else { push @items, @{ $structs{$item->[0]} }; } } else { my $type = normalize_type($item->[0]); my $ttype = $structs{$type} ? normalize_type("$type *") : $type; print $fh <<"EOF"; $ttype $item->[2](THIS, __value = NO_INIT) $ptrname THIS $type __value PROTOTYPE: \$;\$ CODE: if (items > 1) THIS->$item->[-1] = __value; RETVAL = @{[ $type eq $ttype ? "THIS->$item->[-1]" : "&(THIS->$item->[-1])" ]}; OUTPUT: RETVAL EOF } } } sub accessor_docs { my($name, $struct) = @_; return unless defined $struct && $name !~ /\s|_ANON/; $name = normalize_type($name); my $ptrname = $name . 'Ptr'; my @items = @$struct; my @list; while (@items) { my $item = shift @items; if ($item->[0] =~ /_ANON/) { if (defined $item->[2]) { push @items, map [ @$_[0, 1], "$item->[2]_$_->[2]", "$item->[2].$_->[2]", ], @{ $structs{$item->[0]} }; } else { push @items, @{ $structs{$item->[0]} }; } } else { push @list, $item->[2]; } } my $methods = (join '(...)>, C<', @list) . '(...)'; my $pod = <<"EOF"; # #=head2 Object and class methods for C<$name>/C<$ptrname> # #The principal Perl representation of a C object of type C<$name> is an #object of class C<$ptrname> which is a reference to an integer #representation of a C pointer. To create such an object, one may use #a combination # # my \$buffer = $name->new(); # my \$obj = \$buffer->_to_ptr(); # #This exersizes the following two methods, and an additional class #C<$name>, the internal representation of which is a reference to a #packed string with the C structure. Keep in mind that \$buffer should #better survive longer than \$obj. # #=over # #=item C<\$object_of_type_$name-E<gt>_to_ptr()> # #Converts an object of type C<$name> to an object of type C<$ptrname>. # #=item C<$name-E<gt>new()> # #Creates an empty object of type C<$name>. The corresponding packed #string is zeroed out. # #=item C<$methods> # #return the current value of the corresponding element if called #without additional arguments. Set the element to the supplied value #(and return the new value) if called with an additional argument. # #Applicable to objects of type C<$ptrname>. # #=back # EOF $pod =~ s/^\#//gm; return $pod; } # Should be called before any actual call to normalize_type(). sub get_typemap { # We do not want to read ./typemap by obvios reasons. my @tm = qw(../../../typemap ../../typemap ../typemap); my $stdtypemap = "$Config::Config{privlib}/ExtUtils/typemap"; unshift @tm, $stdtypemap; my $proto_re = "[" . quotemeta('\$%&*@;') . "]" ; # Start with useful default values $typemap{float} = 'T_NV'; foreach my $typemap (@tm) { next unless -e $typemap ; # skip directories, binary files etc. warn " Scanning $typemap\n"; warn("Warning: ignoring non-text typemap file '$typemap'\n"), next unless -T $typemap ; open(TYPEMAP, $typemap) or warn ("Warning: could not open typemap file '$typemap': $!\n"), next; my $mode = 'Typemap'; while (<TYPEMAP>) { next if /^\s*\#/; if (/^INPUT\s*$/) { $mode = 'Input'; next; } elsif (/^OUTPUT\s*$/) { $mode = 'Output'; next; } elsif (/^TYPEMAP\s*$/) { $mode = 'Typemap'; next; } elsif ($mode eq 'Typemap') { next if /^\s*($|\#)/ ; my ($type, $image); if ( ($type, $image) = /^\s*(.*?\S)\s+(\S+)\s*($proto_re*)\s*$/o # This may reference undefined functions: and not ($image eq 'T_PACKED' and $typemap eq $stdtypemap)) { $typemap{normalize_type($type)} = $image; } } } close(TYPEMAP) or die "Cannot close $typemap: $!"; } %std_types = %types_seen; %types_seen = (); } sub normalize_type { # Second arg: do not strip const's before \* my $type = shift; my $do_keep_deep_const = shift; # If $do_keep_deep_const this is heuristical only my $keep_deep_const = ($do_keep_deep_const ? '\b(?![^(,)]*\*)' : ''); my $ignore_mods = "(?:\\b(?:(?:__const__|const)$keep_deep_const|static|inline|__inline__)\\b\\s*)*"; if ($do_keep_deep_const) { # Keep different compiled /RExen/o separately! $type =~ s/$ignore_mods//go; } else { $type =~ s/$ignore_mods//go; } $type =~ s/([^\s\w])/ $1 /g; $type =~ s/\s+$//; $type =~ s/^\s+//; $type =~ s/\s+/ /g; $type =~ s/\* (?=\*)/*/g; $type =~ s/\. \. \./.../g; $type =~ s/ ,/,/g; $types_seen{$type}++ unless $type eq '...' or $type eq 'void' or $std_types{$type}; $type; } my $need_opaque; sub assign_typemap_entry { my $type = shift; my $otype = $type; my $entry; if ($tmask and $type =~ /$tmask/) { print "Type $type matches -o mask\n" if $opt_d; $entry = (td_is_struct($type) ? "T_OPAQUE_STRUCT" : "T_PTROBJ"); } elsif ($typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) { $type = normalize_type $type; print "Type mutation via typedefs: $otype ==> $type\n" if $opt_d; $entry = assign_typemap_entry($type); } # XXX good do better if our UV happens to be long long return "T_NV" if $type =~ /^(unsigned\s+)?long\s+(long|double)\z/; $entry ||= $typemap{$otype} || (td_is_struct($type) ? "T_OPAQUE_STRUCT" : "T_PTROBJ"); $typemap{$otype} = $entry; $need_opaque = 1 if $entry eq "T_OPAQUE_STRUCT"; return $entry; } for (@vdecls) { print_tievar_xsubs(\*XS, $_, $vdecl_hash{$_}); } if ($opt_x) { for my $decl (@$fdecls_parsed) { print_decl(\*XS, $decl) } if ($opt_a) { while (my($name, $struct) = each %structs) { print_accessors(\*XS, $name, $struct); } } } close XS; if (%types_seen) { my $type; warn "Writing $ext$modpname/typemap\n"; open TM, ">typemap" or die "Cannot open typemap file for write: $!"; for $type (sort keys %types_seen) { my $entry = assign_typemap_entry $type; print TM $type, "\t" x (5 - int((length $type)/8)), "\t$entry\n" } print TM <<'EOP' if $need_opaque; # Older Perls do not have correct entry ############################################################################# INPUT T_OPAQUE_STRUCT if (sv_derived_from($arg, \"${ntype}\")) { STRLEN len; char *s = SvPV((SV*)SvRV($arg), len); if (len != sizeof($var)) croak(\"Size %d of packed data != expected %d\", len, sizeof($var)); $var = *($type *)s; } else croak(\"$var is not of type ${ntype}\") ############################################################################# OUTPUT T_OPAQUE_STRUCT sv_setref_pvn($arg, \"${ntype}\", (char *)&$var, sizeof($var)); EOP close TM or die "Cannot close typemap file for write: $!"; } } # if( ! $opt_X ) warn "Writing $ext$modpname/Makefile.PL\n"; open(PL, ">Makefile.PL") || die "Can't create $ext$modpname/Makefile.PL: $!\n"; my $prereq_pm = ''; if ( $compat_version < 5.00702 and $new_test ) { $prereq_pm .= q%'Test::More' => 0, %; } if ( $compat_version < 5.00600 and !$opt_X and $use_xsloader) { $prereq_pm .= q%'XSLoader' => 0, %; } print PL <<"END"; use $compat_version; use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( NAME => '$module', VERSION_FROM => '$modpmname', # finds \$VERSION PREREQ_PM => {$prereq_pm}, # e.g., Module::Name => 1.1 (\$] >= 5.005 ? ## Add these new keywords supported since 5.005 (ABSTRACT_FROM => '$modpmname', # retrieve abstract from module AUTHOR => '$author <$email>') : ()), END if (!$opt_X) { # print C stuff, unless XS is disabled $opt_F = '' unless defined $opt_F; my $I = (((glob '*.h') || (glob '*.hh')) ? '-I.' : ''); my $Ihelp = ($I ? '-I. ' : ''); my $Icomment = ($I ? '' : <<EOC); # Insert -I. if you add *.h files later: EOC print PL <<END; LIBS => ['$extralibs'], # e.g., '-lm' DEFINE => '$opt_F', # e.g., '-DHAVE_SOMETHING' $Icomment INC => '$I', # e.g., '${Ihelp}-I/usr/include/other' END my $C = grep {$_ ne "$modfname.c"} (glob '*.c'), (glob '*.cc'), (glob '*.C'); my $Cpre = ($C ? '' : '# '); my $Ccomment = ($C ? '' : <<EOC); # Un-comment this if you add C files to link with later: EOC print PL <<END; $Ccomment ${Cpre}OBJECT => '\$(O_FILES)', # link all the C files too END } # ' # Grr print PL ");\n"; if (!$opt_c) { my $generate_code = WriteMakefileSnippet ( C_FILE => $constscfname, XS_FILE => $constsxsfname, DEFAULT_TYPE => $opt_t, NAME => $module, NAMES => \@const_specs, ); print PL <<"END"; if (eval {require ExtUtils::Constant; 1}) { # If you edit these definitions to change the constants used by this module, # you will need to use the generated $constscfname and $constsxsfname # files to replace their "fallback" counterparts before distributing your # changes. $generate_code } else { use File::Copy; use File::Spec; foreach my \$file ('$constscfname', '$constsxsfname') { my \$fallback = File::Spec->catfile('$fallbackdirname', \$file); copy (\$fallback, \$file) or die "Can't copy \$fallback to \$file: \$!"; } } END eval $generate_code; if ($@) { warn <<"EOM"; Attempting to test constant code in $ext$modpname/Makefile.PL: $generate_code __END__ gave unexpected error $@ Please report the circumstances of this bug in h2xs version $H2XS_VERSION using the perlbug script. EOM } else { my $fail; foreach my $file ($constscfname, $constsxsfname) { my $fallback = File::Spec->catfile($fallbackdirname, $file); if (compare($file, $fallback)) { warn << "EOM"; Files "$ext$modpname/$fallbackdirname/$file" and "$ext$modpname/$file" differ. EOM $fail++; } } if ($fail) { warn fill ('','', <<"EOM") . "\n"; It appears that the code in $ext$modpname/Makefile.PL does not autogenerate the files $ext$modpname/$constscfname and $ext$modpname/$constsxsfname correctly. Please report the circumstances of this bug in h2xs version $H2XS_VERSION using the perlbug script. EOM } else { unlink $constscfname, $constsxsfname; } } } close(PL) || die "Can't close $ext$modpname/Makefile.PL: $!\n"; # Create a simple README since this is a CPAN requirement # and it doesnt hurt to have one warn "Writing $ext$modpname/README\n"; open(RM, ">README") || die "Can't create $ext$modpname/README:$!\n"; my $thisyear = (gmtime)[5] + 1900; my $rmhead = "$modpname version $TEMPLATE_VERSION"; my $rmheadeq = "=" x length($rmhead); my $rm_prereq; if ( $compat_version < 5.00702 and $new_test ) { $rm_prereq = 'Test::More'; } else { $rm_prereq = 'blah blah blah'; } print RM <<_RMEND_; $rmhead $rmheadeq The README is used to introduce the module and provide instructions on how to install the module, any machine dependencies it may have (for example C compilers and installed libraries) and any other information that should be provided before the module is installed. A README file is required for CPAN modules since CPAN extracts the README file from a module distribution so that people browsing the archive can use it get an idea of the modules uses. It is usually a good idea to provide version information here so that people can decide whether fixes for the module are worth downloading. INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DEPENDENCIES This module requires these other modules and libraries: $rm_prereq COPYRIGHT AND LICENCE Put the correct copyright and licence information here. $licence _RMEND_ close(RM) || die "Can't close $ext$modpname/README: $!\n"; my $testdir = "t"; my $testfile = "$testdir/$modpname.t"; unless (-d "$testdir") { mkdir "$testdir" or die "Cannot mkdir $testdir: $!\n"; } warn "Writing $ext$modpname/$testfile\n"; my $tests = @const_names ? 2 : 1; open EX, ">$testfile" or die "Can't create $ext$modpname/$testfile: $!\n"; print EX <<_END_; # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl $modpname.t' ######################### # change 'tests => $tests' to 'tests => last_test_to_print'; _END_ my $test_mod = 'Test::More'; if ( $old_test or ($compat_version < 5.007 and not $new_test )) { my $test_mod = 'Test'; print EX <<_END_; use Test; BEGIN { plan tests => $tests }; use $module; ok(1); # If we made it this far, we're ok. _END_ if (@const_names) { my $const_names = join " ", @const_names; print EX <<'_END_'; my $fail; foreach my $constname (qw( _END_ print EX wrap ("\t", "\t", $const_names); print EX (")) {\n"); print EX <<_END_; next if (eval "my \\\$a = \$constname; 1"); if (\$\@ =~ /^Your vendor has not defined $module macro \$constname/) { print "# pass: \$\@"; } else { print "# fail: \$\@"; \$fail = 1; } } if (\$fail) { print "not ok 2\\n"; } else { print "ok 2\\n"; } _END_ } } else { print EX <<_END_; use Test::More tests => $tests; BEGIN { use_ok('$module') }; _END_ if (@const_names) { my $const_names = join " ", @const_names; print EX <<'_END_'; my $fail = 0; foreach my $constname (qw( _END_ print EX wrap ("\t", "\t", $const_names); print EX (")) {\n"); print EX <<_END_; next if (eval "my \\\$a = \$constname; 1"); if (\$\@ =~ /^Your vendor has not defined $module macro \$constname/) { print "# pass: \$\@"; } else { print "# fail: \$\@"; \$fail = 1; } } ok( \$fail == 0 , 'Constants' ); _END_ } } print EX <<_END_; ######################### # Insert your test code below, the $test_mod module is use()ed here so read # its man page ( perldoc $test_mod ) for help writing this test script. _END_ close(EX) || die "Can't close $ext$modpname/$testfile: $!\n"; unless ($opt_C) { warn "Writing $ext$modpname/Changes\n"; $" = ' '; open(EX, ">Changes") || die "Can't create $ext$modpname/Changes: $!\n"; @ARGS = map {/[\s\"\'\`\$*?^|&<>\[\]\{\}\(\)]/ ? "'$_'" : $_} @ARGS; print EX <<EOP; Revision history for Perl extension $module. $TEMPLATE_VERSION @{[scalar localtime]} \t- original version; created by h2xs $H2XS_VERSION with options \t\t@ARGS EOP close(EX) || die "Can't close $ext$modpname/Changes: $!\n"; } warn "Writing $ext$modpname/MANIFEST\n"; open(MANI,'>MANIFEST') or die "Can't create MANIFEST: $!"; my @files = grep { -f } (<*>, <t/*>, <$fallbackdirname/*>, <$modpmdir/*>); if (!@files) { eval {opendir(D,'.');}; unless ($@) { @files = readdir(D); closedir(D); } } if (!@files) { @files = map {chomp && $_} `ls`; } if ($^O eq 'VMS') { foreach (@files) { # Clip trailing '.' for portability -- non-VMS OSs don't expect it s%\.$%%; # Fix up for case-sensitive file systems s/$modfname/$modfname/i && next; $_ = "\U$_" if $_ eq 'manifest' or $_ eq 'changes'; $_ = 'Makefile.PL' if $_ eq 'makefile.pl'; } } print MANI join("\n",@files), "\n"; close MANI;
Close