OXIESEC PANEL
- Current Dir:
/
/
snap
/
core
/
17210
/
usr
/
bin
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
π
..
-
10/02/2024 07:52:54 PM
rwxr-xr-x
π
2to3-3.5
96 bytes
09/30/2024 02:20:29 PM
rwxr-xr-x
π
[
50.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
aa-enabled
22.16 KB
06/29/2023 11:30:47 AM
rwxr-xr-x
π
abootimg
18.27 KB
07/28/2011 06:29:01 AM
rwxr-xr-x
π
abootimg-pack-initrd
362 bytes
07/28/2011 06:29:00 AM
rwxr-xr-x
π
abootimg-unpack-initrd
272 bytes
07/28/2011 06:29:00 AM
rwxr-xr-x
π
addpart
18.45 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
arch
30.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
awk
642.72 KB
09/11/2023 06:21:20 PM
rwxr-xr-x
π
base32
38.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
base64
38.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
basename
30.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
bashbug
6.79 KB
04/19/2022 01:41:38 PM
rwxr-xr-x
π
bootctl
74.44 KB
03/03/2023 04:27:52 AM
rwxr-xr-x
π
busctl
363.21 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
c_rehash
6.05 KB
03/12/2024 01:38:19 PM
rwxr-xr-x
π
captoinfo
70.71 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
catchsegv
3.26 KB
05/08/2024 03:46:54 PM
rwxr-xr-x
π
cautious-launcher
853 bytes
10/30/2015 03:39:30 PM
rwxr-xr-x
π
cgm
17.99 KB
01/18/2016 06:55:49 PM
rwxr-xr-x
π
chacl
13.99 KB
04/21/2017 08:44:54 PM
rwxr-xr-x
π
chage
60.88 KB
02/07/2024 10:59:49 AM
rwxr-xr-x
π
chardet3
309 bytes
02/10/2016 05:12:09 PM
rwxr-xr-x
π
chardetect3
309 bytes
02/10/2016 05:12:09 PM
rwxr-xr-x
π
chattr
10.34 KB
06/03/2022 08:47:31 PM
rwxr-xr-x
π
chcon
62.92 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
chfn
70.14 KB
02/07/2024 10:59:49 AM
rwxr-xr-x
π
chrt
26.67 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
chsh
39.48 KB
02/07/2024 10:59:49 AM
rwxr-xr-x
π
ckbcomp
144.19 KB
04/10/2019 09:25:58 PM
rwxr-xr-x
π
cksum
30.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
clear
6.08 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
clear_console
10.27 KB
04/19/2022 01:41:45 PM
rwxr-xr-x
π
cloud-id
310 bytes
04/25/2023 09:28:48 PM
rwxr-xr-x
π
cloud-init
314 bytes
04/25/2023 09:28:48 PM
rwxr-xr-x
π
cloud-init-per
2.06 KB
03/19/2021 02:37:22 PM
rwxr-xr-x
π
cmp
42.67 KB
12/26/2015 11:11:28 PM
rwxr-xr-x
π
codepage
10.29 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
comm
34.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
compose
17.55 KB
10/30/2015 03:39:30 PM
rwxr-xr-x
π
console-conf
2.86 KB
01/25/2017 10:18:22 PM
rwxr-xr-x
π
crontab
35.23 KB
05/10/2022 10:15:25 PM
rwxr-xr-x
π
csplit
46.86 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
ctstat
18.68 KB
04/16/2019 12:37:11 PM
rwxr-xr-x
π
cut
38.8 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
dbus-cleanup-sockets
9.98 KB
09/14/2023 10:58:48 AM
rwxr-xr-x
π
dbus-daemon
218.95 KB
09/14/2023 10:58:48 AM
rwxr-xr-x
π
dbus-monitor
21.99 KB
09/14/2023 10:58:48 AM
rwxr-xr-x
π
dbus-run-session
9.98 KB
09/14/2023 10:58:48 AM
rwxr-xr-x
π
dbus-send
21.98 KB
09/14/2023 10:58:48 AM
rwxr-xr-x
π
dbus-update-activation-environment
13.98 KB
09/14/2023 10:58:48 AM
rwxr-xr-x
π
dbus-uuidgen
9.98 KB
09/14/2023 10:58:48 AM
rwxr-xr-x
π
deallocvt
10.3 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
deb-systemd-helper
17.99 KB
02/29/2016 12:24:38 PM
rwxr-xr-x
π
deb-systemd-invoke
4.37 KB
02/29/2016 12:24:38 PM
rwxr-xr-x
π
debconf
2.79 KB
05/08/2019 06:33:33 PM
rwxr-xr-x
π
debconf-apt-progress
11.27 KB
05/08/2019 06:33:33 PM
rwxr-xr-x
π
debconf-communicate
608 bytes
05/08/2019 06:33:33 PM
rwxr-xr-x
π
debconf-copydb
1.68 KB
05/08/2019 06:33:33 PM
rwxr-xr-x
π
debconf-escape
647 bytes
05/08/2019 06:33:33 PM
rwxr-xr-x
π
debconf-set-selections
2.87 KB
05/08/2019 06:33:33 PM
rwxr-xr-x
π
debconf-show
1.78 KB
05/08/2019 06:33:33 PM
rwxr-xr-x
π
delpart
18.45 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
dh_bash-completion
2.49 KB
08/18/2015 07:47:29 PM
rwxr-xr-x
π
dh_pypy
11.71 KB
08/16/2019 12:59:18 AM
rwxr-xr-x
π
dh_python3
11.91 KB
08/16/2019 12:59:18 AM
rwxr-xr-x
π
diff
123.08 KB
12/26/2015 11:11:28 PM
rwxr-xr-x
π
diff3
54.86 KB
12/26/2015 11:11:28 PM
rwxr-xr-x
π
dircolors
38.71 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
dirname
30.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
dotlockfile
14.51 KB
12/07/2013 03:08:22 AM
rwxr-xr-x
π
dpkg-deb
131.43 KB
05/27/2022 10:37:03 AM
rwxr-xr-x
π
du
119.17 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
dumpimage
139.06 KB
06/12/2019 09:45:58 AM
rwxr-xr-x
π
dumpkeys
166.52 KB
01/22/2018 01:49:48 PM
rwxr-xr-x
π
ec2metadata
7.12 KB
09/29/2020 06:17:10 PM
rwxr-xr-x
π
edit
17.55 KB
10/30/2015 03:39:30 PM
rwxr-xr-x
π
editor
1.02 MB
09/25/2024 07:47:37 AM
rwxr-xr-x
π
env
30.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
envsubst
34.51 KB
11/07/2018 06:33:51 PM
rwxr-xr-x
π
ex
1.02 MB
09/25/2024 07:47:37 AM
rwxr-xr-x
π
expand
30.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
expiry
22.23 KB
02/07/2024 10:59:49 AM
rwxr-xr-x
π
expr
38.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
factor
70.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
faillog
18.25 KB
02/07/2024 10:59:50 AM
rwxr-xr-x
π
fallocate
22.56 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
finalrd
2.1 KB
09/17/2020 05:03:45 PM
rwxr-xr-x
π
find
216.57 KB
02/07/2016 11:18:24 PM
rwxr-xr-x
π
flock
26.71 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
fmt
38.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
fold
34.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
free
18.37 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
fw_printenv
36.29 KB
06/12/2019 09:45:58 AM
rwxr-xr-x
π
fw_setenv
36.29 KB
06/12/2019 09:45:58 AM
rwxr-xr-x
π
fwupdate
13.99 KB
01/18/2018 08:25:49 AM
rwxr-xr-x
π
gawk
642.72 KB
09/11/2023 06:21:20 PM
rwxr-xr-x
π
gdbserver
408.53 KB
06/18/2024 06:21:58 AM
rwxr-xr-x
π
getconf
22.41 KB
05/08/2024 03:49:57 PM
rwxr-xr-x
π
getent
27.3 KB
05/08/2024 03:49:57 PM
rwxr-xr-x
π
getfacl
22.62 KB
04/21/2017 08:44:54 PM
rwxr-xr-x
π
getkeycodes
10.3 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
getopt
14.43 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
gettext
34.48 KB
11/07/2018 06:33:51 PM
rwxr-xr-x
π
gettext.sh
4.52 KB
11/07/2018 06:33:51 PM
rwxr-xr-x
π
gpasswd
73.54 KB
02/07/2024 10:59:49 AM
rwxr-xr-x
π
gpg
984.87 KB
07/12/2022 12:13:08 AM
rwxr-xr-x
π
gpg-zip
3.23 KB
07/12/2022 12:13:07 AM
rwxr-xr-x
π
gpgsplit
58.76 KB
07/12/2022 12:13:08 AM
rwxr-xr-x
π
gpgv
363.63 KB
07/12/2022 12:13:08 AM
rwxr-xr-x
π
groups
30.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
growpart
20.99 KB
09/29/2020 06:17:10 PM
rwxr-xr-x
π
grub-editenv
228.78 KB
04/30/2021 04:02:29 PM
rwxr-xr-x
π
head
38.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
helpztags
2.46 KB
04/08/2016 11:39:52 AM
rwxr-xr-x
π
hostid
26.64 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
hostnamectl
287.2 KB
03/03/2023 04:27:52 AM
rwxr-xr-x
π
i386
14.38 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
iconv
59 KB
05/08/2024 03:49:57 PM
rwxr-xr-x
π
id
38.83 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
igawk
3.11 KB
09/11/2023 06:21:18 PM
rwxr-xr-x
π
infocmp
54.57 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
infotocap
70.71 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
install
135.59 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
ionice
22.59 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
ipcmk
22.69 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
ipcrm
26.54 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
ipcs
46.71 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
iptables-xml
92.74 KB
05/09/2023 06:42:18 PM
rwxr-xr-x
π
ischroot
10.34 KB
01/26/2016 06:17:55 PM
rwxr-xr-x
π
join
46.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
jsondiff
976 bytes
11/27/2015 02:19:18 PM
rwxr-xr-x
π
jsonpatch
3.58 KB
11/27/2015 02:19:18 PM
rwxr-xr-x
π
jsonpointer
1.31 KB
10/24/2015 05:34:42 AM
rwxr-xr-x
π
jwt3
288 bytes
08/29/2017 06:41:38 PM
rwxr-xr-x
π
kbdinfo
10.31 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
kwboot
14.33 KB
06/12/2019 09:45:58 AM
rwxr-xr-x
π
last
38.84 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
lastb
38.84 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
lastlog
14.03 KB
02/07/2024 10:59:50 AM
rwxr-xr-x
π
lcf
7.6 KB
03/16/2016 08:58:51 PM
rwxr-xr-x
π
ldd
5.3 KB
05/08/2024 03:46:59 PM
rwxr-xr-x
π
less
166.76 KB
12/01/2017 04:11:09 AM
rwxr-xr-x
π
lessecho
10.02 KB
12/01/2017 04:11:09 AM
rwxr-xr-x
π
lessfile
8.36 KB
12/01/2017 04:11:09 AM
rwxr-xr-x
π
lesskey
19.39 KB
12/01/2017 04:11:09 AM
rwxr-xr-x
π
lesspipe
8.36 KB
12/01/2017 04:11:09 AM
rwxr-xr-x
π
line
10.32 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
link
26.64 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
linux-check-removal
3.99 KB
03/18/2020 11:32:20 AM
rwxr-xr-x
π
linux-update-symlinks
6.17 KB
03/18/2020 11:32:20 AM
rwxr-xr-x
π
linux-version
2.63 KB
03/18/2020 11:32:20 AM
rwxr-xr-x
π
linux32
14.38 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
linux64
14.38 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
lnstat
18.68 KB
04/16/2019 12:37:11 PM
rwxr-xr-x
π
loadkeys
206.57 KB
01/22/2018 01:49:48 PM
rwxr-xr-x
π
loadunimap
26.66 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
locale
37.91 KB
05/08/2024 03:49:57 PM
rwxr-xr-x
π
localectl
295.22 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
localedef
315.71 KB
05/08/2024 03:49:57 PM
rwxr-xr-x
π
lockfile-check
14.25 KB
12/03/2012 11:37:50 PM
rwxr-xr-x
π
lockfile-create
14.25 KB
12/03/2012 11:37:50 PM
rwxr-xr-x
π
lockfile-remove
14.25 KB
12/03/2012 11:37:50 PM
rwxr-xr-x
π
lockfile-touch
14.25 KB
12/03/2012 11:37:50 PM
rwxr-xr-x
π
logger
35.35 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
logname
26.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
lsattr
10.33 KB
06/03/2022 08:47:31 PM
rwxr-xr-x
π
lscpu
55.12 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
lsinitramfs
2.43 KB
10/07/2019 10:53:35 AM
rwxr-xr-x
π
lsipc
59 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
lslocks
31.09 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
lslogins
51.15 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
lspgpot
1.06 KB
06/25/2014 04:17:29 PM
rwxr-xr-x
π
lzcat
67.11 KB
04/11/2022 07:08:39 PM
rwxr-xr-x
π
lzcmp
5.39 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
lzdiff
5.39 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
lzegrep
5.56 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
lzfgrep
5.56 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
lzgrep
5.56 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
lzless
1.78 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
lzma
67.11 KB
04/11/2022 07:08:39 PM
rwxr-xr-x
π
lzmainfo
10.31 KB
04/11/2022 07:08:39 PM
rwxr-xr-x
π
lzmore
2.12 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
mail-lock
14.25 KB
12/03/2012 11:37:50 PM
rwxr-xr-x
π
mail-touchlock
14.25 KB
12/03/2012 11:37:50 PM
rwxr-xr-x
π
mail-unlock
14.25 KB
12/03/2012 11:37:50 PM
rwxr-xr-x
π
mapscrn
18.66 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
mawk
115.01 KB
03/24/2014 09:53:33 AM
rwxr-xr-x
π
mcookie
26.71 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
md5sum
42.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
md5sum.textutils
42.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
mesg
10.37 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
mk_modmap
15.78 KB
09/22/2016 05:33:20 PM
rwxr-xr-x
π
mkenvimage
14.2 KB
06/12/2019 09:45:58 AM
rwxr-xr-x
π
mkfifo
58.95 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
mkimage
143.06 KB
06/12/2019 09:45:58 AM
rwxr-xr-x
π
mkknlimg
5.87 KB
06/12/2019 09:45:47 AM
rwxr-xr-x
π
mksquashfs
174.12 KB
09/15/2021 01:04:44 PM
rwxr-xr-x
π
mksunxiboot
6.12 KB
06/12/2019 09:45:58 AM
rwxr-xr-x
π
mkswapfile
865 bytes
10/02/2024 07:41:37 PM
rwxr-xr-x
π
namei
26.58 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
nawk
642.72 KB
09/11/2023 06:21:20 PM
rwxr-xr-x
π
newgrp
38.97 KB
02/07/2024 10:59:50 AM
rwxr-xr-x
π
ngettext
34.5 KB
11/07/2018 06:33:51 PM
rwxr-xr-x
π
nice
34.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
nl
38.83 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
nohup
30.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
nproc
30.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
nsenter
26.88 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
nstat
22.47 KB
04/16/2019 12:37:11 PM
rwxr-xr-x
π
numfmt
58.86 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
od
66.83 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
openssl
545.97 KB
03/12/2024 01:38:30 PM
rwxr-xr-x
π
pager
166.73 KB
04/28/2024 12:17:46 PM
rwxr-xr-x
π
partx
75.63 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
passwd
52.98 KB
02/07/2024 10:59:49 AM
rwxr-xr-x
π
paste
30.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
pathchk
30.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
pdb3
59.56 KB
09/30/2024 02:20:36 PM
rwxr-xr-x
π
pdb3.5
59.56 KB
09/30/2024 02:20:36 PM
rwxr-xr-x
π
perl
1.82 MB
05/23/2023 05:16:56 PM
rwxr-xr-x
π
perl5.22.1
1.82 MB
05/23/2023 05:16:56 PM
rwxr-xr-x
π
pg
38.91 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
pgrep
26.63 KB
11/01/2023 07:23:47 AM
rwxr-xr-x
π
pinky
34.86 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
pkill
26.63 KB
11/01/2023 07:23:47 AM
rwxr-xr-x
π
pldd
14.59 KB
05/08/2024 03:49:57 PM
rwxr-xr-x
π
plog
146 bytes
01/27/2016 04:19:52 PM
rwxr-xr-x
π
pmap
30.61 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
poff
2.77 KB
01/27/2016 04:19:52 PM
rwxr-xr-x
π
pon
1.33 KB
01/27/2016 04:19:52 PM
rwxr-xr-x
π
pr
74.95 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
print
17.55 KB
10/30/2015 03:39:30 PM
rwxr-xr-x
π
printenv
30.64 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
printf
46.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
prlimit
31.3 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
probert
2.09 KB
02/17/2017 02:26:29 AM
rwxr-xr-x
π
psfaddtable
18.42 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
psfgettable
18.42 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
psfstriptable
18.42 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
psfxtable
18.42 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
ptx
66.95 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
pwdx
10.36 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
py3clean
7.62 KB
03/23/2016 11:00:30 AM
rwxr-xr-x
π
py3compile
11.83 KB
03/23/2016 11:00:30 AM
rwxr-xr-x
π
py3versions
11.44 KB
03/23/2016 11:00:39 AM
rwxr-xr-x
π
pybuild
21.33 KB
08/16/2019 12:59:18 AM
rwxr-xr-x
π
pydoc3
79 bytes
09/30/2024 02:20:29 PM
rwxr-xr-x
π
pydoc3.5
79 bytes
09/30/2024 02:20:29 PM
rwxr-xr-x
π
pygettext3
21.73 KB
09/30/2024 02:20:29 PM
rwxr-xr-x
π
pygettext3.5
21.73 KB
09/30/2024 02:20:29 PM
rwxr-xr-x
π
python3
4.25 MB
09/30/2024 02:23:24 PM
rwxr-xr-x
π
python3-jsondiff
976 bytes
11/27/2015 02:19:18 PM
rwxr-xr-x
π
python3-jsonpatch
3.58 KB
11/27/2015 02:19:18 PM
rwxr-xr-x
π
python3-jsonpointer
1.31 KB
10/24/2015 05:34:42 AM
rwxr-xr-x
π
python3.5
4.25 MB
09/30/2024 02:23:24 PM
rwxr-xr-x
π
python3.5m
4.25 MB
09/30/2024 02:23:24 PM
rwxr-xr-x
π
python3m
4.25 MB
09/30/2024 02:23:24 PM
rwxr-xr-x
π
rcp
86.14 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
realpath
58.83 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
rename.ul
14.41 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
renice
10.38 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
reset
18.42 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
resizecons
18.6 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
resizepart
34.86 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
rev
10.38 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
rgrep
30 bytes
03/04/2016 05:02:24 PM
rwxr-xr-x
π
rlogin
690.67 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
routef
173 bytes
11/04/2015 12:34:46 AM
rwxr-xr-x
π
routel
1.23 KB
11/04/2015 12:34:46 AM
rwxr-xr-x
π
rsh
690.67 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
rtstat
18.68 KB
04/16/2019 12:37:11 PM
rwxr-xr-x
π
run-mailcap
17.55 KB
10/30/2015 03:39:30 PM
rwxr-xr-x
π
runcon
34.8 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
rview
1.02 MB
09/25/2024 07:47:37 AM
rwxr-xr-x
π
savelog
10.22 KB
01/26/2016 06:17:55 PM
rwxr-xr-x
π
sc-logresolve
816 bytes
11/19/2015 03:43:04 PM
rwxr-xr-x
π
scmp_sys_resolver
10.26 KB
04/29/2022 02:07:05 PM
rwxr-xr-x
π
scp
86.14 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
screendump
10.33 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
script
22.66 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
scriptreplay
14.4 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
sdiff
46.78 KB
12/26/2015 11:11:28 PM
rwxr-xr-x
π
see
17.55 KB
10/30/2015 03:39:30 PM
rwxr-xr-x
π
select-editor
1.19 KB
02/21/2018 07:37:33 PM
rwxr-xr-x
π
sensible-browser
1.11 KB
02/21/2018 07:37:33 PM
rwxr-xr-x
π
sensible-editor
1.08 KB
02/21/2018 07:37:33 PM
rwxr-xr-x
π
sensible-pager
288 bytes
02/21/2018 07:37:33 PM
rwxr-xr-x
π
seq
46.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
setarch
14.38 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
setfacl
34.68 KB
04/21/2017 08:44:54 PM
rwxr-xr-x
π
setkeycodes
10.29 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
setleds
10.32 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
setlogcons
10.27 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
setmetamode
10.37 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
setsid
10.38 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
setterm
34.61 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
sftp
134.36 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
sg
38.97 KB
02/07/2024 10:59:50 AM
rwxr-xr-x
π
sha1sum
42.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
sha224sum
50.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
sha256sum
50.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
sha384sum
54.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
sha512sum
54.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
showconsolefont
18.4 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
showkey
14.34 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
shred
54.92 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
shuf
54.83 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
skill
22.61 KB
11/01/2023 07:23:47 AM
rwxr-xr-x
π
slabtop
18.47 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
slogin
690.67 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
snap
15.85 MB
06/06/2024 02:32:02 PM
rwxr-xr-x
π
snapctl
6.13 MB
06/06/2024 02:32:03 PM
rwxr-xr-x
π
snapfuse
38.61 KB
06/06/2024 02:32:02 PM
rwxr-xr-x
π
snice
22.61 KB
11/01/2023 07:23:47 AM
rwxr-xr-x
π
sort
107.46 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
split
67.41 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
splitfont
10.27 KB
09/22/2016 05:33:23 PM
rwxr-xr-x
π
ssh
690.67 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
ssh-add
330.21 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
ssh-agent
350.22 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
ssh-argv0
1.42 KB
05/13/2020 02:12:28 PM
rwxr-xr-x
π
ssh-copy-id
10.12 KB
03/09/2016 06:04:48 PM
rwxr-xr-x
π
ssh-keygen
390.23 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
ssh-keyscan
406.23 KB
09/04/2024 01:11:37 PM
rwxr-xr-x
π
stat
79.05 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
stdbuf
62.83 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
sudo
133.6 KB
05/24/2023 01:48:57 PM
rwxr-xr-x
π
sudoedit
133.6 KB
05/24/2023 01:48:57 PM
rwxr-xr-x
π
sudoreplay
46.56 KB
05/24/2023 01:48:57 PM
rwxr-xr-x
π
sum
38.74 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
systemd-analyze
1.43 MB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
systemd-cat
34.43 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
systemd-cgls
291.22 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
systemd-cgtop
303.3 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
systemd-delta
62.59 KB
03/03/2023 04:27:52 AM
rwxr-xr-x
π
systemd-detect-virt
34.42 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
systemd-path
42.42 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
systemd-resolve
327.21 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
systemd-run
367.52 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
systemd-stdio-bridge
343.2 KB
03/03/2023 04:27:52 AM
rwxr-xr-x
π
tabs
14.23 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
tac
34.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
tail
62.92 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
taskset
30.68 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
tee
34.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
test
46.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
tic
70.71 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
timedatectl
813 bytes
10/02/2024 07:51:17 PM
rwxr-xr-x
π
timedatectl.real
295.22 KB
03/03/2023 04:27:51 AM
rwxr-xr-x
π
timeout
55.38 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
tload
14.44 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
toe
14.34 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
top
106.51 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
touch
86.21 KB
01/18/2018 09:43:49 AM
rwxr-xr-x
π
tput
14.3 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
tr
46.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
truncate
50.8 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
tset
18.42 KB
03/06/2024 05:01:28 PM
rwxr-xr-x
π
tsort
34.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
tty
26.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
tzselect
14.86 KB
05/08/2024 03:46:48 PM
rwxr-xr-x
π
ubuntu-core-launcher
124.53 KB
06/06/2024 02:32:03 PM
rwxr-xr-x
π
ucf
39.68 KB
03/16/2016 08:58:51 PM
rwxr-xr-x
π
ucfq
18.91 KB
03/16/2016 08:58:51 PM
rwxr-xr-x
π
ucfr
10.47 KB
03/16/2016 08:58:51 PM
rwxr-xr-x
π
unexpand
30.73 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
unicode_stop
530 bytes
09/22/2016 05:33:20 PM
rwxr-xr-x
π
uniq
42.77 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
unlink
26.64 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
unlzma
67.11 KB
04/11/2022 07:08:39 PM
rwxr-xr-x
π
unshare
18.72 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
unsquashfs
92.65 KB
09/15/2021 01:04:44 PM
rwxr-xr-x
π
unxz
67.11 KB
04/11/2022 07:08:39 PM
rwxr-xr-x
π
update-alternatives
46.61 KB
05/27/2022 10:37:03 AM
rwxr-xr-x
π
uptime
10.33 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
users
30.7 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
utmpdump
14.52 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
vcs-run
6.75 KB
09/29/2020 06:17:10 PM
rwxr-xr-x
π
vi
1.02 MB
09/25/2024 07:47:37 AM
rwxr-xr-x
π
view
1.02 MB
09/25/2024 07:47:37 AM
rwxr-xr-x
π
vim.tiny
1.02 MB
09/25/2024 07:47:37 AM
rwxr-xr-x
π
vmstat
30.48 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
w
18.48 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
w.procps
18.48 KB
11/01/2023 07:23:48 AM
rwxr-xr-x
π
wall
26.73 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
watch
23.14 KB
11/01/2023 07:23:47 AM
rwxr-xr-x
π
wc
42.8 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
whereis
23.09 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
which
946 bytes
12/30/2017 06:15:02 PM
rwxr-xr-x
π
who
46.86 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
whoami
26.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
wpa_passphrase
58 KB
08/05/2024 12:27:52 PM
rwxr-xr-x
π
x86_64
14.38 KB
06/14/2022 09:28:54 PM
rwxr-xr-x
π
xargs
66.21 KB
02/07/2016 11:18:24 PM
rwxr-xr-x
π
xdelta3
150.84 KB
02/17/2016 02:02:30 PM
rwxr-xr-x
π
xdg-open
38 bytes
10/02/2024 07:51:41 PM
rwxr-xr-x
π
xdg-settings
886 bytes
10/02/2024 07:51:41 PM
rwxr-xr-x
π
xxd
18.12 KB
09/25/2024 07:53:22 AM
rwxr-xr-x
π
xz
67.11 KB
04/11/2022 07:08:39 PM
rwxr-xr-x
π
xzcat
67.11 KB
04/11/2022 07:08:39 PM
rwxr-xr-x
π
xzcmp
5.39 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
xzdiff
5.39 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
xzegrep
5.56 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
xzfgrep
5.56 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
xzgrep
5.56 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
xzless
1.78 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
xzmore
2.12 KB
04/11/2022 07:08:35 PM
rwxr-xr-x
π
yes
30.67 KB
03/02/2017 06:07:22 PM
rwxr-xr-x
π
zdump
14.42 KB
05/08/2024 03:49:57 PM
rwxr-xr-x
Editing: pybuild
Close
#! /usr/bin/python3 # vim: et ts=4 sw=4 # Copyright Β© 2012-2013 Piotr OΕΌarowski <piotr@debian.org> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. import logging import argparse import sys from os import environ, getcwd, makedirs, remove from os.path import abspath, exists, join from shutil import rmtree logging.basicConfig(format='%(levelname).1s: pybuild ' '%(module)s:%(lineno)d: %(message)s') log = logging.getLogger('dhpython') def main(cfg): log.debug('cfg: %s', cfg) from dhpython import build from dhpython.version import Version, build_sorted, get_requested_versions from dhpython.interpreter import Interpreter from dhpython.tools import execute, move_matching_files if cfg.list_systems: for name, Plugin in sorted(build.plugins.items()): print(name, '\t', Plugin.DESCRIPTION) exit(0) nocheck = False if 'DEB_BUILD_OPTIONS' in environ: nocheck = 'nocheck' in environ['DEB_BUILD_OPTIONS'] env = environ.copy() if 'LC_ALL' not in env: env['LC_ALL'] = 'C.UTF-8' if 'no_proxy' not in env: env['no_proxy'] = 'localhost' if 'http_proxy' not in env: env['http_proxy'] = 'http://127.0.0.1:9/' elif not env['http_proxy']: del env['http_proxy'] # some tools don't like empty var. if 'https_proxy' not in env: env['https_proxy'] = 'https://127.0.0.1:9/' elif not env['https_proxy']: del env['https_proxy'] # some tools don't like empty var. if cfg.system: certainty = 99 Plugin = build.plugins.get(cfg.system) if not Plugin: log.error('unrecognized build system: %s', cfg.system) exit(10) plugin = Plugin(cfg) context = {'ENV': env, 'args': {}, 'dir': cfg.dir} plugin.detect(context) else: plugin, certainty, context = None, 0, None for Plugin in build.plugins.values(): try: tmp_plugin = Plugin(cfg) except Exception as err: log.warn('cannot initialize %s plugin: %s', Plugin.NAME, err, exc_info=cfg.verbose) continue tmp_context = {'ENV': env, 'args': {}, 'dir': cfg.dir} tmp_certainty = tmp_plugin.detect(tmp_context) if tmp_certainty and tmp_certainty > certainty: plugin, certainty, context = tmp_plugin, tmp_certainty, tmp_context del Plugin if not plugin: log.error('cannot detect build system, please use --system option' ' or set PYBUILD_SYSTEM env. variable') exit(11) for interpreter in cfg.interpreter: if plugin.SUPPORTED_INTERPRETERS is not True and interpreter not in plugin.SUPPORTED_INTERPRETERS: log.error('interpreter %s not supported by %s', interpreter, plugin) exit(12) log.debug('detected build system: %s (certainty: %s%%)', plugin.NAME, certainty) if cfg.detect_only: if not cfg.really_quiet: print(plugin.NAME) exit(0) # reversed so that default Python version will be last versions = cfg.versions if not versions: log.debug('defaulting to all supported Python 3.X versions') versions = list(get_requested_versions('cpython3', available=True)) versions = [Version(v) for v in versions] def get_option(name, interpreter=None, version=None, default=None): if interpreter: # try PYBUILD_NAME_python3.3-dbg (or hardcoded interpreter) i = interpreter.format(version=version or '') opt = "PYBUILD_{}_{}".format(name.upper(), i) if opt in environ: return environ[opt] # try PYBUILD_NAME_python3-dbg (if not checked above) if '{version}' in interpreter and version: i = interpreter.format(version=version.major) opt = "PYBUILD_{}_{}".format(name.upper(), i) if opt in environ: return environ[opt] # try PYBUILD_NAME opt = "PYBUILD_{}".format(name.upper()) if opt in environ: return environ[opt] # try command line args return getattr(cfg, name, default) or default def get_args(context, step, version, interpreter): i = interpreter.format(version=version) home_dir = '.pybuild/{}_{}'.format(interpreter.format(version='X.Y'), version) build_dir = get_option('build_dir', interpreter, version, default=join(home_dir, 'build')) ipreter = Interpreter(i) destdir = context['destdir'].format(version=version, interpreter=i) if cfg.name: package = ipreter.suggest_pkg_name(cfg.name) else: package = 'PYBUILD_NAME_not_set' if cfg.name and destdir.rstrip('/').endswith('debian/tmp'): destdir = "debian/{}".format(package) destdir = abspath(destdir) args = dict(context['args']) args.update({ 'package': package, 'interpreter': ipreter, 'version': version, 'args': get_option("%s_args" % step, interpreter, version, ''), 'dir': abspath(context['dir'].format(version=version, interpreter=i)), 'destdir': destdir, 'build_dir': abspath(build_dir.format(version=version, interpreter=i)), # versioned dist-packages even for Python 3.X - dh_python3 will fix it later # (and will have a chance to compare files) 'install_dir': get_option('install_dir', interpreter, version, '/usr/lib/python{version}/dist-packages' ).format(version=version, interpreter=i), 'home_dir': abspath(home_dir)}) if interpreter == 'pypy': args['install_dir'] = '/usr/lib/pypy/dist-packages/' if step in {'build', 'test'}: pp = context['ENV'].get('PYTHONPATH') pp = pp.split(':') if pp else [] if step == 'test': args['test_dir'] = join(args['destdir'], args['install_dir'].lstrip('/')) if args['test_dir'] not in pp: pp.append(args['test_dir']) if args['build_dir'] not in pp: pp.append(args['build_dir']) args['PYTHONPATH'] = ':'.join(pp) if not exists(args['build_dir']): makedirs(args['build_dir']) return args def is_disabled(step, interpreter, version): i = interpreter prefix = "{}/".format(step) disabled = (get_option('disable', i, version) or '').split() for item in disabled: if item in (step, '1'): log.debug('disabling {} step for {} {}'.format(step, i, version)) return True if item.startswith(prefix): disabled.append(item[len(prefix):]) if i in disabled or str(version) in disabled or \ i.format(version=version) in disabled or \ i.format(version=version.major) in disabled: log.debug('disabling {} step for {} {}'.format(step, i, version)) return True return False def run(func, interpreter, version, context): step = func.__func__.__name__ args = get_args(context, step, version, interpreter) if 'PYTHONPATH' in args: env = dict(context['ENV']) env['PYTHONPATH'] = args['PYTHONPATH'] else: env = context['ENV'] before_cmd = get_option('before_{}'.format(step), interpreter, version) if before_cmd: if cfg.quiet: log_file = join(args['home_dir'], 'before_{}_cmd.log'.format(step)) else: log_file = False command = before_cmd.format(**args) output = execute(command, context['dir'], env, log_file) if output['returncode'] != 0: msg = 'exit code={}: {}'.format(output['returncode'], command) raise Exception(msg) fpath = join(args['home_dir'], 'build_dirs_to_rm_before_install') if step == 'install' and exists(fpath): with open(fpath) as fp: for line in fp: dpath = join(args['build_dir'], line.strip('\n')) if exists(dpath): rmtree(dpath) remove(fpath) result = func(context, args) after_cmd = get_option('after_{}'.format(step), interpreter, version) if after_cmd: if cfg.quiet: log_file = join(args['home_dir'], 'after_{}_cmd.log'.format(step)) else: log_file = False command = after_cmd.format(**args) output = execute(command, context['dir'], env, log_file) if output['returncode'] != 0: msg = 'exit code={}: {}'.format(output['returncode'], command) raise Exception(msg) return result func = None if cfg.clean_only: func = plugin.clean elif cfg.configure_only: func = plugin.configure elif cfg.build_only: func = plugin.build elif cfg.install_only: func = plugin.install elif cfg.test_only: func = plugin.test ### one function for each interpreter at a time mode ### if func: step = func.__func__.__name__ if step == 'test' and nocheck: exit(0) for i in cfg.interpreter: ipreter = Interpreter(interpreter.format(version=versions[0])) iversions = build_sorted(versions, impl=ipreter.impl) if '{version}' not in i and len(versions) > 1: log.info('limiting Python versions to %s due to missing {version}' ' in interpreter string', str(versions[-1])) iversions = versions[-1:] # just the default or closest to default for version in iversions: if is_disabled(step, i, version): continue c = dict(context) c['dir'] = get_option('dir', i, version, cfg.dir) c['destdir'] = get_option('destdir', i, version, cfg.destdir) try: run(func, i, version, c) except Exception as err: log.error('%s: plugin %s failed with: %s', step, plugin.NAME, err, exc_info=cfg.verbose) exit(13) if step == 'install': ext_destdir = get_option('ext_destdir', i, version) if ext_destdir: move_matching_files(c['destdir'], ext_destdir, get_option('ext_pattern', i, version)) exit(0) ### all functions for interpreters in batches mode ### try: context_map = {} for i in cfg.interpreter: ipreter = Interpreter(interpreter.format(version=versions[0])) iversions = build_sorted(versions, impl=ipreter.impl) if '{version}' not in i and len(versions) > 1: log.info('limiting Python versions to %s due to missing {version}' ' in interpreter string', str(versions[-1])) iversions = versions[-1:] # just the default or closest to default for version in iversions: key = (i, version) if key in context_map: c = context_map[key] else: c = dict(context) c['dir'] = get_option('dir', i, version, cfg.dir) c['destdir'] = get_option('destdir', i, version, cfg.destdir) context_map[key] = c if not is_disabled('clean', i, version): run(plugin.clean, i, version, c) if not is_disabled('configure', i, version): run(plugin.configure, i, version, c) if not is_disabled('build', i, version): run(plugin.build, i, version, c) if not is_disabled('install', i, version): run(plugin.install, i, version, c) ext_destdir = get_option('ext_destdir', i, version) if ext_destdir: move_matching_files(c['destdir'], ext_destdir, get_option('ext_pattern', i, version)) if not nocheck and not is_disabled('test', i, version): run(plugin.test, i, version, c) except Exception as err: log.error('plugin %s failed: %s', plugin.NAME, err, exc_info=cfg.verbose) exit(14) def parse_args(argv): usage = '%(prog)s [ACTION] [BUILD SYSTEM ARGS] [DIRECTORIES] [OPTIONS]' parser = argparse.ArgumentParser(usage=usage) parser.add_argument('-v', '--verbose', action='store_true', default=environ.get('PYBUILD_VERBOSE') == '1', help='turn verbose mode on') parser.add_argument('-q', '--quiet', action='store_true', default=environ.get('PYBUILD_QUIET') == '1', help='doesn\'t show external command\'s output') parser.add_argument('-qq', '--really-quiet', action='store_true', default=environ.get('PYBUILD_RQUIET') == '1', help='be quiet') parser.add_argument('--version', action='version', version='%(prog)s 2.20151103ubuntu1.2') action = parser.add_argument_group('ACTION', '''The default is to build, install and test the library using detected build system version by version. Selecting one of following actions, will invoke given action for all versions - one by one - which (contrary to the default action) in some build systems can overwrite previous results.''') action.add_argument('--detect', action='store_true', dest='detect_only', help='return the name of detected build system') action.add_argument('--clean', action='store_true', dest='clean_only', help='clean files using auto-detected build system specific methods') action.add_argument('--configure', action='store_true', dest='configure_only', help='invoke configure step for all requested Python versions') action.add_argument('--build', action='store_true', dest='build_only', help='invoke build step for all requested Python versions') action.add_argument('--install', action='store_true', dest='install_only', help='invoke install step for all requested Python versions') action.add_argument('--test', action='store_true', dest='test_only', help='invoke tests for auto-detected build system') action.add_argument('--list-systems', action='store_true', help='list available build systems and exit') arguments = parser.add_argument_group('BUILD SYSTEM ARGS', ''' Additional arguments passed to the build system. --system=custom requires complete command.''') arguments.add_argument('--before-clean', metavar='CMD', help='invoked before the clean command') arguments.add_argument('--clean-args', metavar='ARGS') arguments.add_argument('--after-clean', metavar='CMD', help='invoked after the clean command') arguments.add_argument('--before-configure', metavar='CMD', help='invoked before the configure command') arguments.add_argument('--configure-args', metavar='ARGS') arguments.add_argument('--after-configure', metavar='CMD', help='invoked after the configure command') arguments.add_argument('--before-build', metavar='CMD', help='invoked before the build command') arguments.add_argument('--build-args', metavar='ARGS') arguments.add_argument('--after-build', metavar='CMD', help='invoked after the build command') arguments.add_argument('--before-install', metavar='CMD', help='invoked before the install command') arguments.add_argument('--install-args', metavar='ARGS') arguments.add_argument('--after-install', metavar='CMD', help='invoked after the install command') arguments.add_argument('--before-test', metavar='CMD', help='invoked before the test command') arguments.add_argument('--test-args', metavar='ARGS') arguments.add_argument('--after-test', metavar='CMD', help='invoked after the test command') tests = parser.add_argument_group('TESTS', '''\ unittest\'s discover is used by default (if available)''') tests.add_argument('--test-nose', action='store_true', default=environ.get('PYBUILD_TEST_NOSE') == '1', help='use nose module in --test step') tests.add_argument('--test-pytest', action='store_true', default=environ.get('PYBUILD_TEST_PYTEST') == '1', help='use pytest module in --test step') tests.add_argument('--test-tox', action='store_true', default=environ.get('PYBUILD_TEST_TOX') == '1', help='use tox in --test step') dirs = parser.add_argument_group('DIRECTORIES') dirs.add_argument('-d', '--dir', action='store', metavar='DIR', default=getcwd(), help='source files directory - base for other relative dirs [default: CWD]') dirs.add_argument('--dest-dir', action='store', metavar='DIR', dest='destdir', default=environ.get('DESTDIR', 'debian/tmp'), help='destination directory [default: debian/tmp]') dirs.add_argument('--ext-dest-dir', action='store', metavar='DIR', dest='ext_destdir', default=environ.get('EXT_DESTDIR'), help='destination directory for .so files') dirs.add_argument('--ext-pattern', action='store', metavar='PATTERN', default=environ.get('EXT_PATTERN', r'\.so(\.[^/]*)?$'), help='regular expression for files that should be moved' ' if --ext-dest-dir is set [default: .so files]') dirs.add_argument('--install-dir', action='store', metavar='DIR', help='installation directory [default: .../dist-packages]') dirs.add_argument('--name', action='store', default=environ.get('PYBUILD_NAME'), help='use this name to guess destination directories') limit = parser.add_argument_group('LIMITATIONS') limit.add_argument('-s', '--system', default=environ.get('PYBUILD_SYSTEM'), help='select a build system [default: auto-detection]') limit.add_argument('-p', '--pyver', action='append', dest='versions', help='''build for Python VERSION. This option can be used multiple times [default: all supported Python 3.X versions]''') limit.add_argument('-i', '--interpreter', action='append', help='change interpreter [default: python{version}]') limit.add_argument('--disable', metavar='ITEMS', help='disable action, interpreter or version') args = parser.parse_args() if not args.interpreter: args.interpreter = environ.get('PYBUILD_INTERPRETERS', 'python{version}').split() if not args.versions: args.versions = environ.get('PYBUILD_VERSIONS', '').split() else: # add support for -p `pyversions -rv` versions = [] for version in args.versions: versions.extend(version.split()) args.versions = versions if args.test_nose or args.test_pytest or args.test_tox\ or args.system == 'custom': args.custom_tests = True else: args.custom_tests = False return args if __name__ == '__main__': cfg = parse_args(sys.argv) if cfg.really_quiet: cfg.quiet = True log.setLevel(logging.CRITICAL) elif cfg.verbose: log.setLevel(logging.DEBUG) else: log.setLevel(logging.INFO) log.debug('version: 2.20151103ubuntu1.2') log.debug(sys.argv) main(cfg) # let dh/cdbs clean the .pybuild dir # rmtree(join(cfg.dir, '.pybuild'))