From cc480f49466a56dda4e76ae82bfc6c7f83b8f726 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 13 Jun 2022 16:33:24 +0300 Subject: [PATCH 01/68] Removed asiicast --- README.rst | 9 - slpkg.cast | 5279 ---------------------------------------------------- 2 files changed, 5288 deletions(-) delete mode 100644 slpkg.cast diff --git a/README.rst b/README.rst index 66e73bc4..8d3053e5 100644 --- a/README.rst +++ b/README.rst @@ -18,15 +18,6 @@ display warning messages, etc. Look in the `EXAMPLES.md `_ file to explore some examples. -Asciicast ---------- - - -.. image:: https://gitlab.com/dslackw/images/raw/master/slpkg/asciicast.png - :target: https://asciinema.org/a/3uFNAOX8o16AmKKJDIvdezPBa - :width: 200px - - Install ------- diff --git a/slpkg.cast b/slpkg.cast deleted file mode 100644 index c01f19ff..00000000 --- a/slpkg.cast +++ /dev/null @@ -1,5279 +0,0 @@ -{"version": 2, "width": 80, "height": 53, "timestamp": 1575396983, "env": {"SHELL": "/bin/bash", "TERM": "xterm"}, "title": "slpkg tutorial"} -[0.206645, "o", "bash-4.3# "] -[1.512436, "o", "f"] -[1.599205, "o", "i"] -[1.743356, "o", "s"] -[1.839808, "o", "h"] -[2.127105, "o", "\r\n"] -[2.274924, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[2.276867, "o", "Welcome to fish, the friendly interactive shell\r\n"] -[2.280448, "o", "\u001b[?2004h"] -[2.384315, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[2.384524, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K"] -[2.384588, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[2.954921, "o", "\u001b[H\u001b[2J"] -[3.066746, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[3.304916, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[3.305315, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[3.305675, "o", "\u001b[38;5;240mlpkg -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[3.422326, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[3.422641, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[3.481658, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[3.48202, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[3.661001, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[3.66114, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[3.744192, "o", "\u001b[38;5;196mg\u001b[38;5;240m -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[3.744651, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[4.862598, "o", "\u001b[K\u001b[45C \r\u001b[79C\r\u001b[34C\r\n\u001b[30m\u001b(B\u001b[m"] -[4.862971, "o", "\u001b[?2004l"] -[4.863357, "o", "\u001b]0;slpkg /home/dslackw\u0007"] -[4.863463, "o", "\u001b[30m\u001b(B\u001b[m\r"] -[5.131349, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[5.131513, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[5.144504, "o", "\u001b[?2004h"] -[5.242477, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[8.587986, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[8.588112, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[8.588525, "o", "\u001b[38;5;240mlpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[8.696731, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[8.696992, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[8.773753, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[8.773803, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[8.927233, "o", "\u001b[38;5;196mk\u001b[38;5;240mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[9.012963, "o", "\u001b[38;5;196mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[9.013394, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[9.251986, "o", "\u001b[38;5;26m \u001b[44C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[9.252409, "o", "\u001b[44C \r\u001b[79C\r\u001b[35C\b \u001b[44C \r\u001b[79C\r\u001b[35C"] -[9.253676, "o", "\u001b[38;5;240m-r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[9.40671, "o", "-\u001b[38;5;240mr Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[9.406852, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[9.40745, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mr Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[9.56929, "o", "\u001b[38;5;39ms\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[9.569947, "o", "\u001b[38;5;240m sbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[10.038118, "o", "\u001b[38;5;39m \u001b[38;5;240msbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C\u001b[41C \r\u001b[79C\r\u001b[38C"] -[10.038775, "o", "\b \u001b[38;5;240msbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[10.171637, "o", "s\u001b[38;5;240mbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[10.172268, "o", "\b\u001b[38;5;39m\u001b[4ms\u001b[38;5;240m\u001b[24mbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[10.752728, "o", "\u001b[38;5;39m\u001b[4mb\u001b[38;5;240m\u001b[24mo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[10.752862, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[10.753415, "o", "\b\b\u001b[38;5;39msb\u001b[38;5;240mo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[11.152934, "o", "\b\u001b[K\u001b[40C \r\u001b[79C\r\u001b[39C"] -[11.153082, "o", "\b\u001b[38;5;39m\u001b[4ms\u001b[40C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[11.298231, "o", "\b\u001b[K\u001b[41C \r\u001b[79C\r\u001b[38C"] -[11.434156, "o", "\b\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[11.56669, "o", "\b\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C"] -[11.706272, "o", "\b\u001b[K\u001b[44C \r\u001b[79C\r\u001b[35C"] -[12.088719, "o", "r\u001b[43C \r\u001b[79C\r\u001b[36C"] -[12.089074, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C\u001b[38;5;240mepo-info salix\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[12.089336, "o", "\b\u001b[38;5;39mr\u001b[38;5;240mepo-info salix\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[12.19834, "o", "\u001b[38;5;39me\u001b[38;5;240mpo-info salix\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[12.198451, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[12.322732, "o", "\u001b[38;5;39mp\u001b[38;5;240mo-info salix\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[12.322857, "o", "\u001b[41C \r\u001b[79C\r\u001b[38C"] -[12.397425, "o", "\u001b[38;5;39mo\u001b[38;5;240m-info salix\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[12.397828, "o", "\u001b[40C \r\u001b[79C\r\u001b[39C"] -[13.192841, "o", "\u001b[38;5;39m-\u001b[38;5;240minfo salix\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C\u001b[39C \r\u001b[79C\r\u001b[40C"] -[13.652101, "o", "\u001b[38;5;39me\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[38C \r\u001b[79C\r\u001b[41C"] -[13.652219, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[13.652677, "o", "\u001b[38;5;240mnable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[13.782132, "o", "\u001b[38;5;39mn\u001b[38;5;240mable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C\u001b[37C \r\u001b[79C\r\u001b[42C"] -[13.967762, "o", "\u001b[38;5;39ma\u001b[38;5;240mble\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[13.967904, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C"] -[14.248755, "o", "\u001b[38;5;39mv\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[35C \r\u001b[79C\r\u001b[44C\u001b[35C \r\u001b[79C\r\u001b[44C"] -[14.764707, "o", "\b\u001b[K\u001b[36C \r\u001b[79C\r\u001b[43C"] -[14.934133, "o", "\u001b[38;5;39mb\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C\u001b[35C \r\u001b[79C\r\u001b[44C"] -[14.934645, "o", "\u001b[38;5;240mle\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[15.037841, "o", "\u001b[38;5;39ml\u001b[38;5;240me\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[15.038326, "o", "\u001b[34C \r\u001b[79C\r\u001b[45C"] -[15.248085, "o", "\u001b[38;5;39me\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C"] -[15.248232, "o", "\u001b[33C \r\u001b[79C\r\u001b[46C"] -[15.35696, "o", "\u001b[33C \r\u001b[79C\r\u001b[46C\r\n\u001b[30"] -[15.357163, "o", "m\u001b(B\u001b[m\u001b[?2004l"] -[15.357252, "o", "\u001b]0;slpk"] -[15.35733, "o", "g /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[15.638573, "o", "\u001b[?1049h\u001b[1;53r\u001b(B\u001b[m\u001b[4l\u001b[?7h\u001b[H\u001b[2J\u001b[?1049l\u001b[H\u001b[2J\u001b[?1h\u001b=\u001b[?1000h"] -[15.639204, "o", "\u001b[39;49m\u001b[?1h\u001b="] -[15.639319, "o", "\u001b[?1h\u001b=\u001b[?1h\u001b="] -[15.639731, "o", "\u001b[46d\u001b[39;49m\u001b[37m\u001b[44m\u001b[J\u001b[H\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n\u001b[K\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mlqqqqqqqqqqqqqqqqqqqqqqqqq\u001b(B\u001b[0;1m\u001b[33m\u001b[46m Repositories \u001b(0\u001b[0;1m\u001b[36m\u001b[46mqqqqqqqqqqqqqqqqqqqqqqqqqqqq\u001b(0\u001b[0m\u001b[30m\u001b[46mk\u001b(B\u001b[0m\u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[67X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m Choose repositories at the right side for enable or to the \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m left side for disable.\u001b[44X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[67X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m Keys: SPACE select or deselect the highlighted repositories, \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[14X\u001b[14;20Hmove it between the left and right lists \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b["] -[15.639757, "o", "37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m ^ move the focus to the left list\u001b[22X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m $ move the focus to the right list\u001b[21X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m TAB move focus\u001b[43X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m ENTER press the focused button\u001b[29X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[67X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m Disabled <-------- REPOSITORIES -------> Enabled \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mlqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\u001b(0\u001b[0;1m\u001b[36m\u001b[46mk\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mlqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\u001b(0\u001b[0;"] -[15.639772, "o", "1m\u001b[36m\u001b[46mk\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[22;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[22;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[23;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[23;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[24;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[24;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[25;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b"] -[15.639783, "o", "(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[25;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[26;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[26;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[27;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[27;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[28;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[28;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b"] -[15.639874, "o", "[46m\u001b[30X\u001b[29;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[29;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[30;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[30;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[31;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[31;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[32;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[32;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b"] -[15.639888, "o", "[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[33;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[33;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[34;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[34;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[35;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[35;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[36;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[36;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[4"] -[15.639897, "o", "6mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[37;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[37;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[38;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0;1m\u001b[36m\u001b[46m\u001b[30X\u001b[38;71H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mm\u001b(0\u001b[0;1m\u001b[36m\u001b[46mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mm\u001b(0\u001b[0;1m\u001b[36m\u001b[46mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[67X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[67X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b["] -[15.639907, "o", "37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mtqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\u001b(0\u001b[0m\u001b[30m\u001b[46mu\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[19X\u001b[43;25H\u001b(B\u001b[0;1m\u001b[37m\u001b[44m< OK >\u001b(B\u001b[0m\u001b[30m\u001b[46m <\u001b[31m\u001b[46mC\u001b(B\u001b[0;1m\u001b[30m\u001b[46mancel\u001b(B\u001b[0m\u001b[30m\u001b[46m>\u001b[22X\u001b[73G\u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\r\n \u001b(0\u001b[0;1m\u001b[36m\u001b[46mm\u001b(0\u001b[0m\u001b[30m\u001b[46mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\n\u001b[6G\u001b[1K \u001b[37m\u001b[40m\u001b[69X\u001b[76G\u001b[37m\u001b[44m\u001b[K\u001b[39;72H\u001b[39;49m\u001b(B\u001b[m"] -[15.639998, "o", "\u001b[22;8H\u001b[30m\u001b[46m \u001b(B\u001b[0;1m\u001b[31m\u001b[44mr\u001b(B\u001b[0m\u001b[37m\u001b[44mlw\u001b[30m\u001b[46m\u001b[22X\n\u001b[8G \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlacky\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[19X\n\u001b[8G \u001b[31m\u001b[46mc\u001b(B\u001b[0;1m\u001b[33m\u001b[46monrad\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[19X\n\u001b[8G \u001b[31m\u001b[46mk\u001b(B\u001b[0;1m\u001b[33m\u001b[46mtown{latest}\u001b(B\u001b[0m\u001b[30m\u001b[46m \n\u001b[8G \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlacke{18}\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[15X\n\u001b[8G \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlackl\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[19X\n\u001b[8G \u001b[31m\u001b[46mr\u001b(B\u001b[0;1m\u001b[33m\u001b[46mested\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[19X\n\u001b[8G \u001b[31m\u001b[46mm\u001b(B\u001b[0;1m\u001b[33m\u001b[46msb{1.18}\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[16X\n\u001b[8G \u001b[31m\u001b[46mc\u001b(B\u001b[0;1m\u001b[33m\u001b[46msb\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[22X\n\u001b[8G \u001b[31m\u001b[46mc\u001b(B\u001b[0;1m\u001b[33m\u001b[46monnos\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[19X\n\u001b[8G \u001b[31m\u001b[46mm\u001b(B\u001b[0;1m\u001b[33m\u001b[46mles{desktop}\u001b(B\u001b[0m\u001b[30m\u001b[46m \n\u001b[8G\u001b[39;49m\u001b(B\u001b[m\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\u001b[39;72H"] -[15.640105, "o", "\u001b[22;41H\u001b[30m\u001b[46m \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlack\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[20X\u001b[23;41H \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mbo\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[22X\u001b[24;41H \u001b[31m\u001b[46ma\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlien\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[20X\u001b[25;41H \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlonly\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[19X\u001b[26;41H \u001b[31m\u001b[46mm\u001b(B\u001b[0;1m\u001b[33m\u001b[46multi\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[20X\u001b[27;41H \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46malix\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[20X\u001b[28;41H\u001b[39;49m\u001b(B\u001b[m\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\n\u001b[30X\u001b[39;72H"] -[15.640119, "o", "\u001b[22;13H"] -[22.382272, "o", "\u001b[31m\u001b[46mr\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlw\b\b\b\u001b[39;49m\u001b(B\u001b[m"] -[22.382677, "o", "\u001b[21;50H\u001b(B\u001b[0;1m\u001b[32m\u001b[46m↑(-)\u001b[22;46H\u001b[31m\u001b[44ms\u001b(B\u001b[0m\u001b[37m\u001b[44mlack\u001b[39;63H\u001b[31m\u001b[46m100%\u001b[39;49m\u001b(B\u001b[m\u001b[22;46H"] -[23.528441, "o", "\u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlack\n\u001b[46G\u001b[31m\u001b[44ms\u001b(B\u001b[0m\u001b[37m\u001b[44mbo\u001b[39;67H\u001b[39;49m\u001b(B\u001b[m\u001b[23;46H"] -[23.716764, "o", "\u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mbo\n\b\b\b\u001b[31m\u001b[44ma\u001b(B\u001b[0m\u001b[37m\u001b[44mlien\u001b[39;67H\u001b[39;49m\u001b(B\u001b[m\u001b[24;46H"] -[23.890536, "o", "\u001b[31m\u001b[46ma\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlien\n\u001b[46G\u001b[31m\u001b[44ms\u001b(B\u001b[0m\u001b[37m\u001b[44mlonly\u001b[39;67H\u001b[39;49m\u001b(B\u001b[m\u001b[25;46H"] -[24.037247, "o", "\u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlonly\n\u001b[46G\u001b[31m\u001b[44mm\u001b(B\u001b[0m\u001b[37m\u001b[44multi\u001b[39;67H\u001b[39;49m\u001b(B\u001b[m\u001b[26;46H"] -[24.222857, "o", "\u001b[31m\u001b[46mm\u001b(B\u001b[0;1m\u001b[33m\u001b[46multi\n\u001b[46G\u001b[31m\u001b[44ms\u001b(B\u001b[0m\u001b[37m\u001b[44malix\u001b[39;67H\u001b[39;49m\u001b(B\u001b[m\u001b[27;46H"] -[26.832179, "o", "\u001b[33;8H\u001b[30m\u001b[46m \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46malix\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[20X\u001b[27;46H\u001b[39;49m\u001b(B\u001b[m"] -[26.832324, "o", "\u001b[A\u001b(B\u001b[0;1m\u001b[31m\u001b[44mm\u001b(B\u001b[0m\u001b[37m\u001b[44multi\u001b[27;41H\u001b[39;49m\u001b(B\u001b[m\u001b[30X\u001b[39;67H\u001b[26;46H"] -[28.173867, "o", "\u001b[33;38r\u001b[33;1H\u001bM\u001b[1;53r\u001b[33;1H\u001b[37m\u001b[44m \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b[31m\u001b[46mm\u001b(B\u001b[0;1m\u001b[33m\u001b[46multi\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[20X\u001b[33;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b[39;49m\u001b(B\u001b(B\u001b[m\u001b[33;71H\u001b(0\u001b[0m\u001b[30m\u001b[46m\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\u001b[26;46H\u001b[39;49m\u001b(B\u001b[m"] -[28.174029, "o", "\u001b[A\u001b(B\u001b[0;1m\u001b[31m\u001b[44ms\u001b(B\u001b[0m\u001b[37m\u001b[44mlonly\u001b[26;41H\u001b[39;49m\u001b(B\u001b[m\u001b[30X\u001b[39;67H\u001b[25;46H"] -[29.604181, "o", "\u001b[33;38r\u001b[33;1H\u001bM\u001b[1;53r\u001b[33;1H\u001b[37m\u001b[44m \u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b[31m\u001b[46ms\u001b(B\u001b[0;1m\u001b[33m\u001b[46mlonly\u001b(B\u001b[0m\u001b[30m\u001b[46m\u001b[19X\u001b[33;38H\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b[39;49m\u001b(B\u001b(B\u001b[m\u001b[33;71H\u001b(0\u001b[0m\u001b[30m\u001b[46m\u001b(0\u001b[0;1m\u001b[36m\u001b[46mx\u001b(B\u001b[0m\u001b[30m\u001b[46m \u001b(0\u001b[0m\u001b[30m\u001b[46mx\u001b(B\u001b[0m\u001b[37m\u001b[40m \u001b[37m\u001b[44m\u001b[K\u001b[25;46H\u001b[39;49m\u001b(B\u001b[m"] -[29.604549, "o", "\u001b[A\u001b(B\u001b[0;1m\u001b[31m\u001b[44ma\u001b(B\u001b[0m\u001b[37m\u001b[44mlien\u001b[25;41H\u001b[39;49m\u001b(B\u001b[m\u001b[30X\u001b[39;67H\u001b[24;46H"] -[30.754449, "o", "\u001b[43;28H"] -[31.612444, "o", "\n\n\u001b[75G\u001b[?1000l\u001b[53;1H\r\u001b[?1l\u001b>"] -[31.623864, "o", "\u001b[H\u001b[2J"] -[31.624319, "o", "+==============================================================================\r\n| Enabled repositories:\r\n+==============================================================================\r\n| slack, sbo, alien\r\n"] -[31.624409, "o", "+==============================================================================\r\n"] -[31.624821, "o", "\u001b[38;5;247mTotal 3/17 repositories enabled.\u001b[0m\r\n\r\n"] -[31.669374, "o", "\u001b[?2004h"] -[31.773915, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[33.09433, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C"] -[33.094789, "o", "\u001b[49C \r\u001b[79C\r\u001b[30C\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[33.094879, "o", "\u001b[38;5;240mlpkg repo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[33.200675, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg repo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[33.243536, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg repo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[33.423895, "o", "\u001b[38;5;196mk\u001b[38;5;240mg repo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[33.541589, "o", "\u001b[38;5;196mg\u001b[38;5;240m repo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[33.542033, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m repo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[34.236474, "o", "\u001b[38;5;26m \u001b[38;5;240mrepo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[34.236897, "o", "\u001b[44C \r\u001b[79C\r\u001b[35C"] -[34.23724, "o", "\b \u001b[38;5;240mrepo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[34.445359, "o", "u\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C\u001b[43C \r\u001b[79C\r\u001b[36C"] -[34.445686, "o", "\u001b[38;5;240mpdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C\b\u001b[38;5;39mu\u001b[38;5;240mpdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[34.683277, "o", "\u001b[38;5;39mp\u001b[38;5;240mdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[34.917268, "o", "\u001b[38;5;39md\u001b[38;5;240mate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[34.917664, "o", "\u001b[41C \r\u001b[79C\r\u001b[38C"] -[35.125109, "o", "\u001b[38;5;39ma\u001b[38;5;240mte\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[35.23322, "o", "\u001b[38;5;39mt\u001b[38;5;240me\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C\u001b[39C \r\u001b[79C\r\u001b[40C"] -[35.410482, "o", "\u001b[38;5;39me\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[35.410637, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[36.751433, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C\r\n\u001b[30m\u001b(B\u001b[m"] -[36.751839, "o", "\u001b[?2004l"] -[36.752183, "o", "\u001b]0;slpkg /home/ds"] -[36.752509, "o", "lackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[37.036487, "o", "\r\nCheck and update repositories:\r\n\r\n"] -[37.036664, "o", "\u001b[38;5;247mCheck repository [\u001b[36mslack\u001b[38;5;247m] ... \u001b[0m"] -[37.463143, "o", "\u001b[38;5;247mDone\u001b[0m\r\n"] -[37.46336, "o", "\u001b[38;5;247mCheck repository [\u001b[36msbo\u001b[38;5;247m] ... \u001b[0m"] -[38.329108, "o", "\u001b[38;5;247mDone\u001b[0m\r\n"] -[38.329479, "o", "\u001b[38;5;247mCheck repository [\u001b[36malien\u001b[38;5;247m] ... \u001b[0m"] -[39.079964, "o", "\u001b[38;5;247mDone\u001b[0m\r\n\r\n"] -[39.097349, "o", "\u001b[?2004h"] -[39.202647, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[44.589172, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[44.589596, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[44.686483, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[44.686885, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[44.726408, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[44.726799, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[44.914922, "o", "\u001b[38;5;196mk\u001b[38;5;240mg update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[44.995786, "o", "\u001b[38;5;196mg\u001b[38;5;240m update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[44.995909, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C"] -[44.99633, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[45.337844, "o", "\u001b[38;5;26m \u001b[38;5;240mupdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[45.337914, "o", "\b \u001b[38;5;240mupdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[45.524079, "o", "-\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C"] -[45.524235, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[45.524707, "o", "\u001b[38;5;240mr Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[45.524899, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mr Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[45.660952, "o", "\u001b[38;5;39ms\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[45.661394, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[45.661516, "o", "\u001b[38;5;240m sbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[45.882267, "o", "\u001b[38;5;39m \u001b[38;5;240msbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[45.882411, "o", "\u001b[41C \r\u001b[79C\r\u001b[38C"] -[45.883006, "o", "\b \u001b[38;5;240msbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[46.000256, "o", "s\u001b[38;5;240mbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[46.000894, "o", "\b\u001b[38;5;39m\u001b[4ms\u001b[38;5;240m\u001b[24mbo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[46.378228, "o", "\u001b[38;5;39m\u001b[4mb\u001b[38;5;240m\u001b[24mo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[46.37839, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[46.378491, "o", "\b\b\u001b[38;5;39msb\u001b[38;5;240mo graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[46.429435, "o", "\u001b[38;5;39mo\u001b[38;5;240m graph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C\u001b[38C \r\u001b[79C\r\u001b[41C"] -[46.578429, "o", "\u001b[38;5;39m \u001b[38;5;240mgraph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C\u001b[37C \r\u001b[79C\r\u001b[42C"] -[46.579083, "o", "\b \u001b[38;5;240mgraph-easy\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[47.552363, "o", "F\u001b[K\u001b[36C \r\u001b[79C\r\u001b[43C\u001b[36C \r\u001b[79C\r\u001b[43C"] -[47.55264, "o", "\u001b[38;5;240mlask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[47.552696, "o", "\b\u001b[38;5;39mF\u001b[38;5;240mlask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[47.713087, "o", "\u001b[38;5;39ml\u001b[38;5;240mask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[47.713209, "o", "\u001b[35C \r\u001b[79C\r\u001b[44C"] -[47.982726, "o", "\u001b[38;5;39ma\u001b[38;5;240msk\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[47.98311, "o", "\u001b[34C \r\u001b[79C\r\u001b[45C"] -[48.275385, "o", "\u001b[38;5;39ms\u001b[38;5;240mk\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C\u001b[33C \r\u001b[79C\r\u001b[46C"] -[48.380129, "o", "\u001b[38;5;39mk\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[48.380284, "o", "\u001b[32C \r\u001b[79C\r\u001b[47C"] -[48.774372, "o", "\u001b[32C \r\u001b[79C\r\u001b[47C\r\n\u001b[30m\u001b(B\u001b[m"] -[48.774808, "o", "\u001b[?2004l"] -[48.775359, "o", "\u001b]0;slpkg /hom"] -[48.775469, "o", "e/dslackw\u0007\u001b[30m\u001b(B"] -[48.775835, "o", "\u001b[m\r"] -[49.068122, "o", "\u001b[38;5;247mReading package lists...\u001b[0m "] -[50.06244, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n\u001b[38;5;247mResolving dependencies...\u001b[0m "] -[50.5922, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n\r\nThe following packages will be automatically installed or upgraded \r\nwith new version:\r\n\r\n+==============================================================================\r\n| Package New version Arch Build Repos Size\r\n+==============================================================================\r\nInstalling:\r\n"] -[50.612099, "o", " \u001b[31mFlask\u001b[0m 1.1.1 x86_64 SBo\r\nInstalling for dependencies:\r\n"] -[50.632243, "o", " \u001b[32mpython3\u001b[0m 3.7.2 x86_64 SBo\r\n"] -[50.65215, "o", " \u001b[31mMarkupSafe\u001b[0m 1.1.1 x86_64 SBo\r\n"] -[50.671567, "o", " \u001b[31mwerkzeug\u001b[0m 0.15.6 x86_64 SBo\r\n"] -[50.690368, "o", " \u001b[31mJinja2\u001b[0m 2.10.3 x86_64 SBo\r\n"] -[50.709252, "o", " \u001b[31mitsdangerous\u001b[0m 0.24 x86_64 SBo\r\n"] -[50.72822, "o", " \u001b[31mclick\u001b[0m 7.0 x86_64 SBo\r\n\r\nInstalling summary\r\n===============================================================================\r\n\u001b[38;5;247mTotal 7 packages.\r\n6 packages will be installed, 1 already installed and 0 package\r\nwill be upgraded.\u001b[0m\r\n\r\nWould you like to continue [y/N]? "] -[52.804592, "o", "y"] -[53.637102, "o", "\r\n"] -[53.750336, "o", "+==============================================================================\r\n| Package python3-3.7.2 is already installed\r\n+==============================================================================\r\n"] -[53.836448, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> MarkupSafe.tar.gz\r\n\r\n"] -[53.841857, "o", "--2019-12-03 19:17:16-- http://slackbuilds.org/slackbuilds/14.2/python/MarkupSafe.tar.gz\r\nResolving slackbuilds.org... "] -[54.303196, "o", "208.94.237.149\r\nConnecting to slackbuilds.org|208.94.237.149|:80... "] -[54.5034, "o", "connected.\r\nHTTP request sent, awaiting response... "] -[54.712369, "o", "200 OK\r\nLength: 2123 (2.1K) [application/x-gzip]\r\n"] -[54.712833, "o", "Saving to: ‘/tmp/slpkg/build/MarkupSafe.tar.gz’\r\n\r\n"] -[54.713643, "o", "\rMarkupSafe.tar.gz 0%[ ] 0 --.-KB/s "] -[54.713751, "o", "\rMarkupSafe.tar.gz 100%[===================>] 2.07K --.-KB/s in 0s \r\n\r\n"] -[54.714186, "o", "2019-12-03 19:17:17 (109 MB/s) - ‘/tmp/slpkg/build/MarkupSafe.tar.gz’ saved [2123/2123]\r\n\r\n"] -[54.715282, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> MarkupSafe-1.1.1.tar.gz\r\n\r\n"] -[54.732586, "o", "--2019-12-03 19:17:17-- https://pypi.io/packages/source/M/MarkupSafe/MarkupSafe-1.1.1.tar.gz\r\n"] -[54.737986, "o", "Resolving pypi.io... "] -[55.012562, "o", "2a04:4e42:600::223, 2a04:4e42:400::223, 2a04:4e42:200::223, ...\r\nConnecting to pypi.io|2a04:4e42:600::223|:443... "] -[55.058983, "o", "connected.\r\n"] -[55.165184, "o", "HTTP request sent, awaiting response... "] -[55.223179, "o", "301 Redirect to Primary Domain\r\nLocation: https://pypi.org/packages/source/M/MarkupSafe/MarkupSafe-1.1.1.tar.gz [following]\r\n"] -[55.223662, "o", "--2019-12-03 19:17:18-- https://pypi.org/packages/source/M/MarkupSafe/MarkupSafe-1.1.1.tar.gz\r\nResolving pypi.org... "] -[55.346181, "o", "2a04:4e42:200::223, 2a04:4e42::223, 2a04:4e42:400::223, ...\r\nConnecting to pypi.org|2a04:4e42:200::223|:443... "] -[55.39395, "o", "connected.\r\n"] -[55.49791, "o", "HTTP request sent, awaiting response... "] -[55.655652, "o", "301 Moved Permanently\r\nLocation: https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-1.1.1.tar.gz [following]\r\n"] -[55.656152, "o", "--2019-12-03 19:17:18-- https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-1.1.1.tar.gz\r\nResolving files.pythonhosted.org... "] -[55.814173, "o", "2a04:4e42:1b::319, 151.101.13.63\r\nConnecting to files.pythonhosted.org|2a04:4e42:1b::319|:443... "] -[55.861099, "o", "connected.\r\n"] -[55.965223, "o", "HTTP request sent, awaiting response... "] -[56.014459, "o", "302 Found\r\n"] -[56.014945, "o", "Location: https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz [following]\r\n--2019-12-03 19:17:19-- https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz\r\n"] -[56.015386, "o", "Reusing existing connection to [files.pythonhosted.org]:443.\r\nHTTP request sent, awaiting response... "] -[56.06628, "o", "416 Range Not Satisfiable\r\n\r\n The file is already fully retrieved; nothing to do.\r\n\r\n"] -[56.157574, "o", "\r\n"] -[56.157659, "o", "+==============================================================================\r\n| MD5SUM check for MarkupSafe-1.1.1.tar.gz [ \u001b[32mPASSED\u001b[0m ]\r\n+==============================================================================\r\n\r\n"] -[56.179089, "o", "MarkupSafe-1.1.1/\r\nMarkupSafe-1.1.1/CHANGES.rst\r\nMarkupSafe-1.1.1/LICENSE.rst\r\nMarkupSafe-1.1.1/MANIFEST.in\r\nMarkupSafe-1.1.1/PKG-INFO\r\n"] -[56.179242, "o", "MarkupSafe-1.1.1/README.rst\r\nMarkupSafe-1.1.1/docs/\r\nMarkupSafe-1.1.1/docs/Makefile\r\nMarkupSafe-1.1.1/docs/changes.rst\r\nMarkupSafe-1.1.1/docs/conf.py\r\nMarkupSafe-1.1.1/docs/escaping.rst\r\nMarkupSafe-1.1.1/docs/formatting.rst\r\nMarkupSafe-1.1.1/docs/html.rst\r\nMarkupSafe-1.1.1/docs/index.rst\r\nMarkupSafe-1.1.1/docs/license.rst\r\nMarkupSafe-1.1.1/docs/make.bat\r\n"] -[56.179304, "o", "MarkupSafe-1.1.1/docs/requirements.txt\r\nMarkupSafe-1.1.1/setup.cfg\r\nMarkupSafe-1.1.1/setup.py\r\nMarkupSafe-1.1.1/src/\r\nMarkupSafe-1.1.1/src/MarkupSafe.egg-info/\r\nMarkupSafe-1.1.1/src/MarkupSafe.egg-info/PKG-INFO\r\n"] -[56.179353, "o", "MarkupSafe-1.1.1/src/MarkupSafe.egg-info/SOURCES.txt\r\nMarkupSafe-1.1.1/src/MarkupSafe.egg-info/dependency_links.txt\r\nMarkupSafe-1.1.1/src/MarkupSafe.egg-info/top_level.txt\r\n"] -[56.179394, "o", "MarkupSafe-1.1.1/src/markupsafe/\r\nMarkupSafe-1.1.1/src/markupsafe/__init__.py\r\n"] -[56.179431, "o", "MarkupSafe-1.1.1/src/markupsafe/_compat.py\r\nMarkupSafe-1.1.1/src/markupsafe/_constants.py\r\n"] -[56.179468, "o", "MarkupSafe-1.1.1/src/markupsafe/_native.py\r\nMarkupSafe-1.1.1/src/markupsafe/_speedups.c\r\n"] -[56.179503, "o", "MarkupSafe-1.1.1/tests/\r\nMarkupSafe-1.1.1/tests/conftest.py\r\n"] -[56.179538, "o", "MarkupSafe-1.1.1/tests/test_escape.py\r\nMarkupSafe-1.1.1/tests/test_exception_custom_html.py\r\n"] -[56.179574, "o", "MarkupSafe-1.1.1/tests/test_leak.py\r\nMarkupSafe-1.1.1/tests/test_markupsafe.py\r\n"] -[56.179617, "o", "MarkupSafe-1.1.1/tox.ini\r\n"] -[56.316314, "o", "/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'project_urls'\r\n warnings.warn(msg)\r\n/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'\r\n warnings.warn(msg)\r\n"] -[56.324025, "o", "running install\r\n"] -[56.32585, "o", "running build\r\nrunning build_py\r\ncreating build\r\ncreating build/lib.linux-x86_64-2.7\r\ncreating build/lib.linux-x86_64-2.7/markupsafe\r\n"] -[56.326024, "o", "copying src/markupsafe/_native.py -> build/lib.linux-x86_64-2.7/markupsafe\r\n"] -[56.326157, "o", "copying src/markupsafe/__init__.py -> build/lib.linux-x86_64-2.7/markupsafe\r\n"] -[56.326254, "o", "copying src/markupsafe/_constants.py -> build/lib.linux-x86_64-2.7/markupsafe\r\n"] -[56.326364, "o", "copying src/markupsafe/_compat.py -> build/lib.linux-x86_64-2.7/markupsafe\r\n"] -[56.326459, "o", "running egg_info\r\n"] -[56.32909, "o", "writing src/MarkupSafe.egg-info/PKG-INFO\r\n"] -[56.329321, "o", "writing top-level names to src/MarkupSafe.egg-info/top_level.txt\r\n"] -[56.329397, "o", "writing dependency_links to src/MarkupSafe.egg-info/dependency_links.txt\r\n"] -[56.378562, "o", "reading manifest file 'src/MarkupSafe.egg-info/SOURCES.txt'\r\n"] -[56.379489, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[56.380256, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[56.380586, "o", "warning: no previously-included files matching '*.py[co]' found anywhere in distribution\r\n"] -[56.381431, "o", "writing manifest file 'src/MarkupSafe.egg-info/SOURCES.txt'\r\n"] -[56.381931, "o", "copying src/markupsafe/_speedups.c -> build/lib.linux-x86_64-2.7/markupsafe\r\n"] -[56.382183, "o", "running build_ext\r\n"] -[56.392511, "o", "building 'markupsafe._speedups' extension\r\ncreating build/temp.linux-x86_64-2.7\r\ncreating build/temp.linux-x86_64-2.7/src\r\n"] -[56.392654, "o", "creating build/temp.linux-x86_64-2.7/src/markupsafe\r\ngcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -O2 -fPIC -fPIC -I/usr/include/python2.7 -c src/markupsafe/_speedups.c -o build/temp.linux-x86_64-2.7/src/markupsafe/_speedups.o\r\n"] -[56.472699, "o", "gcc -pthread -shared -O2 -fPIC build/temp.linux-x86_64-2.7/src/markupsafe/_speedups.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/markupsafe/_speedups.so\r\n"] -[56.490991, "o", "running install_lib\r\n"] -[56.491934, "o", "creating /tmp/SBo/package-MarkupSafe/usr\r\ncreating /tmp/SBo/package-MarkupSafe/usr/lib64\r\ncreating /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7\r\n"] -[56.492015, "o", "creating /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages\r\ncreating /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages/markupsafe\r\n"] -[56.492161, "o", "copying build/lib.linux-x86_64-2.7/markupsafe/_speedups.c -> /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages/markupsafe\r\n"] -[56.49224, "o", "copying build/lib.linux-x86_64-2.7/markupsafe/_native.py -> /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages/markupsafe\r\n"] -[56.492307, "o", "copying build/lib.linux-x86_64-2.7/markupsafe/__init__.py -> /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages/markupsafe\r\n"] -[56.492433, "o", "copying build/lib.linux-x86_64-2.7/markupsafe/_constants.py -> /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages/markupsafe\r\n"] -[56.492476, "o", "copying build/lib.linux-x86_64-2.7/markupsafe/_compat.py -> /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages/markupsafe\r\n"] -[56.492584, "o", "copying build/lib.linux-x86_64-2.7/markupsafe/_speedups.so -> /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages/markupsafe\r\n"] -[56.492702, "o", "running install_egg_info\r\n"] -[56.493266, "o", "Copying src/MarkupSafe.egg-info to /tmp/SBo/package-MarkupSafe/usr/lib64/python2.7/site-packages/MarkupSafe-1.1.1-py2.7.egg-info\r\n"] -[56.493713, "o", "running install_scripts\r\n"] -[56.665205, "o", "running install\r\n"] -[56.665804, "o", "running build\r\nrunning build_py\r\n"] -[56.67853, "o", "creating build/lib.linux-x86_64-3.7\r\ncreating build/lib.linux-x86_64-3.7/markupsafe\r\ncopying src/markupsafe/_native.py -> build/lib.linux-x86_64-3.7/markupsafe\r\n"] -[56.678759, "o", "copying src/markupsafe/__init__.py -> build/lib.linux-x86_64-3.7/markupsafe\r\n"] -[56.678824, "o", "copying src/markupsafe/_constants.py -> build/lib.linux-x86_64-3.7/markupsafe\r\n"] -[56.678899, "o", "copying src/markupsafe/_compat.py -> build/lib.linux-x86_64-3.7/markupsafe\r\n"] -[56.678952, "o", "running egg_info\r\n"] -[56.681508, "o", "writing src/MarkupSafe.egg-info/PKG-INFO\r\n"] -[56.68184, "o", "writing dependency_links to src/MarkupSafe.egg-info/dependency_links.txt\r\n"] -[56.682096, "o", "writing top-level names to src/MarkupSafe.egg-info/top_level.txt\r\n"] -[56.72935, "o", "reading manifest file 'src/MarkupSafe.egg-info/SOURCES.txt'\r\n"] -[56.729745, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[56.73043, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[56.730756, "o", "warning: no previously-included files matching '*.py[co]' found anywhere in distribution\r\n"] -[56.731597, "o", "writing manifest file 'src/MarkupSafe.egg-info/SOURCES.txt'\r\n"] -[56.73203, "o", "copying src/markupsafe/_speedups.c -> build/lib.linux-x86_64-3.7/markupsafe\r\n"] -[56.732334, "o", "running build_ext\r\n"] -[56.73363, "o", "building 'markupsafe._speedups' extension\r\n"] -[56.733743, "o", "creating build/temp.linux-x86_64-3.7\r\ncreating build/temp.linux-x86_64-3.7/src\r\ncreating build/temp.linux-x86_64-3.7/src/markupsafe\r\n"] -[56.733883, "o", "gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -O2 -fPIC -fPIC -I/usr/include/python3.7m -c src/markupsafe/_speedups.c -o build/temp.linux-x86_64-3.7/src/markupsafe/_speedups.o\r\n"] -[56.854911, "o", "gcc -pthread -shared -O2 -fPIC build/temp.linux-x86_64-3.7/src/markupsafe/_speedups.o -L/usr/lib64 -lpython3.7m -o build/lib.linux-x86_64-3.7/markupsafe/_speedups.cpython-37m-x86_64-linux-gnu.so\r\n"] -[56.87598, "o", "running install_lib\r\n"] -[56.877155, "o", "creating /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7\r\n"] -[56.877234, "o", "creating /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages\r\n"] -[56.877298, "o", "creating /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages/markupsafe\r\n"] -[56.877386, "o", "copying build/lib.linux-x86_64-3.7/markupsafe/_speedups.c -> /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages/markupsafe\r\n"] -[56.877541, "o", "copying build/lib.linux-x86_64-3.7/markupsafe/_native.py -> /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages/markupsafe\r\n"] -[56.877661, "o", "copying build/lib.linux-x86_64-3.7/markupsafe/__init__.py -> /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages/markupsafe\r\n"] -[56.877789, "o", "copying build/lib.linux-x86_64-3.7/markupsafe/_constants.py -> /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages/markupsafe\r\n"] -[56.877934, "o", "copying build/lib.linux-x86_64-3.7/markupsafe/_speedups.cpython-37m-x86_64-linux-gnu.so -> /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages/markupsafe\r\n"] -[56.878098, "o", "copying build/lib.linux-x86_64-3.7/markupsafe/_compat.py -> /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages/markupsafe\r\n"] -[56.878195, "o", "running install_egg_info\r\n"] -[56.879352, "o", "Copying src/MarkupSafe.egg-info to /tmp/SBo/package-MarkupSafe/usr/lib64/python3.7/site-packages/MarkupSafe-1.1.1-py3.7.egg-info\r\n"] -[56.88002, "o", "running install_scripts\r\n"] -[57.001745, "o", "\r\nSlackware package maker, version 3.141593.\r\n\r\nSearching for symbolic links:\r\n"] -[57.006996, "o", "\r\n"] -[57.009069, "o", "No symbolic links were found, so we won't make an installation script.\r\nYou can make your own later in ./install/doinst.sh and rebuild the\r\npackage if you like.\r\n"] -[57.010683, "o", "\r\nThis next step is optional - you can set the directories in your package\r\nto some sane permissions. If any of the directories in your package have\r\nspecial permissions, then DO NOT reset them here!\r\n\r\nWould you like to reset all directory permissions to 755 (drwxr-xr-x) and\r\ndirectory ownerships to root.root ([y]es, [n]o)? "] -[57.01081, "o", "n\r\n\r\n"] -[57.013494, "o", "Creating Slackware package: /tmp/MarkupSafe-1.1.1-x86_64-1_SBo.tgz\r\n\r\n"] -[57.017741, "o", "./\r\nusr/\r\nusr/doc/\r\nusr/doc/MarkupSafe-1.1.1/\r\nusr/doc/MarkupSafe-1.1.1/README.rst\r\nusr/doc/MarkupSafe-1.1.1/LICENSE.rst\r\nusr/doc/MarkupSafe-1.1.1/MarkupSafe.SlackBuild\r\nusr/doc/MarkupSafe-1.1.1/CHANGES.rst\r\n"] -[57.017866, "o", "usr/lib64/\r\nusr/lib64/python3.7/\r\nusr/lib64/python3.7/site-packages/\r\nusr/lib64/python3.7/site-packages/MarkupSafe-1.1.1-py3.7.egg-info/\r\nusr/lib64/python3.7/site-packages/MarkupSafe-1.1.1-py3.7.egg-info/top_level.txt\r\nusr/lib64/python3.7/site-packages/MarkupSafe-1.1.1-py3.7.egg-info/dependency_links.txt\r\nusr/lib64/python3.7/site-packages/MarkupSafe-1.1.1-py3.7.egg-info/SOURCES.txt\r\nusr/lib64/python3.7/site-packages/MarkupSafe-1.1.1-py3.7.egg-info/PKG-INFO\r\nusr/lib64/python3.7/site-packages/markupsafe/\r\nusr/lib64/python3.7/site-packages/markupsafe/_speedups.c\r\nusr/lib64/python3.7/site-packages/markupsafe/_native.py\r\nusr/lib64/python3.7/site-packages/markupsafe/__init__.py\r\nusr/lib64/python3.7/site-packages/markupsafe/_constants.py\r\n"] -[57.017931, "o", "usr/lib64/python3.7/site-packages/markupsafe/_speedups.cpython-37m-x86_64-linux-gnu.so\r\nusr/lib64/python3.7/site-packages/markupsafe/_compat.py\r\nusr/lib64/python2.7/\r\nusr/lib64/python2.7/site-packages/\r\n"] -[57.017991, "o", "usr/lib64/python2.7/site-packages/MarkupSafe-1.1.1-py2.7.egg-info/\r\nusr/lib64/python2.7/site-packages/MarkupSafe-1.1.1-py2.7.egg-info/top_level.txt\r\nusr/lib64/python2.7/site-packages/MarkupSafe-1.1.1-py2.7.egg-info/dependency_links.txt\r\nusr/lib64/python2.7/site-packages/MarkupSafe-1.1.1-py2.7.egg-info/SOURCES.txt\r\nusr/lib64/python2.7/site-packages/MarkupSafe-1.1.1-py2.7.egg-info/PKG-INFO\r\n"] -[57.018045, "o", "usr/lib64/python2.7/site-packages/markupsafe/\r\nusr/lib64/python2.7/site-packages/markupsafe/_speedups.c\r\n"] -[57.018112, "o", "usr/lib64/python2.7/site-packages/markupsafe/_native.py\r\n"] -[57.018163, "o", "usr/lib64/python2.7/site-packages/markupsafe/__init__.py\r\nusr/lib64/python2.7/site-packages/markupsafe/_constants.py\r\nusr/lib64/python2.7/site-packages/markupsafe/_compat.py\r\nusr/lib64/python2.7/site-packages/markupsafe/_speedups.so\r\n"] -[57.018214, "o", "install/\r\ninstall/slack-desc\r\n"] -[57.03798, "o", "\r\nSlackware package /tmp/MarkupSafe-1.1.1-x86_64-1_SBo.tgz created.\r\n\r\n"] -[57.038771, "o", "Total build time for the package MarkupSafe : 0.97 Sec\r\n\r\n"] -[57.048828, "o", "[ \u001b[32mInstalling\u001b[0m ] --> MarkupSafe-1.1.1\r\n"] -[57.06051, "o", "\r\n+==============================================================================\r\n| Installing new package /tmp/MarkupSafe-1.1.1-x86_64-1_SBo.tgz\r\n+==============================================================================\r\n\r\n"] -[57.078616, "o", "Verifying package MarkupSafe-1.1.1-x86_64-1_SBo.tgz.\r\n"] -[57.091088, "o", "Installing package MarkupSafe-1.1.1-x86_64-1_SBo.tgz:\r\nPACKAGE DESCRIPTION:\r\n"] -[57.092114, "o", "# MarkupSafe (unicode subclass)\r\n#\r\n# MarkupSafe implements a unicode subclass that supports HTML strings.\r\n#\r\n# Homepage: https://pypi.python.org/pypi/MarkupSafe\r\n#\r\n"] -[57.203226, "o", "Package MarkupSafe-1.1.1-x86_64-1_SBo.tgz installed.\r\n\r\n"] -[57.203466, "o", "\r\n"] -[57.20375, "o", "Completed!\r\n\r\n"] -[57.289805, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> werkzeug.tar.gz\r\n\r\n"] -[57.295965, "o", "--2019-12-03 19:17:20-- http://slackbuilds.org/slackbuilds/14.2/python/werkzeug.tar.gz\r\nResolving slackbuilds.org... "] -[57.681772, "o", "208.94.237.149\r\nConnecting to slackbuilds.org|208.94.237.149|:80... "] -[57.882, "o", "connected.\r\nHTTP request sent, awaiting response... "] -[58.09356, "o", "200 OK\r\nLength: 2692 (2.6K) [application/x-gzip]\r\nSaving to: ‘/tmp/slpkg/build/werkzeug.tar.gz’\r\n\r\n"] -[58.094303, "o", "\rwerkzeug.tar.gz 0%[ ] 0 --.-KB/s \rwerkzeug.tar.gz 100%[===================>] 2.63K --.-KB/s in 0s \r\n\r\n"] -[58.094536, "o", "2019-12-03 19:17:21 (223 MB/s) - ‘/tmp/slpkg/build/werkzeug.tar.gz’ saved [2692/2692]\r\n\r\n"] -[58.095203, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> Werkzeug-0.15.6.tar.gz\r\n\r\n"] -[58.107439, "o", "--2019-12-03 19:17:21-- https://files.pythonhosted.org/packages/a3/32/2c91f662d66d4ae8993987b56cd1706a9a526f3ac310dd7fca47d7851533/Werkzeug-0.15.6.tar.gz\r\n"] -[58.112303, "o", "Resolving files.pythonhosted.org... "] -[58.225029, "o", "2a04:4e42:3::319, 151.101.13.63\r\nConnecting to files.pythonhosted.org|2a04:4e42:3::319|:443... "] -[58.272331, "o", "connected.\r\n"] -[58.37834, "o", "HTTP request sent, awaiting response... "] -[58.428051, "o", "416 Range Not Satisfiable\r\n\r\n The file is already fully retrieved; nothing to do.\r\n\r\n"] -[58.520758, "o", "\r\n"] -[58.522611, "o", "+==============================================================================\r\n| MD5SUM check for Werkzeug-0.15.6.tar.gz [ \u001b[32mPASSED\u001b[0m ]\r\n+==============================================================================\r\n\r\n"] -[58.549802, "o", "Werkzeug-0.15.6/\r\nWerkzeug-0.15.6/CHANGES.rst\r\n"] -[58.549895, "o", "Werkzeug-0.15.6/LICENSE.rst\r\nWerkzeug-0.15.6/MANIFEST.in\r\nWerkzeug-0.15.6/PKG-INFO\r\nWerkzeug-0.15.6/README.rst\r\n"] -[58.55002, "o", "Werkzeug-0.15.6/artwork/"] -[58.550048, "o", "\r\nWerkzeug-0.15.6/artwork/logo.png\r\n"] -[58.550167, "o", "Werkzeug-0.15.6/artwork/logo.svg\r\n"] -[58.550396, "o", "Werkzeug-0.15.6/docs/\r\nWerkzeug-0.15.6/docs/Makefile\r\n"] -[58.550462, "o", "Werkzeug-0.15.6/docs/_static/\r\nWerkzeug-0.15.6/docs/_static/debug-screenshot.png\r\n"] -[58.551964, "o", "Werkzeug-0.15.6/docs/_static/favicon.ico\r\nWerkzeug-0.15.6/docs/_static/shortly.png\r\n"] -[58.552606, "o", "Werkzeug-0.15.6/docs/_static/werkzeug.png\r\nWerkzeug-0.15.6/docs/changes.rst\r\n"] -[58.552636, "o", "Werkzeug-0.15.6/docs/conf.py\r\n"] -[58.552695, "o", "Werkzeug-0.15.6/docs/contrib/\r\n"] -[58.552775, "o", "Werkzeug-0.15.6/docs/contrib/atom.rst\r\nWerkzeug-0.15.6/docs/contrib/cache.rst\r\nWerkzeug-0.15.6/docs/contrib/fixers.rst\r\nWerkzeug-0.15.6/docs/contrib/index.rst\r\nWerkzeug-0.15.6/docs/contrib/iterio.rst\r\nWerkzeug-0.15.6/docs/contrib/lint.rst\r\nWerkzeug-0.15.6/docs/contrib/profiler.rst\r\n"] -[58.552837, "o", "Werkzeug-0.15.6/docs/contrib/securecookie.rst\r\nWerkzeug-0.15.6/docs/contrib/sessions.rst\r\nWerkzeug-0.15.6/docs/contrib/wrappers.rst\r\nWerkzeug-0.15.6/docs/datastructures.rst\r\n"] -[58.552891, "o", "Werkzeug-0.15.6/docs/debug.rst\r\nWerkzeug-0.15.6/docs/deployment/\r\n"] -[58.552944, "o", "Werkzeug-0.15.6/docs/deployment/cgi.rst\r\nWerkzeug-0.15.6/docs/deployment/fastcgi.rst\r\nWerkzeug-0.15.6/docs/deployment/index.rst\r\n"] -[58.552996, "o", "Werkzeug-0.15.6/docs/deployment/mod_wsgi.rst\r\nWerkzeug-0.15.6/docs/deployment/proxying.rst\r\n"] -[58.553047, "o", "Werkzeug-0.15.6/docs/exceptions.rst\r\nWerkzeug-0.15.6/docs/filesystem.rst\r\nWerkzeug-0.15.6/docs/http.rst\r\n"] -[58.553096, "o", "Werkzeug-0.15.6/docs/index.rst\r\nWerkzeug-0.15.6/docs/installation.rst\r\n"] -[58.553148, "o", "Werkzeug-0.15.6/docs/levels.rst\r\nWerkzeug-0.15.6/docs/local.rst\r\nWerkzeug-0.15.6/docs/make.bat\r\n"] -[58.553198, "o", "Werkzeug-0.15.6/docs/middleware/\r\nWerkzeug-0.15.6/docs/middleware/dispatcher.rst\r\n"] -[58.553248, "o", "Werkzeug-0.15.6/docs/middleware/http_proxy.rst\r\nWerkzeug-0.15.6/docs/middleware/index.rst\r\nWerkzeug-0.15.6/docs/middleware/lint.rst\r\n"] -[58.553296, "o", "Werkzeug-0.15.6/docs/middleware/profiler.rst\r\nWerkzeug-0.15.6/docs/middleware/proxy_fix.rst\r\n"] -[58.553347, "o", "Werkzeug-0.15.6/docs/middleware/shared_data.rst\r\nWerkzeug-0.15.6/docs/middlewares.rst\r\nWerkzeug-0.15.6/docs/quickstart.rst\r\n"] -[58.553396, "o", "Werkzeug-0.15.6/docs/request_data.rst\r\n"] -[58.553445, "o", "Werkzeug-0.15.6/docs/requirements.txt\r\nWerkzeug-0.15.6/docs/routing.rst\r\nWerkzeug-0.15.6/docs/serving.rst\r\n"] -[58.553493, "o", "Werkzeug-0.15.6/docs/terms.rst\r\nWerkzeug-0.15.6/docs/test.rst\r\n"] -[58.553542, "o", "Werkzeug-0.15.6/docs/transition.rst\r\nWerkzeug-0.15.6/docs/tutorial.rst\r\n"] -[58.553591, "o", "Werkzeug-0.15.6/docs/unicode.rst\r\nWerkzeug-0.15.6/docs/urls.rst\r\n"] -[58.553645, "o", "Werkzeug-0.15.6/docs/utils.rst\r\nWerkzeug-0.15.6/docs/wrappers.rst\r\n"] -[58.553694, "o", "Werkzeug-0.15.6/docs/wsgi.rst\r\nWerkzeug-0.15.6/examples/\r\n"] -[58.553744, "o", "Werkzeug-0.15.6/examples/README.rst\r\nWerkzeug-0.15.6/examples/contrib/\r\nWerkzeug-0.15.6/examples/contrib/README\r\n"] -[58.553793, "o", "Werkzeug-0.15.6/examples/contrib/securecookie.py\r\nWerkzeug-0.15.6/examples/contrib/sessions.py\r\n"] -[58.553842, "o", "Werkzeug-0.15.6/examples/cookieauth.py\r\nWerkzeug-0.15.6/examples/coolmagic/\r\n"] -[58.553892, "o", "Werkzeug-0.15.6/examples/coolmagic/__init__.py\r\nWerkzeug-0.15.6/examples/coolmagic/application.py\r\nWerkzeug-0.15.6/examples/coolmagic/helpers.py\r\n"] -[58.553941, "o", "Werkzeug-0.15.6/examples/coolmagic/public/\r\nWerkzeug-0.15.6/examples/coolmagic/public/style.css\r\nWerkzeug-0.15.6/examples/coolmagic/templates/\r\n"] -[58.554003, "o", "Werkzeug-0.15.6/examples/coolmagic/templates/layout.html\r\nWerkzeug-0.15.6/examples/coolmagic/templates/static/\r\n"] -[58.554052, "o", "Werkzeug-0.15.6/examples/coolmagic/templates/static/about.html\r\nWerkzeug-0.15.6/examples/coolmagic/templates/static/index.html\r\nWerkzeug-0.15.6/examples/coolmagic/templates/static/not_found.html\r\n"] -[58.5541, "o", "Werkzeug-0.15.6/examples/coolmagic/utils.py\r\n"] -[58.554148, "o", "Werkzeug-0.15.6/examples/coolmagic/views/\r\nWerkzeug-0.15.6/examples/coolmagic/views/__init__.py\r\nWerkzeug-0.15.6/examples/coolmagic/views/static.py\r\n"] -[58.554195, "o", "Werkzeug-0.15.6/examples/couchy/\r\nWerkzeug-0.15.6/examples/couchy/README\r\n"] -[58.554242, "o", "Werkzeug-0.15.6/examples/couchy/__init__.py\r\nWerkzeug-0.15.6/examples/couchy/application.py\r\nWerkzeug-0.15.6/examples/couchy/models.py\r\n"] -[58.55429, "o", "Werkzeug-0.15.6/examples/couchy/static/\r\nWerkzeug-0.15.6/examples/couchy/static/style.css\r\n"] -[58.554337, "o", "Werkzeug-0.15.6/examples/couchy/templates/\r\nWerkzeug-0.15.6/examples/couchy/templates/display.html\r\nWerkzeug-0.15.6/examples/couchy/templates/layout.html\r\n"] -[58.554384, "o", "Werkzeug-0.15.6/examples/couchy/templates/list.html\r\nWerkzeug-0.15.6/examples/couchy/templates/new.html\r\n"] -[58.554431, "o", "Werkzeug-0.15.6/examples/couchy/templates/not_found.html\r\nWerkzeug-0.15.6/examples/couchy/utils.py\r\n"] -[58.554478, "o", "Werkzeug-0.15.6/examples/couchy/views.py\r\nWerkzeug-0.15.6/examples/cupoftee/\r\nWerkzeug-0.15.6/examples/cupoftee/__init__.py\r\n"] -[58.554524, "o", "Werkzeug-0.15.6/examples/cupoftee/application.py\r\nWerkzeug-0.15.6/examples/cupoftee/db.py\r\n"] -[58.554571, "o", "Werkzeug-0.15.6/examples/cupoftee/network.py\r\nWerkzeug-0.15.6/examples/cupoftee/pages.py\r\n"] -[58.554614, "o", "Werkzeug-0.15.6/examples/cupoftee/shared/\r\nWerkzeug-0.15.6/examples/cupoftee/shared/content.png\r\n"] -[58.554631, "o", "Werkzeug-0.15.6/examples/cupoftee/shared/down.png\r\n"] -[58.554647, "o", "Werkzeug-0.15.6/examples/cupoftee/shared/favicon.ico\r\n"] -[58.5547, "o", "Werkzeug-0.15.6/examples/cupoftee/shared/header.png\r\n"] -[58.554724, "o", "Werkzeug-0.15.6/examples/cupoftee/shared/logo.png\r\n"] -[58.555034, "o", "Werkzeug-0.15.6/examples/cupoftee/shared/style.css\r\n"] -[58.555081, "o", "Werkzeug-0.15.6/examples/cupoftee/shared/up.png\r\nWerkzeug-0.15.6/examples/cupoftee/templates/\r\n"] -[58.555128, "o", "Werkzeug-0.15.6/examples/cupoftee/templates/layout.html\r\nWerkzeug-0.15.6/examples/cupoftee/templates/missingpage.html\r\nWerkzeug-0.15.6/examples/cupoftee/templates/search.html\r\n"] -[58.555183, "o", "Werkzeug-0.15.6/examples/cupoftee/templates/server.html\r\nWerkzeug-0.15.6/examples/cupoftee/templates/serverlist.html\r\n"] -[58.555231, "o", "Werkzeug-0.15.6/examples/cupoftee/utils.py\r\nWerkzeug-0.15.6/examples/httpbasicauth.py\r\n"] -[58.555279, "o", "Werkzeug-0.15.6/examples/i18nurls/\r\nWerkzeug-0.15.6/examples/i18nurls/__init__.py\r\nWerkzeug-0.15.6/examples/i18nurls/application.py\r\n"] -[58.555328, "o", "Werkzeug-0.15.6/examples/i18nurls/templates/\r\nWerkzeug-0.15.6/examples/i18nurls/templates/about.html\r\nWerkzeug-0.15.6/examples/i18nurls/templates/blog.html\r\n"] -[58.555376, "o", "Werkzeug-0.15.6/examples/i18nurls/templates/index.html\r\nWerkzeug-0.15.6/examples/i18nurls/templates/layout.html\r\n"] -[58.555424, "o", "Werkzeug-0.15.6/examples/i18nurls/urls.py\r\nWerkzeug-0.15.6/examples/i18nurls/views.py\r\nWerkzeug-0.15.6/examples/manage-coolmagic.py\r\n"] -[58.555471, "o", "Werkzeug-0.15.6/examples/manage-couchy.py\r\nWerkzeug-0.15.6/examples/manage-cupoftee.py\r\n"] -[58.555518, "o", "Werkzeug-0.15.6/examples/manage-i18nurls.py\r\nWerkzeug-0.15.6/examples/manage-plnt.py\r\n"] -[58.555565, "o", "Werkzeug-0.15.6/examples/manage-shorty.py\r\nWerkzeug-0.15.6/examples/manage-simplewiki.py\r\n"] -[58.555616, "o", "Werkzeug-0.15.6/examples/manage-webpylike.py\r\nWerkzeug-0.15.6/examples/partial/\r\nWerkzeug-0.15.6/examples/partial/README\r\n"] -[58.555665, "o", "Werkzeug-0.15.6/examples/partial/complex_routing.py\r\nWerkzeug-0.15.6/examples/plnt/\r\n"] -[58.555712, "o", "Werkzeug-0.15.6/examples/plnt/__init__.py\r\nWerkzeug-0.15.6/examples/plnt/database.py\r\nWerkzeug-0.15.6/examples/plnt/shared/\r\n"] -[58.555759, "o", "Werkzeug-0.15.6/examples/plnt/shared/style.css\r\nWerkzeug-0.15.6/examples/plnt/sync.py\r\n"] -[58.555807, "o", "Werkzeug-0.15.6/examples/plnt/templates/\r\nWerkzeug-0.15.6/examples/plnt/templates/about.html\r\nWerkzeug-0.15.6/examples/plnt/templates/index.html\r\n"] -[58.555854, "o", "Werkzeug-0.15.6/examples/plnt/templates/layout.html\r\nWerkzeug-0.15.6/examples/plnt/utils.py\r\n"] -[58.555901, "o", "Werkzeug-0.15.6/examples/plnt/views.py\r\nWerkzeug-0.15.6/examples/plnt/webapp.py\r\n"] -[58.555948, "o", "Werkzeug-0.15.6/examples/shortly/\r\nWerkzeug-0.15.6/examples/shortly/shortly.py\r\n"] -[58.555996, "o", "Werkzeug-0.15.6/examples/shortly/static/\r\nWerkzeug-0.15.6/examples/shortly/static/style.css\r\n"] -[58.556045, "o", "Werkzeug-0.15.6/examples/shortly/templates/\r\nWerkzeug-0.15.6/examples/shortly/templates/404.html\r\nWerkzeug-0.15.6/examples/shortly/templates/layout.html\r\n"] -[58.556093, "o", "Werkzeug-0.15.6/examples/shortly/templates/new_url.html\r\nWerkzeug-0.15.6/examples/shortly/templates/short_link_details.html\r\n"] -[58.556139, "o", "Werkzeug-0.15.6/examples/shorty/\r\nWerkzeug-0.15.6/examples/shorty/__init__.py\r\n"] -[58.556187, "o", "Werkzeug-0.15.6/examples/shorty/application.py\r\nWerkzeug-0.15.6/examples/shorty/models.py\r\nWerkzeug-0.15.6/examples/shorty/static/\r\n"] -[58.556234, "o", "Werkzeug-0.15.6/examples/shorty/static/style.css\r\nWerkzeug-0.15.6/examples/shorty/templates/\r\n"] -[58.556281, "o", "Werkzeug-0.15.6/examples/shorty/templates/display.html\r\nWerkzeug-0.15.6/examples/shorty/templates/layout.html\r\nWerkzeug-0.15.6/examples/shorty/templates/list.html\r\n"] -[58.556328, "o", "Werkzeug-0.15.6/examples/shorty/templates/new.html\r\nWerkzeug-0.15.6/examples/shorty/templates/not_found.html\r\n"] -[58.556374, "o", "Werkzeug-0.15.6/examples/shorty/utils.py\r\nWerkzeug-0.15.6/examples/shorty/views.py\r\n"] -[58.556422, "o", "Werkzeug-0.15.6/examples/simplewiki/\r\nWerkzeug-0.15.6/examples/simplewiki/__init__.py\r\n"] -[58.556471, "o", "Werkzeug-0.15.6/examples/simplewiki/actions.py\r\nWerkzeug-0.15.6/examples/simplewiki/application.py\r\nWerkzeug-0.15.6/examples/simplewiki/database.py\r\n"] -[58.556519, "o", "Werkzeug-0.15.6/examples/simplewiki/shared/\r\nWerkzeug-0.15.6/examples/simplewiki/shared/style.css\r\n"] -[58.556566, "o", "Werkzeug-0.15.6/examples/simplewiki/specialpages.py\r\nWerkzeug-0.15.6/examples/simplewiki/templates/\r\n"] -[58.55662, "o", "Werkzeug-0.15.6/examples/simplewiki/templates/action_diff.html\r\nWerkzeug-0.15.6/examples/simplewiki/templates/action_edit.html\r\nWerkzeug-0.15.6/examples/simplewiki/templates/action_log.html\r\n"] -[58.556668, "o", "Werkzeug-0.15.6/examples/simplewiki/templates/action_revert.html\r\nWerkzeug-0.15.6/examples/simplewiki/templates/action_show.html\r\n"] -[58.556715, "o", "Werkzeug-0.15.6/examples/simplewiki/templates/layout.html\r\nWerkzeug-0.15.6/examples/simplewiki/templates/macros.xml\r\nWerkzeug-0.15.6/examples/simplewiki/templates/missing_action.html\r\n"] -[58.556763, "o", "Werkzeug-0.15.6/examples/simplewiki/templates/page_index.html\r\nWerkzeug-0.15.6/examples/simplewiki/templates/page_missing.html\r\n"] -[58.556809, "o", "Werkzeug-0.15.6/examples/simplewiki/templates/recent_changes.html\r\nWerkzeug-0.15.6/examples/simplewiki/utils.py\r\n"] -[58.556856, "o", "Werkzeug-0.15.6/examples/upload.py\r\nWerkzeug-0.15.6/examples/webpylike/\r\n"] -[58.556902, "o", "Werkzeug-0.15.6/examples/webpylike/example.py\r\nWerkzeug-0.15.6/examples/webpylike/webpylike.py\r\n"] -[58.55695, "o", "Werkzeug-0.15.6/setup.cfg\r\nWerkzeug-0.15.6/setup.py\r\n"] -[58.556997, "o", "Werkzeug-0.15.6/src/\r\nWerkzeug-0.15.6/src/Werkzeug.egg-info/\r\nWerkzeug-0.15.6/src/Werkzeug.egg-info/PKG-INFO\r\n"] -[58.557044, "o", "Werkzeug-0.15.6/src/Werkzeug.egg-info/SOURCES.txt\r\nWerkzeug-0.15.6/src/Werkzeug.egg-info/dependency_links.txt\r\n"] -[58.557091, "o", "Werkzeug-0.15.6/src/Werkzeug.egg-info/requires.txt\r\nWerkzeug-0.15.6/src/Werkzeug.egg-info/top_level.txt\r\n"] -[58.557138, "o", "Werkzeug-0.15.6/src/werkzeug/\r\nWerkzeug-0.15.6/src/werkzeug/__init__.py\r\n"] -[58.557187, "o", "Werkzeug-0.15.6/src/werkzeug/_compat.py\r\nWerkzeug-0.15.6/src/werkzeug/_internal.py\r\n"] -[58.557234, "o", "Werkzeug-0.15.6/src/werkzeug/_reloader.py\r\nWerkzeug-0.15.6/src/werkzeug/contrib/\r\n"] -[58.557282, "o", "Werkzeug-0.15.6/src/werkzeug/contrib/__init__.py\r\nWerkzeug-0.15.6/src/werkzeug/contrib/atom.py\r\n"] -[58.557327, "o", "Werkzeug-0.15.6/src/werkzeug/contrib/cache.py\r\n"] -[58.557397, "o", "Werkzeug-0.15.6/src/werkzeug/contrib/fixers.py\r\n"] -[58.557443, "o", "Werkzeug-0.15.6/src/werkzeug/contrib/iterio.py\r\nWerkzeug-0.15.6/src/werkzeug/contrib/lint.py\r\n"] -[58.557491, "o", "Werkzeug-0.15.6/src/werkzeug/contrib/profiler.py\r\nWerkzeug-0.15.6/src/werkzeug/contrib/securecookie.py\r\n"] -[58.557563, "o", "Werkzeug-0.15.6/src/werkzeug/contrib/sessions.py\r\n"] -[58.557613, "o", "Werkzeug-0.15.6/src/werkzeug/contrib/wrappers.py\r\n"] -[58.557726, "o", "Werkzeug-0.15.6/src/werkzeug/datastructures.py\r\n"] -[58.558228, "o", "Werkzeug-0.15.6/src/werkzeug/debug/\r\n"] -[58.558289, "o", "Werkzeug-0.15.6/src/werkzeug/debug/__init__.py\r\nWerkzeug-0.15.6/src/werkzeug/debug/console.py\r\n"] -[58.558332, "o", "Werkzeug-0.15.6/src/werkzeug/debug/repr.py\r\n"] -[58.558463, "o", "Werkzeug-0.15.6/src/werkzeug/debug/shared/\r\n"] -[58.55851, "o", "Werkzeug-0.15.6/src/werkzeug/debug/shared/FONT_LICENSE\r\nWerkzeug-0.15.6/src/werkzeug/debug/shared/console.png\r\n"] -[58.558557, "o", "Werkzeug-0.15.6/src/werkzeug/debug/shared/debugger.js\r\nWerkzeug-0.15.6/src/werkzeug/debug/shared/jquery.js\r\n"] -[58.559164, "o", "Werkzeug-0.15.6/src/werkzeug/debug/shared/less.png\r\n"] -[58.55921, "o", "Werkzeug-0.15.6/src/werkzeug/debug/shared/more.png\r\nWerkzeug-0.15.6/src/werkzeug/debug/shared/source.png\r\n"] -[58.559257, "o", "Werkzeug-0.15.6/src/werkzeug/debug/shared/style.css\r\nWerkzeug-0.15.6/src/werkzeug/debug/shared/ubuntu.ttf\r\n"] -[58.559685, "o", "Werkzeug-0.15.6/src/werkzeug/debug/tbtools.py\r\n"] -[58.559848, "o", "Werkzeug-0.15.6/src/werkzeug/exceptions.py\r\n"] -[58.560122, "o", "Werkzeug-0.15.6/src/werkzeug/filesystem.py\r\nWerkzeug-0.15.6/src/werkzeug/formparser.py\r\nWerkzeug-0.15.6/src/werkzeug/http.py\r\n"] -[58.560529, "o", "Werkzeug-0.15.6/src/werkzeug/local.py\r\nWerkzeug-0.15.6/src/werkzeug/middleware/\r\n"] -[58.560641, "o", "Werkzeug-0.15.6/src/werkzeug/middleware/__init__.py\r\n"] -[58.560783, "o", "Werkzeug-0.15.6/src/werkzeug/middleware/dispatcher.py\r\nWerkzeug-0.15.6/src/werkzeug/middleware/http_proxy.py\r\nWerkzeug-0.15.6/src/werkzeug/middleware/lint.py\r\nWerkzeug-0.15.6/src/werkzeug/middleware/profiler.py\r\nWerkzeug-0.15.6/src/werkzeug/middleware/proxy_fix.py\r\nWerkzeug-0.15.6/src/werkzeug/middleware/shared_data.py\r\n"] -[58.561017, "o", "Werkzeug-0.15.6/src/werkzeug/posixemulation.py\r\nWerkzeug-0.15.6/src/werkzeug/routing.py\r\n"] -[58.56154, "o", "Werkzeug-0.15.6/src/werkzeug/security.py\r\nWerkzeug-0.15.6/src/werkzeug/serving.py\r\n"] -[58.562061, "o", "Werkzeug-0.15.6/src/werkzeug/test.py\r\n"] -[58.562148, "o", "Werkzeug-0.15.6/src/werkzeug/testapp.py\r\n"] -[58.562289, "o", "Werkzeug-0.15.6/src/werkzeug/urls.py\r\n"] -[58.562422, "o", "Werkzeug-0.15.6/src/werkzeug/useragents.py\r\n"] -[58.562539, "o", "Werkzeug-0.15.6/src/werkzeug/utils.py\r\n"] -[58.562577, "o", "Werkzeug-0.15.6/src/werkzeug/wrappers/\r\nWerkzeug-0.15.6/src/werkzeug/wrappers/__init__.py\r\n"] -[58.562665, "o", "Werkzeug-0.15.6/src/werkzeug/wrappers/accept.py\r\n"] -[58.562738, "o", "Werkzeug-0.15.6/src/werkzeug/wrappers/auth.py\r\nWerkzeug-0.15.6/src/werkzeug/wrappers/base_request.py\r\n"] -[58.562835, "o", "Werkzeug-0.15.6/src/werkzeug/wrappers/base_response.py\r\n"] -[58.562885, "o", "Werkzeug-0.15.6/src/werkzeug/wrappers/common_descriptors.py\r\n"] -[58.564112, "o", "Werkzeug-0.15.6/src/werkzeug/wrappers/etag.py\r\nWerkzeug-0.15.6/src/werkzeug/wrappers/json.py\r\nWerkzeug-0.15.6/src/werkzeug/wrappers/request.py\r\nWerkzeug-0.15.6/src/werkzeug/wrappers/response.py\r\nWerkzeug-0.15.6/src/werkzeug/wrappers/user_agent.py\r\nWerkzeug-0.15.6/src/werkzeug/wsgi.py\r\nWerkzeug-0.15.6/tests/\r\nWerkzeug-0.15.6/tests/__init__.py\r\nWerkzeug-0.15.6/tests/conftest.py\r\nWerkzeug-0.15.6/tests/contrib/\r\nWerkzeug-0.15.6/tests/contrib/__init__.py\r\nWerkzeug-0.15.6/tests/contrib/cache/\r\nWerkzeug-0.15.6/tests/contrib/cache/conftest.py\r\nWerkzeug-0.15.6/tests/contrib/cache/test_cache.py\r\nWerkzeug-0.15.6/tests/contrib/test_atom.py\r\nWerkzeug-0.15.6/tests/contrib/test_fixers.py\r\nWerkzeug-0.15.6/tests/contrib/test_iterio.py\r\nWerkzeug-0.15.6/tests/contrib/test_securecookie.py\r\nWerkzeug-0.15.6/tests/contrib/test_sessions.py\r\nWerkzeug-0.15.6/tests/contrib/test_wrappers.py\r\nWerkzeug-0.15.6/tests/hypothesis/\r\nWerkzeug-0.15.6/tests/hypothesis/__init__.py\r\nWerkzeug-0.15.6/tests/hypothesis/test_urls.py\r\nWerkzeug-0.15.6/tes"] -[58.564178, "o", "ts/middleware/\r\nWerkzeug-0.15.6/tests/middleware/test_dispatcher.py\r\nWerkzeug-0.15.6/tests/middleware/test_http_proxy.py\r\nWerkzeug-0.15.6/tests/middleware/test_lint.py\r\nWerkzeug-0.15.6/tests/middleware/test_proxy_fix.py\r\nWerkzeug-0.15.6/tests/middleware/test_shared_data.py\r\nWerkzeug-0.15.6/tests/multipart/\r\nWerkzeug-0.15.6/tests/multipart/__init__.py\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2png1txt/\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2png1txt/file1.png\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2png1txt/file2.png\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2png1txt/request.http\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2png1txt/text.txt\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2pnglongtext/\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2pnglongtext/file1.png\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2pnglongtext/file2.png\r\nWerkzeug-0.15.6/tests/multipart/firefox3-2pnglongtext/request.http\r\n"] -[58.564225, "o", "Werkzeug-0.15.6/tests/multipart/firefox3-2pnglongtext/text.txt\r\nWerkzeug-0.15.6/tests/multipart/ie6-2png1txt/\r\nWerkzeug-0.15.6/tests/multipart/ie6-2png1txt/file1.png\r\n"] -[58.56427, "o", "Werkzeug-0.15.6/tests/multipart/ie6-2png1txt/file2.png\r\nWerkzeug-0.15.6/tests/multipart/ie6-2png1txt/request.http\r\n"] -[58.564321, "o", "Werkzeug-0.15.6/tests/multipart/ie6-2png1txt/text.txt\r\nWerkzeug-0.15.6/tests/multipart/ie7_full_path_request.http\r\n"] -[58.564363, "o", "Werkzeug-0.15.6/tests/multipart/opera8-2png1txt/\r\n"] -[58.564406, "o", "Werkzeug-0.15.6/tests/multipart/opera8-2png1txt/file1.png\r\nWerkzeug-0.15.6/tests/multipart/opera8-2png1txt/file2.png\r\n"] -[58.564449, "o", "Werkzeug-0.15.6/tests/multipart/opera8-2png1txt/request.http\r\nWerkzeug-0.15.6/tests/multipart/opera8-2png1txt/text.txt\r\n"] -[58.564489, "o", "Werkzeug-0.15.6/tests/multipart/test_collect.py\r\nWerkzeug-0.15.6/tests/multipart/webkit3-2png1txt/\r\n"] -[58.564531, "o", "Werkzeug-0.15.6/tests/multipart/webkit3-2png1txt/file1.png\r\nWerkzeug-0.15.6/tests/multipart/webkit3-2png1txt/file2.png\r\n"] -[58.564573, "o", "Werkzeug-0.15.6/tests/multipart/webkit3-2png1txt/request.http\r\nWerkzeug-0.15.6/tests/multipart/webkit3-2png1txt/text.txt\r\n"] -[58.564624, "o", "Werkzeug-0.15.6/tests/res/\r\n"] -[58.564669, "o", "Werkzeug-0.15.6/tests/res/chunked.http\r\nWerkzeug-0.15.6/tests/res/test.txt\r\nWerkzeug-0.15.6/tests/test_compat.py\r\n"] -[58.564712, "o", "Werkzeug-0.15.6/tests/test_datastructures.py\r\n"] -[58.564755, "o", "Werkzeug-0.15.6/tests/test_debug.py\r\n"] -[58.564797, "o", "Werkzeug-0.15.6/tests/test_exceptions.py\r\nWerkzeug-0.15.6/tests/test_formparser.py\r\n"] -[58.564839, "o", "Werkzeug-0.15.6/tests/test_http.py\r\n"] -[58.56491, "o", "Werkzeug-0.15.6/tests/test_internal.py\r\n"] -[58.564951, "o", "Werkzeug-0.15.6/tests/test_local.py\r\nWerkzeug-0.15.6/tests/test_routing.py\r\n"] -[58.565223, "o", "Werkzeug-0.15.6/tests/test_security.py\r\n"] -[58.565264, "o", "Werkzeug-0.15.6/tests/test_serving.py\r\n"] -[58.565301, "o", "Werkzeug-0.15.6/tests/test_test.py\r\n"] -[58.565403, "o", "Werkzeug-0.15.6/tests/test_urls.py\r\n"] -[58.565561, "o", "Werkzeug-0.15.6/tests/test_utils.py\r\n"] -[58.565607, "o", "Werkzeug-0.15.6/tests/test_wrappers.py\r\n"] -[58.56583, "o", "Werkzeug-0.15.6/tests/test_wsgi.py\r\n"] -[58.565932, "o", "Werkzeug-0.15.6/tox.ini\r\n"] -[58.707181, "o", "/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'project_urls'\r\n warnings.warn(msg)\r\n/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'\r\n warnings.warn(msg)\r\n"] -[58.716969, "o", "running install\r\n"] -[58.717463, "o", "running build\r\nrunning build_py\r\n"] -[58.718214, "o", "creating build\r\ncreating build/lib\r\ncreating build/lib/werkzeug\r\n"] -[58.718339, "o", "copying src/werkzeug/datastructures.py -> build/lib/werkzeug\r\n"] -[58.71848, "o", "copying src/werkzeug/_internal.py -> build/lib/werkzeug\r\n"] -[58.718543, "o", "copying src/werkzeug/formparser.py -> build/lib/werkzeug\r\n"] -[58.718688, "o", "copying src/werkzeug/serving.py -> build/lib/werkzeug\r\n"] -[58.718795, "o", "copying src/werkzeug/exceptions.py -> build/lib/werkzeug\r\n"] -[58.718984, "o", "copying src/werkzeug/http.py -> build/lib/werkzeug\r\n"] -[58.719084, "o", "copying src/werkzeug/filesystem.py -> build/lib/werkzeug\r\ncopying src/werkzeug/__init__.py -> build/lib/werkzeug\r\n"] -[58.71915, "o", "copying src/werkzeug/urls.py -> build/lib/werkzeug\r\n"] -[58.719247, "o", "copying src/werkzeug/security.py -> build/lib/werkzeug\r\n"] -[58.719323, "o", "copying src/werkzeug/routing.py -> build/lib/werkzeug\r\n"] -[58.719441, "o", "copying src/werkzeug/local.py -> build/lib/werkzeug\r\n"] -[58.719521, "o", "copying src/werkzeug/utils.py -> build/lib/werkzeug\r\n"] -[58.719621, "o", "copying src/werkzeug/testapp.py -> build/lib/werkzeug\r\n"] -[58.719735, "o", "copying src/werkzeug/_compat.py -> build/lib/werkzeug\r\n"] -[58.719809, "o", "copying src/werkzeug/test.py -> build/lib/werkzeug\r\n"] -[58.719907, "o", "copying src/werkzeug/useragents.py -> build/lib/werkzeug\r\n"] -[58.719984, "o", "copying src/werkzeug/posixemulation.py -> build/lib/werkzeug\r\n"] -[58.720057, "o", "copying src/werkzeug/_reloader.py -> build/lib/werkzeug\r\n"] -[58.720135, "o", "copying src/werkzeug/wsgi.py -> build/lib/werkzeug\r\n"] -[58.720334, "o", "creating build/lib/werkzeug/middleware\r\n"] -[58.720384, "o", "copying src/werkzeug/middleware/http_proxy.py -> build/lib/werkzeug/middleware\r\n"] -[58.720465, "o", "copying src/werkzeug/middleware/__init__.py -> build/lib/werkzeug/middleware\r\n"] -[58.72054, "o", "copying src/werkzeug/middleware/lint.py -> build/lib/werkzeug/middleware\r\n"] -[58.720632, "o", "copying src/werkzeug/middleware/shared_data.py -> build/lib/werkzeug/middleware\r\n"] -[58.720714, "o", "copying src/werkzeug/middleware/dispatcher.py -> build/lib/werkzeug/middleware\r\n"] -[58.720786, "o", "copying src/werkzeug/middleware/proxy_fix.py -> build/lib/werkzeug/middleware\r\n"] -[58.720867, "o", "copying src/werkzeug/middleware/profiler.py -> build/lib/werkzeug/middleware\r\n"] -[58.721023, "o", "creating build/lib/werkzeug/debug\r\n"] -[58.721071, "o", "copying src/werkzeug/debug/__init__.py -> build/lib/werkzeug/debug\r\n"] -[58.72116, "o", "copying src/werkzeug/debug/tbtools.py -> build/lib/werkzeug/debug\r\n"] -[58.721254, "o", "copying src/werkzeug/debug/repr.py -> build/lib/werkzeug/debug\r\n"] -[58.721333, "o", "copying src/werkzeug/debug/console.py -> build/lib/werkzeug/debug\r\n"] -[58.721534, "o", "creating build/lib/werkzeug/wrappers\r\n"] -[58.721582, "o", "copying src/werkzeug/wrappers/request.py -> build/lib/werkzeug/wrappers\r\n"] -[58.721753, "o", "copying src/werkzeug/wrappers/response.py -> build/lib/werkzeug/wrappers\r\n"] -[58.721798, "o", "copying src/werkzeug/wrappers/accept.py -> build/lib/werkzeug/wrappers\r\n"] -[58.721979, "o", "copying src/werkzeug/wrappers/__init__.py -> build/lib/werkzeug/wrappers\r\n"] -[58.722068, "o", "copying src/werkzeug/wrappers/base_request.py -> build/lib/werkzeug/wrappers\r\n"] -[58.722179, "o", "copying src/werkzeug/wrappers/common_descriptors.py -> build/lib/werkzeug/wrappers\r\n"] -[58.722224, "o", "copying src/werkzeug/wrappers/auth.py -> build/lib/werkzeug/wrappers\r\n"] -[58.72226, "o", "copying src/werkzeug/wrappers/base_response.py -> build/lib/werkzeug/wrappers\r\n"] -[58.722342, "o", "copying src/werkzeug/wrappers/json.py -> build/lib/werkzeug/wrappers\r\n"] -[58.72242, "o", "copying src/werkzeug/wrappers/etag.py -> build/lib/werkzeug/wrappers\r\n"] -[58.722502, "o", "copying src/werkzeug/wrappers/user_agent.py -> build/lib/werkzeug/wrappers\r\n"] -[58.722703, "o", "creating build/lib/werkzeug/contrib\r\n"] -[58.722753, "o", "copying src/werkzeug/contrib/sessions.py -> build/lib/werkzeug/contrib\r\n"] -[58.722845, "o", "copying src/werkzeug/contrib/__init__.py -> build/lib/werkzeug/contrib\r\n"] -[58.722965, "o", "copying src/werkzeug/contrib/lint.py -> build/lib/werkzeug/contrib\r\n"] -[58.723011, "o", "copying src/werkzeug/contrib/atom.py -> build/lib/werkzeug/contrib\r\n"] -[58.723119, "o", "copying src/werkzeug/contrib/wrappers.py -> build/lib/werkzeug/contrib\r\n"] -[58.723167, "o", "copying src/werkzeug/contrib/fixers.py -> build/lib/werkzeug/contrib\r\n"] -[58.72324, "o", "copying src/werkzeug/contrib/securecookie.py -> build/lib/werkzeug/contrib\r\n"] -[58.72332, "o", "copying src/werkzeug/contrib/iterio.py -> build/lib/werkzeug/contrib\r\n"] -[58.723399, "o", "copying src/werkzeug/contrib/cache.py -> build/lib/werkzeug/contrib\r\n"] -[58.723496, "o", "copying src/werkzeug/contrib/profiler.py -> build/lib/werkzeug/contrib\r\n"] -[58.723573, "o", "running egg_info\r\n"] -[58.725286, "o", "writing requirements to src/Werkzeug.egg-info/requires.txt\r\n"] -[58.725477, "o", "writing src/Werkzeug.egg-info/PKG-INFO\r\n"] -[58.725618, "o", "writing top-level names to src/Werkzeug.egg-info/top_level.txt\r\n"] -[58.725747, "o", "writing dependency_links to src/Werkzeug.egg-info/dependency_links.txt\r\n"] -[58.780285, "o", "reading manifest file 'src/Werkzeug.egg-info/SOURCES.txt'\r\n"] -[58.783207, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[58.784912, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[58.786614, "o", "warning: no previously-included files matching '*.py[co]' found anywhere in distribution\r\n"] -[58.790933, "o", "writing manifest file 'src/Werkzeug.egg-info/SOURCES.txt'\r\n"] -[58.792413, "o", "creating build/lib/werkzeug/debug/shared\r\n"] -[58.792438, "o", "copying src/werkzeug/debug/shared/FONT_LICENSE -> build/lib/werkzeug/debug/shared\r\n"] -[58.792518, "o", "copying src/werkzeug/debug/shared/console.png -> build/lib/werkzeug/debug/shared\r\n"] -[58.792574, "o", "copying src/werkzeug/debug/shared/debugger.js -> build/lib/werkzeug/debug/shared\r\n"] -[58.792696, "o", "copying src/werkzeug/debug/shared/jquery.js -> build/lib/werkzeug/debug/shared\r\n"] -[58.792807, "o", "copying src/werkzeug/debug/shared/less.png -> build/lib/werkzeug/debug/shared\r\n"] -[58.792906, "o", "copying src/werkzeug/debug/shared/more.png -> build/lib/werkzeug/debug/shared\r\n"] -[58.793036, "o", "copying src/werkzeug/debug/shared/source.png -> build/lib/werkzeug/debug/shared\r\n"] -[58.793124, "o", "copying src/werkzeug/debug/shared/style.css -> build/lib/werkzeug/debug/shared\r\n"] -[58.793228, "o", "copying src/werkzeug/debug/shared/ubuntu.ttf -> build/lib/werkzeug/debug/shared\r\n"] -[58.794153, "o", "running install_lib\r\n"] -[58.794642, "o", "creating /tmp/SBo/package-werkzeug/usr\r\ncreating /tmp/SBo/package-werkzeug/usr/lib64\r\ncreating /tmp/SBo/package-werkzeug/usr/lib64/python2.7\r\ncreating /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages\r\n"] -[58.794766, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\ncopying build/lib/werkzeug/datastructures.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.794919, "o", "copying build/lib/werkzeug/_internal.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.794945, "o", "copying build/lib/werkzeug/formparser.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.795076, "o", "copying build/lib/werkzeug/serving.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.795118, "o", "copying build/lib/werkzeug/exceptions.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.795208, "o", "copying build/lib/werkzeug/http.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.79531, "o", "copying build/lib/werkzeug/filesystem.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.795447, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware\r\n"] -[58.795462, "o", "copying build/lib/werkzeug/middleware/http_proxy.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware\r\n"] -[58.795533, "o", "copying build/lib/werkzeug/middleware/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware\r\n"] -[58.795616, "o", "copying build/lib/werkzeug/middleware/lint.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware\r\n"] -[58.795698, "o", "copying build/lib/werkzeug/middleware/shared_data.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware\r\n"] -[58.795776, "o", "copying build/lib/werkzeug/middleware/dispatcher.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware\r\n"] -[58.795849, "o", "copying build/lib/werkzeug/middleware/proxy_fix.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware\r\n"] -[58.795927, "o", "copying build/lib/werkzeug/middleware/profiler.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware\r\n"] -[58.796001, "o", "copying build/lib/werkzeug/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.796078, "o", "copying build/lib/werkzeug/urls.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.796175, "o", "copying build/lib/werkzeug/security.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.796256, "o", "copying build/lib/werkzeug/routing.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.796404, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug\r\n"] -[58.796458, "o", "copying build/lib/werkzeug/debug/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug\r\n"] -[58.796542, "o", "copying build/lib/werkzeug/debug/tbtools.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug\r\n"] -[58.796632, "o", "copying build/lib/werkzeug/debug/repr.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug\r\n"] -[58.796738, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.796795, "o", "copying build/lib/werkzeug/debug/shared/ubuntu.ttf -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.796912, "o", "copying build/lib/werkzeug/debug/shared/more.png -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.796983, "o", "copying build/lib/werkzeug/debug/shared/debugger.js -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.797078, "o", "copying build/lib/werkzeug/debug/shared/less.png -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.797113, "o", "copying build/lib/werkzeug/debug/shared/FONT_LICENSE -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.797217, "o", "copying build/lib/werkzeug/debug/shared/source.png -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.797251, "o", "copying build/lib/werkzeug/debug/shared/jquery.js -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.797354, "o", "copying build/lib/werkzeug/debug/shared/console.png -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.797415, "o", "copying build/lib/werkzeug/debug/shared/style.css -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/shared\r\n"] -[58.797479, "o", "copying build/lib/werkzeug/debug/console.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug\r\n"] -[58.797548, "o", "copying build/lib/werkzeug/local.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.797651, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.797693, "o", "copying build/lib/werkzeug/wrappers/request.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.797759, "o", "copying build/lib/werkzeug/wrappers/response.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.79782, "o", "copying build/lib/werkzeug/wrappers/accept.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.79788, "o", "copying build/lib/werkzeug/wrappers/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.79794, "o", "copying build/lib/werkzeug/wrappers/base_request.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.798017, "o", "copying build/lib/werkzeug/wrappers/common_descriptors.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.798084, "o", "copying build/lib/werkzeug/wrappers/auth.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.798144, "o", "copying build/lib/werkzeug/wrappers/base_response.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.798222, "o", "copying build/lib/werkzeug/wrappers/json.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.798285, "o", "copying build/lib/werkzeug/wrappers/etag.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.798352, "o", "copying build/lib/werkzeug/wrappers/user_agent.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers\r\n"] -[58.798415, "o", "copying build/lib/werkzeug/utils.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.7985, "o", "copying build/lib/werkzeug/testapp.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.798592, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.798645, "o", "copying build/lib/werkzeug/contrib/sessions.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.798717, "o", "copying build/lib/werkzeug/contrib/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.798778, "o", "copying build/lib/werkzeug/contrib/lint.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.798837, "o", "copying build/lib/werkzeug/contrib/atom.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.798906, "o", "copying build/lib/werkzeug/contrib/wrappers.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.798974, "o", "copying build/lib/werkzeug/contrib/fixers.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.799039, "o", "copying build/lib/werkzeug/contrib/securecookie.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.799107, "o", "copying build/lib/werkzeug/contrib/iterio.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.799175, "o", "copying build/lib/werkzeug/contrib/cache.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.799256, "o", "copying build/lib/werkzeug/contrib/profiler.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib\r\n"] -[58.79933, "o", "copying build/lib/werkzeug/_compat.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.799394, "o", "copying build/lib/werkzeug/test.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.79948, "o", "copying build/lib/werkzeug/useragents.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.799544, "o", "copying build/lib/werkzeug/posixemulation.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.799607, "o", "copying build/lib/werkzeug/_reloader.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.799681, "o", "copying build/lib/werkzeug/wsgi.py -> /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug\r\n"] -[58.799914, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/datastructures.py to datastructures.pyc\r\n"] -[58.811952, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/_internal.py to _internal.pyc\r\n"] -[58.813518, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/formparser.py to formparser.pyc\r\n"] -[58.815261, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/serving.py to serving.pyc\r\n"] -[58.81856, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/exceptions.py to exceptions.pyc\r\n"] -[58.820015, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/http.py to http.pyc\r\n"] -[58.823973, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/filesystem.py to filesystem.pyc\r\n"] -[58.824147, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware/http_proxy.py to http_proxy.pyc\r\n"] -[58.82512, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware/__init__.py to __init__.pyc\r\n"] -[58.825244, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware/lint.py to lint.pyc\r\n"] -[58.826715, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware/shared_data.py to shared_data.pyc\r\n"] -[58.82765, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware/dispatcher.py to dispatcher.pyc\r\n"] -[58.827909, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware/proxy_fix.py to proxy_fix.pyc\r\n"] -[58.828498, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/middleware/profiler.py to profiler.pyc\r\n"] -[58.82898, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/__init__.py to __init__.pyc\r\n"] -[58.829557, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/urls.py to urls.pyc\r\n"] -[58.833084, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/security.py to security.pyc\r\n"] -[58.833917, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/routing.py to routing.pyc\r\n"] -[58.839573, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/__init__.py to __init__.pyc\r\n"] -[58.841606, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/tbtools.py to tbtools.pyc\r\n"] -[58.843773, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/repr.py to repr.pyc\r\n"] -[58.845053, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/debug/console.py to console.pyc\r\n"] -[58.845982, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/local.py to local.pyc\r\n"] -[58.847571, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/request.py to request.pyc\r\n"] -[58.847805, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/response.py to response.pyc\r\n"] -[58.848139, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/accept.py to accept.pyc\r\n"] -[58.848291, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/__init__.py to __init__.pyc\r\n"] -[58.848475, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/base_request.py to base_request.pyc\r\n"] -[58.849899, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/common_descriptors.py to common_descriptors.pyc\r\n"] -[58.850652, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/auth.py to auth.pyc\r\n"] -[58.850829, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/base_response.py to base_response.pyc\r\n"] -[58.852428, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/json.py to json.pyc\r\n"] -[58.852981, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/etag.py to etag.pyc\r\n"] -[58.853964, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wrappers/user_agent.py to user_agent.pyc\r\n"] -[58.854084, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/utils.py to utils.pyc\r\n"] -[58.856363, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/testapp.py to testapp.pyc\r\n"] -[58.85698, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/sessions.py to sessions.pyc\r\n"] -[58.858254, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/__init__.py to __init__.pyc\r\n"] -[58.858349, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/lint.py to lint.pyc\r\n"] -[58.858383, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/atom.py to atom.pyc\r\n"] -[58.859715, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/wrappers.py to wrappers.pyc\r\n"] -[58.860528, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/fixers.py to fixers.pyc\r\n"] -[58.861397, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/securecookie.py to securecookie.pyc\r\n"] -[58.862257, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/iterio.py to iterio.pyc\r\n"] -[58.863475, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/cache.py to cache.pyc\r\n"] -[58.866224, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/contrib/profiler.py to profiler.pyc\r\n"] -[58.866352, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/_compat.py to _compat.pyc\r\n"] -[58.867386, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/test.py to test.pyc\r\n"] -[58.871089, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/useragents.py to useragents.pyc\r\n"] -[58.871765, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/posixemulation.py to posixemulation.pyc\r\n"] -[58.872228, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/_reloader.py to _reloader.pyc\r\n"] -[58.87361, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/werkzeug/wsgi.py to wsgi.pyc\r\n"] -[58.876227, "o", "running install_egg_info\r\n"] -[58.876688, "o", "Copying src/Werkzeug.egg-info to /tmp/SBo/package-werkzeug/usr/lib64/python2.7/site-packages/Werkzeug-0.15.6-py2.7.egg-info\r\n"] -[58.87708, "o", "running install_scripts\r\n"] -[59.079604, "o", "running install\r\n"] -[59.080524, "o", "running build\r\nrunning build_py\r\n"] -[59.095097, "o", "running egg_info\r\n"] -[59.098001, "o", "writing src/Werkzeug.egg-info/PKG-INFO\r\n"] -[59.098246, "o", "writing dependency_links to src/Werkzeug.egg-info/dependency_links.txt\r\n"] -[59.098401, "o", "writing requirements to src/Werkzeug.egg-info/requires.txt\r\n"] -[59.098475, "o", "writing top-level names to src/Werkzeug.egg-info/top_level.txt\r\n"] -[59.146688, "o", "reading manifest file 'src/Werkzeug.egg-info/SOURCES.txt'\r\n"] -[59.148377, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[59.149682, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[59.152323, "o", "warning: no previously-included files matching '*.py[co]' found anywhere in distribution\r\n"] -[59.156337, "o", "writing manifest file 'src/Werkzeug.egg-info/SOURCES.txt'\r\n"] -[59.160249, "o", "running install_lib\r\n"] -[59.161105, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python3.7\r\n"] -[59.161202, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages\r\ncreating /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.161281, "o", "copying build/lib/werkzeug/datastructures.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.161469, "o", "copying build/lib/werkzeug/_internal.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.161597, "o", "copying build/lib/werkzeug/formparser.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.161728, "o", "copying build/lib/werkzeug/serving.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.161866, "o", "copying build/lib/werkzeug/exceptions.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.161987, "o", "copying build/lib/werkzeug/http.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.162129, "o", "copying build/lib/werkzeug/filesystem.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.162273, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware\r\n"] -[59.162384, "o", "copying build/lib/werkzeug/middleware/http_proxy.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware\r\n"] -[59.162462, "o", "copying build/lib/werkzeug/middleware/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware\r\n"] -[59.162577, "o", "copying build/lib/werkzeug/middleware/lint.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware\r\n"] -[59.162738, "o", "copying build/lib/werkzeug/middleware/shared_data.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware\r\n"] -[59.162816, "o", "copying build/lib/werkzeug/middleware/dispatcher.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware\r\n"] -[59.162935, "o", "copying build/lib/werkzeug/middleware/proxy_fix.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware\r\n"] -[59.163051, "o", "copying build/lib/werkzeug/middleware/profiler.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware\r\n"] -[59.163168, "o", "copying build/lib/werkzeug/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.16328, "o", "copying build/lib/werkzeug/urls.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.163414, "o", "copying build/lib/werkzeug/security.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.163527, "o", "copying build/lib/werkzeug/routing.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.163728, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug\r\n"] -[59.163806, "o", "copying build/lib/werkzeug/debug/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug\r\n"] -[59.163936, "o", "copying build/lib/werkzeug/debug/tbtools.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug\r\n"] -[59.164064, "o", "copying build/lib/werkzeug/debug/repr.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug\r\n"] -[59.164207, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.164283, "o", "copying build/lib/werkzeug/debug/shared/ubuntu.ttf -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.164454, "o", "copying build/lib/werkzeug/debug/shared/more.png -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.164564, "o", "copying build/lib/werkzeug/debug/shared/debugger.js -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.164683, "o", "copying build/lib/werkzeug/debug/shared/less.png -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.164834, "o", "copying build/lib/werkzeug/debug/shared/FONT_LICENSE -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.164912, "o", "copying build/lib/werkzeug/debug/shared/source.png -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.165021, "o", "copying build/lib/werkzeug/debug/shared/jquery.js -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.1652, "o", "copying build/lib/werkzeug/debug/shared/console.png -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.165309, "o", "copying build/lib/werkzeug/debug/shared/style.css -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/shared\r\n"] -[59.165423, "o", "copying build/lib/werkzeug/debug/console.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug\r\n"] -[59.165539, "o", "copying build/lib/werkzeug/local.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.165744, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.165804, "o", "copying build/lib/werkzeug/wrappers/request.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.165906, "o", "copying build/lib/werkzeug/wrappers/response.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166004, "o", "copying build/lib/werkzeug/wrappers/accept.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166116, "o", "copying build/lib/werkzeug/wrappers/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166167, "o", "copying build/lib/werkzeug/wrappers/base_request.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166276, "o", "copying build/lib/werkzeug/wrappers/common_descriptors.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166377, "o", "copying build/lib/werkzeug/wrappers/auth.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166469, "o", "copying build/lib/werkzeug/wrappers/base_response.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166579, "o", "copying build/lib/werkzeug/wrappers/json.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166686, "o", "copying build/lib/werkzeug/wrappers/etag.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166787, "o", "copying build/lib/werkzeug/wrappers/user_agent.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers\r\n"] -[59.166882, "o", "copying build/lib/werkzeug/utils.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.166991, "o", "copying build/lib/werkzeug/testapp.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.167135, "o", "creating /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.167193, "o", "copying build/lib/werkzeug/contrib/sessions.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.16729, "o", "copying build/lib/werkzeug/contrib/__init__.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.167381, "o", "copying build/lib/werkzeug/contrib/lint.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.167468, "o", "copying build/lib/werkzeug/contrib/atom.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.167561, "o", "copying build/lib/werkzeug/contrib/wrappers.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.167661, "o", "copying build/lib/werkzeug/contrib/fixers.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.167758, "o", "copying build/lib/werkzeug/contrib/securecookie.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.16785, "o", "copying build/lib/werkzeug/contrib/iterio.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.167941, "o", "copying build/lib/werkzeug/contrib/cache.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.168044, "o", "copying build/lib/werkzeug/contrib/profiler.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib\r\n"] -[59.168133, "o", "copying build/lib/werkzeug/_compat.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.168224, "o", "copying build/lib/werkzeug/test.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.168339, "o", "copying build/lib/werkzeug/useragents.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.168434, "o", "copying build/lib/werkzeug/posixemulation.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.168516, "o", "copying build/lib/werkzeug/_reloader.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.168615, "o", "copying build/lib/werkzeug/wsgi.py -> /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug\r\n"] -[59.16919, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/datastructures.py to datastructures.cpython-37.pyc\r\n"] -[59.183808, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/_internal.py to _internal.cpython-37.pyc\r\n"] -[59.185859, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/formparser.py to formparser.cpython-37.pyc\r\n"] -[59.187826, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/serving.py to serving.cpython-37.pyc\r\n"] -[59.1924, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/exceptions.py to exceptions.cpython-37.pyc\r\n"] -[59.194147, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/http.py to http.cpython-37.pyc\r\n"] -[59.197726, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/filesystem.py to filesystem.cpython-37.pyc\r\n"] -[59.198061, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware/http_proxy.py to http_proxy.cpython-37.pyc\r\n"] -[59.198916, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware/__init__.py to __init__.cpython-37.pyc\r\n"] -[59.19907, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware/lint.py to lint.cpython-37.pyc\r\n"] -[59.200526, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware/shared_data.py to shared_data.cpython-37.pyc\r\n"] -[59.20144, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware/dispatcher.py to dispatcher.cpython-37.pyc\r\n"] -[59.201725, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware/proxy_fix.py to proxy_fix.cpython-37.pyc\r\n"] -[59.202354, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/middleware/profiler.py to profiler.cpython-37.pyc\r\n"] -[59.20287, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/__init__.py to __init__.cpython-37.pyc\r\n"] -[59.203457, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/urls.py to urls.cpython-37.pyc\r\n"] -[59.207901, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/security.py to security.cpython-37.pyc\r\n"] -[59.208995, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/routing.py to routing.cpython-37.pyc\r\n"] -[59.214749, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/__init__.py to __init__.cpython-37.pyc\r\n"] -[59.216657, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/tbtools.py to tbtools.cpython-37.pyc\r\n"] -[59.218921, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/repr.py to repr.cpython-37.pyc\r\n"] -[59.220391, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/debug/console.py to console.cpython-37.pyc\r\n"] -[59.221617, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/local.py to local.cpython-37.pyc\r\n"] -[59.223333, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/request.py to request.cpython-37.pyc\r\n"] -[59.223599, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/response.py to response.cpython-37.pyc\r\n"] -[59.224051, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/accept.py to accept.cpython-37.pyc\r\n"] -[59.224313, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/__init__.py to __init__.cpython-37.pyc\r\n"] -[59.224455, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/base_request.py to base_request.cpython-37.pyc\r\n"] -[59.22604, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/common_descriptors.py to common_descriptors.cpython-37.pyc\r\n"] -[59.226911, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/auth.py to auth.cpython-37.pyc\r\n"] -[59.227185, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/base_response.py to base_response.cpython-37.pyc\r\n"] -[59.228814, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/json.py to json.cpython-37.pyc\r\n"] -[59.229394, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/etag.py to etag.cpython-37.pyc\r\n"] -[59.230371, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wrappers/user_agent.py to user_agent.cpython-37.pyc\r\n"] -[59.230482, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/utils.py to utils.cpython-37.pyc\r\n"] -[59.232697, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/testapp.py to testapp.cpython-37.pyc\r\n"] -[59.233413, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/sessions.py to sessions.cpython-37.pyc\r\n"] -[59.234632, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/__init__.py to __init__.cpython-37.pyc\r\n"] -[59.234714, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/lint.py to lint.cpython-37.pyc\r\n"] -[59.23479, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/atom.py to atom.cpython-37.pyc\r\n"] -[59.236263, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/wrappers.py to wrappers.cpython-37.pyc\r\n"] -[59.237283, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/fixers.py to fixers.cpython-37.pyc\r\n"] -[59.23828, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/securecookie.py to securecookie.cpython-37.pyc\r\n"] -[59.239191, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/iterio.py to iterio.cpython-37.pyc\r\n"] -[59.240479, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/cache.py to cache.cpython-37.pyc\r\n"] -[59.243401, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/contrib/profiler.py to profiler.cpython-37.pyc\r\n"] -[59.243575, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/_compat.py to _compat.cpython-37.pyc\r\n"] -[59.244733, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/test.py to test.cpython-37.pyc\r\n"] -[59.248384, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/useragents.py to useragents.cpython-37.pyc\r\n"] -[59.249138, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/posixemulation.py to posixemulation.cpython-37.pyc\r\n"] -[59.249701, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/_reloader.py to _reloader.cpython-37.pyc\r\n"] -[59.251291, "o", "byte-compiling /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/werkzeug/wsgi.py to wsgi.cpython-37.pyc\r\n"] -[59.254463, "o", "running install_egg_info\r\n"] -[59.255197, "o", "Copying src/Werkzeug.egg-info to /tmp/SBo/package-werkzeug/usr/lib64/python3.7/site-packages/Werkzeug-0.15.6-py3.7.egg-info\r\n"] -[59.255678, "o", "running install_scripts\r\n"] -[59.531117, "o", "\r\nSlackware package maker, version 3.141593.\r\n\r\nSearching for symbolic links:\r\n"] -[59.535444, "o", "\r\n"] -[59.537169, "o", "No symbolic links were found, so we won't make an installation script.\r\nYou can make your own later in ./install/doinst.sh and rebuild the\r\npackage if you like.\r\n"] -[59.538821, "o", "\r\nThis next step is optional - you can set the directories in your package\r\nto some sane permissions. If any of the directories in your package have\r\nspecial permissions, then DO NOT reset them here!\r\n\r\nWould you like to reset all directory permissions to 755 (drwxr-xr-x) and\r\ndirectory ownerships to root.root ([y]es, [n]o)? "] -[59.538972, "o", "n\r\n\r\n"] -[59.541414, "o", "Creating Slackware package: /tmp/werkzeug-0.15.6-x86_64-1_SBo.tgz\r\n\r\n"] -[59.544888, "o", "./\r\nusr/\r\nusr/doc/\r\nusr/doc/werkzeug-0.15.6/\r\nusr/doc/werkzeug-0.15.6/README.rst\r\nusr/doc/werkzeug-0.15.6/LICENSE.rst\r\nusr/doc/werkzeug-0.15.6/CHANGES.rst\r\n"] -[59.545121, "o", "usr/doc/werkzeug-0.15.6/PKG-INFO\r\nusr/doc/werkzeug-0.15.6/werkzeug.SlackBuild\r\nusr/lib64/\r\nusr/lib64/python3.7/\r\nusr/lib64/python3.7/site-packages/\r\nusr/lib64/python3.7/site-packages/werkzeug/\r\nusr/lib64/python3.7/site-packages/werkzeug/datastructures.py\r\n"] -[59.550182, "o", "usr/lib64/python3.7/site-packages/werkzeug/_internal.py\r\nusr/lib64/python3.7/site-packages/werkzeug/formparser.py\r\n"] -[59.553864, "o", "usr/lib64/python3.7/site-packages/werkzeug/serving.py\r\n"] -[59.558081, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/exceptions.cpython-37.pyc\r\n"] -[59.562973, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/posixemulation.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/routing.cpython-37.pyc\r\n"] -[59.573352, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/wsgi.cpython-37.pyc\r\n"] -[59.576684, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/test.cpython-37.pyc\r\n"] -[59.580807, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/_reloader.cpython-37.pyc\r\n"] -[59.584674, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/urls.cpython-37.pyc\r\n"] -[59.588475, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/local.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/formparser.cpython-37.pyc\r\n"] -[59.593428, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/datastructures.cpython-37.pyc\r\n"] -[59.6092, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/useragents.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/_compat.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/_internal.cpython-37.pyc\r\n"] -[59.614424, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/utils.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/__init__.cpython-37.pyc\r\n"] -[59.618793, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/http.cpython-37.pyc\r\n"] -[59.624088, "o", "usr/lib64/python3.7/site-packages/werkzeug/__pycache__/testapp.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/security.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/filesystem.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/__pycache__/serving.cpython-37.pyc\r\n"] -[59.629052, "o", "usr/lib64/python3.7/site-packages/werkzeug/exceptions.py\r\n"] -[59.632319, "o", "usr/lib64/python3.7/site-packages/werkzeug/http.py\r\n"] -[59.63546, "o", "usr/lib64/python3.7/site-packages/werkzeug/filesystem.py\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/http_proxy.py\r\n"] -[59.640732, "o", "usr/lib64/python3.7/site-packages/werkzeug/middleware/__pycache__/\r\n"] -[59.640755, "o", "usr/lib64/python3.7/site-packages/werkzeug/middleware/__pycache__/shared_data.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/__pycache__/profiler.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/__pycache__/proxy_fix.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/__pycache__/lint.cpython-37.pyc\r\n"] -[59.643596, "o", "usr/lib64/python3.7/site-packages/werkzeug/middleware/__pycache__/http_proxy.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/__pycache__/dispatcher.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/__init__.py\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/lint.py\r\n"] -[59.648099, "o", "usr/lib64/python3.7/site-packages/werkzeug/middleware/shared_data.py\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/dispatcher.py\r\nusr/lib64/python3.7/site-packages/werkzeug/middleware/proxy_fix.py\r\n"] -[59.648121, "o", "usr/lib64/python3.7/site-packages/werkzeug/middleware/profiler.py\r\n"] -[59.652993, "o", "usr/lib64/python3.7/site-packages/werkzeug/__init__.py\r\nusr/lib64/python3.7/site-packages/werkzeug/urls.py\r\n"] -[59.657616, "o", "usr/lib64/python3.7/site-packages/werkzeug/security.py\r\nusr/lib64/python3.7/site-packages/werkzeug/routing.py\r\n"] -[59.66914, "o", "usr/lib64/python3.7/site-packages/werkzeug/debug/\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/__pycache__/\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/__pycache__/repr.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/__pycache__/console.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/__pycache__/tbtools.cpython-37.pyc\r\n"] -[59.67412, "o", "usr/lib64/python3.7/site-packages/werkzeug/debug/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/__init__.py\r\n"] -[59.678739, "o", "usr/lib64/python3.7/site-packages/werkzeug/debug/tbtools.py\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/repr.py\r\n"] -[59.678766, "o", "usr/lib64/python3.7/site-packages/werkzeug/debug/shared/\r\n"] -[59.683574, "o", "usr/lib64/python3.7/site-packages/werkzeug/debug/shared/ubuntu.ttf\r\n"] -[59.692676, "o", "usr/lib64/python3.7/site-packages/werkzeug/debug/shared/more.png\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/shared/debugger.js\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/shared/less.png\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/shared/FONT_LICENSE\r\n"] -[59.692712, "o", "usr/lib64/python3.7/site-packages/werkzeug/debug/shared/source.png\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/shared/jquery.js\r\n"] -[59.698619, "o", "usr/lib64/python3.7/site-packages/werkzeug/debug/shared/console.png\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/shared/style.css\r\nusr/lib64/python3.7/site-packages/werkzeug/debug/console.py\r\nusr/lib64/python3.7/site-packages/werkzeug/local.py\r\n"] -[59.699906, "o", "usr/lib64/python3.7/site-packages/werkzeug/wrappers/\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/request.py\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/auth.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/etag.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/response.cpython-37.pyc\r\n"] -[59.701326, "o", "usr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/base_request.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/request.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/common_descriptors.cpython-37.pyc\r\n"] -[59.702573, "o", "usr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/accept.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/json.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/base_response.cpython-37.pyc\r\n"] -[59.70553, "o", "usr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__pycache__/user_agent.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/response.py\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/accept.py\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/__init__.py\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/base_request.py\r\n"] -[59.710152, "o", "usr/lib64/python3.7/site-packages/werkzeug/wrappers/common_descriptors.py\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/auth.py\r\nusr/lib64/python3.7/site-packages/werkzeug/wrappers/base_response.py\r\n"] -[59.714572, "o", "usr/lib64/python3.7/site-packages/werkzeug/wrappers/json.py\r\n"] -[59.716587, "o", "usr/lib64/python3.7/site-packages/werkzeug/wrappers/etag.py\r\n"] -[59.717842, "o", "usr/lib64/python3.7/site-packages/werkzeug/wrappers/user_agent.py\r\nusr/lib64/python3.7/site-packages/werkzeug/utils.py\r\n"] -[59.720954, "o", "usr/lib64/python3.7/site-packages/werkzeug/testapp.py\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/sessions.py\r\n"] -[59.725492, "o", "usr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/profiler.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/iterio.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/atom.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/lint.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/fixers.cpython-37.pyc\r\n"] -[59.72919, "o", "usr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/securecookie.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/cache.cpython-37.pyc\r\n"] -[59.732897, "o", "usr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/wrappers.cpython-37.pyc\r\n"] -[59.738177, "o", "usr/lib64/python3.7/site-packages/werkzeug/contrib/__pycache__/sessions.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/__init__.py\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/lint.py\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/atom.py\r\n"] -[59.742573, "o", "usr/lib64/python3.7/site-packages/werkzeug/contrib/wrappers.py\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/fixers.py\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/securecookie.py\r\n"] -[59.747592, "o", "usr/lib64/python3.7/site-packages/werkzeug/contrib/iterio.py\r\nusr/lib64/python3.7/site-packages/werkzeug/contrib/cache.py\r\n"] -[59.751851, "o", "usr/lib64/python3.7/site-packages/werkzeug/contrib/profiler.py\r\nusr/lib64/python3.7/site-packages/werkzeug/_compat.py\r\nusr/lib64/python3.7/site-packages/werkzeug/test.py\r\n"] -[59.759248, "o", "usr/lib64/python3.7/site-packages/werkzeug/useragents.py\r\nusr/lib64/python3.7/site-packages/werkzeug/posixemulation.py\r\nusr/lib64/python3.7/site-packages/werkzeug/_reloader.py\r\nusr/lib64/python3.7/site-packages/werkzeug/wsgi.py\r\n"] -[59.768029, "o", "usr/lib64/python3.7/site-packages/Werkzeug-0.15.6-py3.7.egg-info/\r\nusr/lib64/python3.7/site-packages/Werkzeug-0.15.6-py3.7.egg-info/top_level.txt\r\nusr/lib64/python3.7/site-packages/Werkzeug-0.15.6-py3.7.egg-info/dependency_links.txt\r\nusr/lib64/python3.7/site-packages/Werkzeug-0.15.6-py3.7.egg-info/SOURCES.txt\r\nusr/lib64/python3.7/site-packages/Werkzeug-0.15.6-py3.7.egg-info/requires.txt\r\nusr/lib64/python3.7/site-packages/Werkzeug-0.15.6-py3.7.egg-info/PKG-INFO\r\n"] -[59.768054, "o", "usr/lib64/python2.7/\r\nusr/lib64/python2.7/site-packages/\r\nusr/lib64/python2.7/site-packages/Werkzeug-0.15.6-py2.7.egg-info/\r\n"] -[59.76807, "o", "usr/lib64/python2.7/site-packages/Werkzeug-0.15.6-py2.7.egg-info/top_level.txt\r\nusr/lib64/python2.7/site-packages/Werkzeug-0.15.6-py2.7.egg-info/dependency_links.txt\r\n"] -[59.768161, "o", "usr/lib64/python2.7/site-packages/Werkzeug-0.15.6-py2.7.egg-info/SOURCES.txt\r\nusr/lib64/python2.7/site-packages/Werkzeug-0.15.6-py2.7.egg-info/requires.txt\r\n"] -[59.768187, "o", "usr/lib64/python2.7/site-packages/Werkzeug-0.15.6-py2.7.egg-info/PKG-INFO\r\n"] -[59.77275, "o", "usr/lib64/python2.7/site-packages/werkzeug/\r\nusr/lib64/python2.7/site-packages/werkzeug/datastructures.py\r\n"] -[59.781308, "o", "usr/lib64/python2.7/site-packages/werkzeug/useragents.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/_internal.py\r\nusr/lib64/python2.7/site-packages/werkzeug/datastructures.pyc\r\n"] -[59.798725, "o", "usr/lib64/python2.7/site-packages/werkzeug/formparser.py\r\n"] -[59.803575, "o", "usr/lib64/python2.7/site-packages/werkzeug/serving.py\r\n"] -[59.808787, "o", "usr/lib64/python2.7/site-packages/werkzeug/local.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/exceptions.py\r\n"] -[59.812795, "o", "usr/lib64/python2.7/site-packages/werkzeug/utils.pyc\r\n"] -[59.81773, "o", "usr/lib64/python2.7/site-packages/werkzeug/http.py\r\n"] -[59.824503, "o", "usr/lib64/python2.7/site-packages/werkzeug/filesystem.py\r\nusr/lib64/python2.7/site-packages/werkzeug/routing.pyc\r\n"] -[59.832506, "o", "usr/lib64/python2.7/site-packages/werkzeug/_compat.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/http_proxy.py\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/profiler.pyc\r\n"] -[59.83664, "o", "usr/lib64/python2.7/site-packages/werkzeug/middleware/shared_data.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/dispatcher.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/__init__.py\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/proxy_fix.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/lint.pyc\r\n"] -[59.841229, "o", "usr/lib64/python2.7/site-packages/werkzeug/middleware/http_proxy.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/lint.py\r\n"] -[59.845285, "o", "usr/lib64/python2.7/site-packages/werkzeug/middleware/shared_data.py\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/dispatcher.py\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/proxy_fix.py\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/__init__.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/middleware/profiler.py\r\nusr/lib64/python2.7/site-packages/werkzeug/http.pyc\r\n"] -[59.856495, "o", "usr/lib64/python2.7/site-packages/werkzeug/__init__.py\r\nusr/lib64/python2.7/site-packages/werkzeug/exceptions.pyc\r\n"] -[59.859975, "o", "usr/lib64/python2.7/site-packages/werkzeug/urls.py\r\n"] -[59.865456, "o", "usr/lib64/python2.7/site-packages/werkzeug/security.py\r\nusr/lib64/python2.7/site-packages/werkzeug/routing.py\r\n"] -[59.871976, "o", "usr/lib64/python2.7/site-packages/werkzeug/debug/\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/__init__.py\r\n"] -[59.876015, "o", "usr/lib64/python2.7/site-packages/werkzeug/debug/console.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/tbtools.py\r\n"] -[59.881046, "o", "usr/lib64/python2.7/site-packages/werkzeug/debug/repr.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/repr.py\r\n"] -[59.88563, "o", "usr/lib64/python2.7/site-packages/werkzeug/debug/shared/\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/shared/ubuntu.ttf\r\n"] -[59.89499, "o", "usr/lib64/python2.7/site-packages/werkzeug/debug/shared/more.png\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/shared/debugger.js\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/shared/less.png\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/shared/FONT_LICENSE\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/shared/source.png\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/shared/jquery.js\r\n"] -[59.90099, "o", "usr/lib64/python2.7/site-packages/werkzeug/debug/shared/console.png\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/shared/style.css\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/console.py\r\n"] -[59.902184, "o", "usr/lib64/python2.7/site-packages/werkzeug/debug/tbtools.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/debug/__init__.pyc\r\n"] -[59.903598, "o", "usr/lib64/python2.7/site-packages/werkzeug/local.py\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/request.py\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/user_agent.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/response.py\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/base_request.pyc\r\n"] -[59.904843, "o", "usr/lib64/python2.7/site-packages/werkzeug/wrappers/request.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/accept.py\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/__init__.py\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/base_request.py\r\n"] -[59.909345, "o", "usr/lib64/python2.7/site-packages/werkzeug/wrappers/auth.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/accept.pyc\r\n"] -[59.913438, "o", "usr/lib64/python2.7/site-packages/werkzeug/wrappers/etag.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/base_response.pyc\r\n"] -[59.918792, "o", "usr/lib64/python2.7/site-packages/werkzeug/wrappers/common_descriptors.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/common_descriptors.py\r\n"] -[59.92151, "o", "usr/lib64/python2.7/site-packages/werkzeug/wrappers/auth.py\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/base_response.py\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/json.py\r\n"] -[59.925655, "o", "usr/lib64/python2.7/site-packages/werkzeug/wrappers/response.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/etag.py\r\n"] -[59.925785, "o", "usr/lib64/python2.7/site-packages/werkzeug/wrappers/json.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wrappers/__init__.pyc\r\n"] -[59.93017, "o", "usr/lib64/python2.7/site-packages/werkzeug/wrappers/user_agent.py\r\nusr/lib64/python2.7/site-packages/werkzeug/serving.pyc\r\n"] -[59.933051, "o", "usr/lib64/python2.7/site-packages/werkzeug/security.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/filesystem.pyc\r\n"] -[59.933146, "o", "usr/lib64/python2.7/site-packages/werkzeug/formparser.pyc\r\n"] -[59.937012, "o", "usr/lib64/python2.7/site-packages/werkzeug/utils.py\r\n"] -[59.943537, "o", "usr/lib64/python2.7/site-packages/werkzeug/testapp.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/testapp.py\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/\r\n"] -[59.943617, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/profiler.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/sessions.py\r\n"] -[59.94913, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/__init__.py\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/cache.pyc\r\n"] -[59.953706, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/securecookie.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/lint.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/atom.pyc\r\n"] -[59.956568, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/lint.py\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/atom.py\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/iterio.pyc\r\n"] -[59.961016, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/wrappers.py\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/fixers.py\r\n"] -[59.966325, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/wrappers.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/fixers.pyc\r\n"] -[59.966448, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/securecookie.py\r\n"] -[59.970095, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/iterio.py\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/sessions.pyc\r\n"] -[59.973757, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/__init__.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/contrib/cache.py\r\n"] -[59.976792, "o", "usr/lib64/python2.7/site-packages/werkzeug/contrib/profiler.py\r\nusr/lib64/python2.7/site-packages/werkzeug/test.pyc\r\n"] -[59.980099, "o", "usr/lib64/python2.7/site-packages/werkzeug/_compat.py\r\nusr/lib64/python2.7/site-packages/werkzeug/test.py\r\n"] -[59.983872, "o", "usr/lib64/python2.7/site-packages/werkzeug/useragents.py\r\n"] -[59.988662, "o", "usr/lib64/python2.7/site-packages/werkzeug/_reloader.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/posixemulation.py\r\nusr/lib64/python2.7/site-packages/werkzeug/_reloader.py\r\n"] -[59.992917, "o", "usr/lib64/python2.7/site-packages/werkzeug/__init__.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wsgi.py\r\n"] -[59.997474, "o", "usr/lib64/python2.7/site-packages/werkzeug/urls.pyc\r\n"] -[60.001922, "o", "usr/lib64/python2.7/site-packages/werkzeug/_internal.pyc\r\n"] -[60.005798, "o", "usr/lib64/python2.7/site-packages/werkzeug/posixemulation.pyc\r\nusr/lib64/python2.7/site-packages/werkzeug/wsgi.pyc\r\n"] -[60.009477, "o", "install/\r\ninstall/slack-desc\r\n"] -[60.029736, "o", "\r\nSlackware package /tmp/werkzeug-0.15.6-x86_64-1_SBo.tgz created.\r\n\r\n"] -[60.030999, "o", "Total build time for the package werkzeug : 1.6 Sec\r\n\r\n"] -[60.041593, "o", "[ \u001b[32mInstalling\u001b[0m ] --> werkzeug-0.15.6\r\n"] -[60.056817, "o", "\r\n+==============================================================================\r\n| Installing new package /tmp/werkzeug-0.15.6-x86_64-1_SBo.tgz\r\n+==============================================================================\r\n\r\n"] -[60.079699, "o", "Verifying package werkzeug-0.15.6-x86_64-1_SBo.tgz.\r\n"] -[60.149451, "o", "Installing package werkzeug-0.15.6-x86_64-1_SBo.tgz:\r\nPACKAGE DESCRIPTION:\r\n"] -[60.15019, "o", "# werkzeug (WSGI utility library for Python)\r\n#\r\n# Werkzeug started as simple collection of various utilities for WSGI\r\n# and has become one of the most advanced WSGI utility modules.\r\n# It includes a powerful debugger, fully featured request and response\r\n# objects, HTTP utilities to handle entity tags, cache control headers\r\n# HTTP dates, cookie handling, file uploads, a powerful URL routing\r\n# system and a bunch of community contributed addon modules.\r\n#\r\n# Homepage: https://palletsprojects.com/p/werkzeug/\r\n#\r\n"] -[60.277562, "o", "Package werkzeug-0.15.6-x86_64-1_SBo.tgz installed.\r\n\r\n"] -[60.277968, "o", "\r\n"] -[60.278294, "o", "Completed!\r\n\r\n"] -[60.357548, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> Jinja2.tar.gz\r\n\r\n"] -[60.363197, "o", "--2019-12-03 19:17:23-- http://slackbuilds.org/slackbuilds/14.2/libraries/Jinja2.tar.gz\r\nResolving slackbuilds.org... "] -[60.962672, "o", "208.94.237.149\r\nConnecting to slackbuilds.org|208.94.237.149|:80... "] -[61.125541, "o", "connected.\r\nHTTP request sent, awaiting response... "] -[61.336288, "o", "200 OK\r\nLength: 2215 (2.2K) [application/x-gzip]\r\nSaving to: ‘/tmp/slpkg/build/Jinja2.tar.gz’\r\n\r\n"] -[61.337445, "o", "\rJinja2.tar.gz 0%[ ] 0 --.-KB/s "] -[61.337773, "o", "\rJinja2.tar.gz 100%[===================>] 2.16K --.-KB/s in 0s \r\n\r\n2019-12-03 19:17:24 (145 MB/s) - ‘/tmp/slpkg/build/Jinja2.tar.gz’ saved [2215/2215]\r\n\r\n"] -[61.339185, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> Jinja2-2.10.3.tar.gz\r\n\r\n"] -[61.358205, "o", "--2019-12-03 19:17:24-- https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-2.10.3.tar.gz\r\n"] -[61.363632, "o", "Resolving files.pythonhosted.org... "] -[61.38941, "o", "2a04:4e42:3::319, 151.101.13.63\r\nConnecting to files.pythonhosted.org|2a04:4e42:3::319|:443... "] -[61.436186, "o", "connected.\r\n"] -[61.541767, "o", "HTTP request sent, awaiting response... "] -[61.605048, "o", "302 Found\r\nLocation: https://files.pythonhosted.org/packages/7b/db/1d037ccd626d05a7a47a1b81ea73775614af83c2b3e53d86a0bb41d8d799/Jinja2-2.10.3.tar.gz [following]\r\n"] -[61.605184, "o", "--2019-12-03 19:17:24-- https://files.pythonhosted.org/packages/7b/db/1d037ccd626d05a7a47a1b81ea73775614af83c2b3e53d86a0bb41d8d799/Jinja2-2.10.3.tar.gz\r\n"] -[61.605252, "o", "Reusing existing connection to [files.pythonhosted.org]:443.\r\n"] -[61.605809, "o", "HTTP request sent, awaiting response... "] -[61.655251, "o", "416 Range Not Satisfiable\r\n\r\n The file is already fully retrieved; nothing to do.\r\n\r\n"] -[61.74256, "o", "\r\n"] -[61.743048, "o", "+==============================================================================\r\n| MD5SUM check for Jinja2-2.10.3.tar.gz [ \u001b[32mPASSED\u001b[0m ]\r\n+==============================================================================\r\n\r\n"] -[61.765985, "o", "Jinja2-2.10.3/\r\nJinja2-2.10.3/CHANGES.rst\r\nJinja2-2.10.3/Jinja2.egg-info/\r\nJinja2-2.10.3/Jinja2.egg-info/PKG-INFO\r\n"] -[61.766133, "o", "Jinja2-2.10.3/Jinja2.egg-info/SOURCES.txt\r\nJinja2-2.10.3/Jinja2.egg-info/dependency_links.txt\r\nJinja2-2.10.3/Jinja2.egg-info/entry_points.txt\r\nJinja2-2.10.3/Jinja2.egg-info/requires.txt\r\nJinja2-2.10.3/Jinja2.egg-info/top_level.txt\r\nJinja2-2.10.3/LICENSE.rst\r\nJinja2-2.10.3/MANIFEST.in\r\nJinja2-2.10.3/PKG-INFO\r\nJinja2-2.10.3/README.rst\r\nJinja2-2.10.3/artwork/\r\nJinja2-2.10.3/artwork/jinjalogo.svg\r\nJinja2-2.10.3/docs/\r\nJinja2-2.10.3/docs/Makefile\r\n"] -[61.766201, "o", "Jinja2-2.10.3/docs/_static/\r\nJinja2-2.10.3/docs/_static/jinja-logo-sidebar.png\r\nJinja2-2.10.3/docs/_static/jinja-logo.png\r\n"] -[61.766273, "o", "Jinja2-2.10.3/docs/api.rst\r\n"] -[61.766519, "o", "Jinja2-2.10.3/docs/cache_extension.py\r\n"] -[61.766557, "o", "Jinja2-2.10.3/docs/changelog.rst\r\nJinja2-2.10.3/docs/conf.py\r\n"] -[61.766593, "o", "Jinja2-2.10.3/docs/extensions.rst\r\n"] -[61.766634, "o", "Jinja2-2.10.3/docs/faq.rst\r\n"] -[61.766674, "o", "Jinja2-2.10.3/docs/index.rst\r\nJinja2-2.10.3/docs/integration.rst\r\n"] -[61.766715, "o", "Jinja2-2.10.3/docs/intro.rst\r\nJinja2-2.10.3/docs/make.bat\r\n"] -[61.766749, "o", "Jinja2-2.10.3/docs/nativetypes.rst\r\n"] -[61.766783, "o", "Jinja2-2.10.3/docs/requirements.txt\r\nJinja2-2.10.3/docs/sandbox.rst\r\n"] -[61.766815, "o", "Jinja2-2.10.3/docs/switching.rst\r\n"] -[61.766845, "o", "Jinja2-2.10.3/docs/templates.rst\r\n"] -[61.767106, "o", "Jinja2-2.10.3/docs/tricks.rst\r\n"] -[61.767141, "o", "Jinja2-2.10.3/examples/\r\n"] -[61.767176, "o", "Jinja2-2.10.3/examples/basic/\r\nJinja2-2.10.3/examples/basic/cycle.py\r\n"] -[61.767213, "o", "Jinja2-2.10.3/examples/basic/debugger.py\r\n"] -[61.767251, "o", "Jinja2-2.10.3/examples/basic/inheritance.py\r\nJinja2-2.10.3/examples/basic/templates/\r\n"] -[61.767289, "o", "Jinja2-2.10.3/examples/basic/templates/broken.html\r\nJinja2-2.10.3/examples/basic/templates/subbroken.html\r\n"] -[61.767321, "o", "Jinja2-2.10.3/examples/basic/test.py\r\n"] -[61.767352, "o", "Jinja2-2.10.3/examples/basic/test_filter_and_linestatements.py\r\n"] -[61.76739, "o", "Jinja2-2.10.3/examples/basic/test_loop_filter.py\r\nJinja2-2.10.3/examples/basic/translate.py\r\n"] -[61.767424, "o", "Jinja2-2.10.3/examples/bench.py\r\n"] -[61.767457, "o", "Jinja2-2.10.3/examples/profile.py\r\n"] -[61.767491, "o", "Jinja2-2.10.3/examples/rwbench/\r\nJinja2-2.10.3/examples/rwbench/django/\r\n"] -[61.767527, "o", "Jinja2-2.10.3/examples/rwbench/django/_form.html\r\nJinja2-2.10.3/examples/rwbench/django/_input_field.html\r\n"] -[61.767559, "o", "Jinja2-2.10.3/examples/rwbench/django/_textarea.html\r\n"] -[61.767597, "o", "Jinja2-2.10.3/examples/rwbench/django/index.html\r\nJinja2-2.10.3/examples/rwbench/django/layout.html\r\n"] -[61.767637, "o", "Jinja2-2.10.3/examples/rwbench/djangoext.py\r\n"] -[61.767666, "o", "Jinja2-2.10.3/examples/rwbench/genshi/\r\n"] -[61.767699, "o", "Jinja2-2.10.3/examples/rwbench/genshi/helpers.html\r\nJinja2-2.10.3/examples/rwbench/genshi/index.html\r\n"] -[61.76773, "o", "Jinja2-2.10.3/examples/rwbench/genshi/layout.html\r\n"] -[61.767774, "o", "Jinja2-2.10.3/examples/rwbench/jinja/\r\n"] -[61.767817, "o", "Jinja2-2.10.3/examples/rwbench/jinja/helpers.html\r\nJinja2-2.10.3/examples/rwbench/jinja/index.html\r\n"] -[61.767853, "o", "Jinja2-2.10.3/examples/rwbench/jinja/layout.html\r\nJinja2-2.10.3/examples/rwbench/mako/\r\n"] -[61.767885, "o", "Jinja2-2.10.3/examples/rwbench/mako/helpers.html\r\n"] -[61.767919, "o", "Jinja2-2.10.3/examples/rwbench/mako/index.html\r\nJinja2-2.10.3/examples/rwbench/mako/layout.html\r\n"] -[61.767949, "o", "Jinja2-2.10.3/examples/rwbench/rwbench.py\r\n"] -[61.76798, "o", "Jinja2-2.10.3/ext/\r\n"] -[61.76801, "o", "Jinja2-2.10.3/ext/Vim/\r\n"] -[61.768039, "o", "Jinja2-2.10.3/ext/Vim/jinja.vim\r\n"] -[61.768073, "o", "Jinja2-2.10.3/ext/django2jinja/\r\nJinja2-2.10.3/ext/django2jinja/django2jinja.py\r\n"] -[61.768114, "o", "Jinja2-2.10.3/ext/django2jinja/example.py\r\n"] -[61.768144, "o", "Jinja2-2.10.3/ext/django2jinja/templates/\r\n"] -[61.768174, "o", "Jinja2-2.10.3/ext/django2jinja/templates/index.html\r\n"] -[61.768212, "o", "Jinja2-2.10.3/ext/django2jinja/templates/layout.html\r\nJinja2-2.10.3/ext/django2jinja/templates/subtemplate.html\r\n"] -[61.768253, "o", "Jinja2-2.10.3/ext/djangojinja2.py\r\n"] -[61.768286, "o", "Jinja2-2.10.3/ext/inlinegettext.py\r\n"] -[61.768316, "o", "Jinja2-2.10.3/ext/jinja.el\r\n"] -[61.768347, "o", "Jinja2-2.10.3/jinja2/\r\nJinja2-2.10.3/jinja2/__init__.py\r\n"] -[61.768376, "o", "Jinja2-2.10.3/jinja2/_compat.py\r\n"] -[61.768406, "o", "Jinja2-2.10.3/jinja2/_identifier.py\r\n"] -[61.768435, "o", "Jinja2-2.10.3/jinja2/asyncfilters.py\r\n"] -[61.768465, "o", "Jinja2-2.10.3/jinja2/asyncsupport.py\r\n"] -[61.768495, "o", "Jinja2-2.10.3/jinja2/bccache.py\r\n"] -[61.768525, "o", "Jinja2-2.10.3/jinja2/compiler.py\r\n"] -[61.768813, "o", "Jinja2-2.10.3/jinja2/constants.py\r\n"] -[61.768846, "o", "Jinja2-2.10.3/jinja2/debug.py\r\n"] -[61.768876, "o", "Jinja2-2.10.3/jinja2/defaults.py\r\n"] -[61.768908, "o", "Jinja2-2.10.3/jinja2/environment.py\r\n"] -[61.769258, "o", "Jinja2-2.10.3/jinja2/exceptions.py\r\n"] -[61.769289, "o", "Jinja2-2.10.3/jinja2/ext.py\r\n"] -[61.769513, "o", "Jinja2-2.10.3/jinja2/filters.py\r\n"] -[61.769752, "o", "Jinja2-2.10.3/jinja2/idtracking.py\r\nJinja2-2.10.3/jinja2/lexer.py\r\n"] -[61.769853, "o", "Jinja2-2.10.3/jinja2/loaders.py\r\n"] -[61.769906, "o", "Jinja2-2.10.3/jinja2/meta.py\r\n"] -[61.770076, "o", "Jinja2-2.10.3/jinja2/nativetypes.py\r\nJinja2-2.10.3/jinja2/nodes.py\r\n"] -[61.770262, "o", "Jinja2-2.10.3/jinja2/optimizer.py\r\nJinja2-2.10.3/jinja2/parser.py\r\n"] -[61.770437, "o", "Jinja2-2.10.3/jinja2/runtime.py\r\n"] -[61.770567, "o", "Jinja2-2.10.3/jinja2/sandbox.py\r\n"] -[61.770761, "o", "Jinja2-2.10.3/jinja2/tests.py\r\n"] -[61.770806, "o", "Jinja2-2.10.3/jinja2/utils.py\r\nJinja2-2.10.3/jinja2/visitor.py\r\n"] -[61.770906, "o", "Jinja2-2.10.3/setup.cfg\r\nJinja2-2.10.3/setup.py\r\nJinja2-2.10.3/tests/\r\nJinja2-2.10.3/tests/conftest.py\r\nJinja2-2.10.3/tests/res/\r\n"] -[61.770959, "o", "Jinja2-2.10.3/tests/res/__init__.py\r\n"] -[61.771161, "o", "Jinja2-2.10.3/tests/res/templates/\r\nJinja2-2.10.3/tests/res/templates/broken.html\r\nJinja2-2.10.3/tests/res/templates/foo/\r\nJinja2-2.10.3/tests/res/templates/foo/test.html\r\nJinja2-2.10.3/tests/res/templates/syntaxerror.html\r\nJinja2-2.10.3/tests/res/templates/test.html\r\nJinja2-2.10.3/tests/test_api.py\r\nJinja2-2.10.3/tests/test_async.py\r\nJinja2-2.10.3/tests/test_asyncfilters.py\r\nJinja2-2.10.3/tests/test_bytecode_cache.py\r\nJinja2-2.10.3/tests/test_core_tags.py\r\n"] -[61.771238, "o", "Jinja2-2.10.3/tests/test_debug.py\r\n"] -[61.771333, "o", "Jinja2-2.10.3/tests/test_ext.py\r\n"] -[61.771412, "o", "Jinja2-2.10.3/tests/test_features.py\r\n"] -[61.771459, "o", "Jinja2-2.10.3/tests/test_filters.py\r\n"] -[61.771566, "o", "Jinja2-2.10.3/tests/test_idtracking.py\r\n"] -[61.771668, "o", "Jinja2-2.10.3/tests/test_imports.py\r\nJinja2-2.10.3/tests/test_inheritance.py\r\n"] -[61.771706, "o", "Jinja2-2.10.3/tests/test_lexnparse.py\r\n"] -[61.77178, "o", "Jinja2-2.10.3/tests/test_loader.py\r\n"] -[61.77183, "o", "Jinja2-2.10.3/tests/test_nativetypes.py\r\nJinja2-2.10.3/tests/test_regression.py\r\n"] -[61.771941, "o", "Jinja2-2.10.3/tests/test_security.py\r\n"] -[61.771981, "o", "Jinja2-2.10.3/tests/test_tests.py\r\n"] -[61.77202, "o", "Jinja2-2.10.3/tests/test_utils.py\r\n"] -[61.772059, "o", "Jinja2-2.10.3/tox.ini\r\n"] -[61.913022, "o", "/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'project_urls'\r\n warnings.warn(msg)\r\n"] -[61.922205, "o", "running install\r\n"] -[61.922621, "o", "running build\r\nrunning build_py\r\n"] -[61.923288, "o", "creating build\r\ncreating build/lib\r\ncreating build/lib/jinja2\r\n"] -[61.923396, "o", "copying jinja2/runtime.py -> build/lib/jinja2\r\n"] -[61.923493, "o", "copying jinja2/environment.py -> build/lib/jinja2\r\n"] -[61.92351, "o", "copying jinja2/exceptions.py -> build/lib/jinja2\r\n"] -[61.92358, "o", "copying jinja2/idtracking.py -> build/lib/jinja2\r\n"] -[61.92368, "o", "copying jinja2/asyncsupport.py -> build/lib/jinja2\r\n"] -[61.923774, "o", "copying jinja2/__init__.py -> build/lib/jinja2\r\n"] -[61.923796, "o", "copying jinja2/ext.py -> build/lib/jinja2\r\n"] -[61.923921, "o", "copying jinja2/lexer.py -> build/lib/jinja2\r\n"] -[61.923975, "o", "copying jinja2/filters.py -> build/lib/jinja2\r\n"] -[61.924026, "o", "copying jinja2/parser.py -> build/lib/jinja2\r\n"] -[61.924108, "o", "copying jinja2/_identifier.py -> build/lib/jinja2\r\n"] -[61.924175, "o", "copying jinja2/visitor.py -> build/lib/jinja2\r\n"] -[61.924237, "o", "copying jinja2/bccache.py -> build/lib/jinja2\r\n"] -[61.924306, "o", "copying jinja2/meta.py -> build/lib/jinja2\r\n"] -[61.924371, "o", "copying jinja2/loaders.py -> build/lib/jinja2\r\n"] -[61.924444, "o", "copying jinja2/nodes.py -> build/lib/jinja2\r\n"] -[61.924524, "o", "copying jinja2/defaults.py -> build/lib/jinja2\r\n"] -[61.924586, "o", "copying jinja2/utils.py -> build/lib/jinja2\r\n"] -[61.924671, "o", "copying jinja2/tests.py -> build/lib/jinja2\r\n"] -[61.924736, "o", "copying jinja2/compiler.py -> build/lib/jinja2\r\n"] -[61.924841, "o", "copying jinja2/constants.py -> build/lib/jinja2\r\n"] -[61.924905, "o", "copying jinja2/asyncfilters.py -> build/lib/jinja2\r\n"] -[61.924968, "o", "copying jinja2/debug.py -> build/lib/jinja2\r\n"] -[61.925037, "o", "copying jinja2/_compat.py -> build/lib/jinja2\r\n"] -[61.925099, "o", "copying jinja2/nativetypes.py -> build/lib/jinja2\r\n"] -[61.925165, "o", "copying jinja2/optimizer.py -> build/lib/jinja2\r\n"] -[61.925226, "o", "copying jinja2/sandbox.py -> build/lib/jinja2\r\n"] -[61.92528, "o", "running egg_info\r\n"] -[61.926912, "o", "writing requirements to Jinja2.egg-info/requires.txt\r\n"] -[61.927134, "o", "writing Jinja2.egg-info/PKG-INFO\r\n"] -[61.927263, "o", "writing top-level names to Jinja2.egg-info/top_level.txt\r\n"] -[61.927337, "o", "writing dependency_links to Jinja2.egg-info/dependency_links.txt\r\n"] -[61.928082, "o", "writing entry points to Jinja2.egg-info/entry_points.txt\r\n"] -[61.978572, "o", "reading manifest file 'Jinja2.egg-info/SOURCES.txt'\r\n"] -[61.979845, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[61.98066, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[61.983211, "o", "writing manifest file 'Jinja2.egg-info/SOURCES.txt'\r\n"] -[61.984136, "o", "running install_lib\r\n"] -[61.984606, "o", "creating /tmp/SBo/package-Jinja2/usr\r\ncreating /tmp/SBo/package-Jinja2/usr/lib64\r\ncreating /tmp/SBo/package-Jinja2/usr/lib64/python2.7\r\ncreating /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages\r\n"] -[61.984717, "o", "creating /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\ncopying build/lib/jinja2/runtime.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.984889, "o", "copying build/lib/jinja2/environment.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985008, "o", "copying build/lib/jinja2/exceptions.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\ncopying build/lib/jinja2/idtracking.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985075, "o", "copying build/lib/jinja2/asyncsupport.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985127, "o", "copying build/lib/jinja2/__init__.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985238, "o", "copying build/lib/jinja2/ext.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985302, "o", "copying build/lib/jinja2/lexer.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985351, "o", "copying build/lib/jinja2/filters.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985433, "o", "copying build/lib/jinja2/parser.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985518, "o", "copying build/lib/jinja2/_identifier.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985578, "o", "copying build/lib/jinja2/visitor.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.98565, "o", "copying build/lib/jinja2/bccache.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985719, "o", "copying build/lib/jinja2/meta.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985783, "o", "copying build/lib/jinja2/loaders.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985855, "o", "copying build/lib/jinja2/nodes.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985934, "o", "copying build/lib/jinja2/defaults.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.985995, "o", "copying build/lib/jinja2/utils.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.98607, "o", "copying build/lib/jinja2/tests.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.986133, "o", "copying build/lib/jinja2/compiler.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.986242, "o", "copying build/lib/jinja2/constants.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.986303, "o", "copying build/lib/jinja2/asyncfilters.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.986367, "o", "copying build/lib/jinja2/debug.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.986435, "o", "copying build/lib/jinja2/_compat.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.986495, "o", "copying build/lib/jinja2/nativetypes.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.98656, "o", "copying build/lib/jinja2/optimizer.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.986626, "o", "copying build/lib/jinja2/sandbox.py -> /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2\r\n"] -[61.986846, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/runtime.py to runtime.pyc\r\n"] -[61.991606, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/environment.py to environment.pyc\r\n"] -[61.996152, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/exceptions.py to exceptions.pyc\r\n"] -[61.996727, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/idtracking.py to idtracking.pyc\r\n"] -[61.998209, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/asyncsupport.py to asyncsupport.pyc\r\n"] -[61.998304, "o", " File \"/usr/lib64/python2.7/site-packages/jinja2/asyncsupport.py\", line 22\r\n async def concat_async(async_gen):\r\n ^\r\nSyntaxError: invalid syntax\r\n\r\nbyte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/__init__.py to __init__.pyc\r\n"] -[61.998535, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/ext.py to ext.pyc\r\n"] -[62.001032, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/lexer.py to lexer.pyc\r\n"] -[62.003752, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/filters.py to filters.pyc\r\n"] -[62.008013, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/parser.py to parser.pyc\r\n"] -[62.012665, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/_identifier.py to _identifier.pyc\r\n"] -[62.01279, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/visitor.py to visitor.pyc\r\n"] -[62.013134, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/bccache.py to bccache.pyc\r\n"] -[62.014188, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/meta.py to meta.pyc\r\n"] -[62.014538, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/loaders.py to loaders.pyc\r\n"] -[62.015981, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/nodes.py to nodes.pyc\r\n"] -[62.019157, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/defaults.py to defaults.pyc\r\n"] -[62.019512, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/utils.py to utils.pyc\r\n"] -[62.022144, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/tests.py to tests.pyc\r\n"] -[62.022856, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/compiler.py to compiler.pyc\r\n"] -[62.030196, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/constants.py to constants.pyc\r\n"] -[62.0303, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/asyncfilters.py to asyncfilters.pyc\r\n File \"/usr/lib64/python2.7/site-packages/jinja2/asyncfilters.py\", line 7\r\n async def auto_to_seq(value):\r\n ^\r\nSyntaxError: invalid syntax\r\n\r\nbyte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/debug.py to debug.pyc\r\n"] -[62.03177, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/_compat.py to _compat.pyc\r\n"] -[62.032163, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/nativetypes.py to nativetypes.pyc\r\n"] -[62.032944, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/optimizer.py to optimizer.pyc\r\n"] -[62.033173, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/jinja2/sandbox.py to sandbox.pyc\r\n"] -[62.034499, "o", "running install_egg_info\r\n"] -[62.034967, "o", "Copying Jinja2.egg-info to /tmp/SBo/package-Jinja2/usr/lib64/python2.7/site-packages/Jinja2-2.10.3-py2.7.egg-info\r\n"] -[62.035388, "o", "running install_scripts\r\n"] -[62.224606, "o", "running install\r\n"] -[62.225494, "o", "running build\r\nrunning build_py\r\n"] -[62.238548, "o", "running egg_info\r\n"] -[62.241093, "o", "writing Jinja2.egg-info/PKG-INFO\r\n"] -[62.241347, "o", "writing dependency_links to Jinja2.egg-info/dependency_links.txt\r\n"] -[62.241862, "o", "writing entry points to Jinja2.egg-info/entry_points.txt\r\n"] -[62.241933, "o", "writing requirements to Jinja2.egg-info/requires.txt\r\n"] -[62.242001, "o", "writing top-level names to Jinja2.egg-info/top_level.txt\r\n"] -[62.290003, "o", "reading manifest file 'Jinja2.egg-info/SOURCES.txt'\r\n"] -[62.290869, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[62.29166, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[62.294544, "o", "writing manifest file 'Jinja2.egg-info/SOURCES.txt'\r\n"] -[62.295926, "o", "running install_lib\r\n"] -[62.296657, "o", "creating /tmp/SBo/package-Jinja2/usr/lib64/python3.7\r\ncreating /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages\r\n"] -[62.296751, "o", "creating /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.296855, "o", "copying build/lib/jinja2/runtime.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.297049, "o", "copying build/lib/jinja2/environment.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.297166, "o", "copying build/lib/jinja2/exceptions.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.297303, "o", "copying build/lib/jinja2/idtracking.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.297429, "o", "copying build/lib/jinja2/asyncsupport.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.297525, "o", "copying build/lib/jinja2/__init__.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.297695, "o", "copying build/lib/jinja2/ext.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.297797, "o", "copying build/lib/jinja2/lexer.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.29791, "o", "copying build/lib/jinja2/filters.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.298071, "o", "copying build/lib/jinja2/parser.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.298258, "o", "copying build/lib/jinja2/_identifier.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.298359, "o", "copying build/lib/jinja2/visitor.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.298474, "o", "copying build/lib/jinja2/bccache.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.298568, "o", "copying build/lib/jinja2/meta.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.298796, "o", "copying build/lib/jinja2/loaders.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.298917, "o", "copying build/lib/jinja2/nodes.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.299022, "o", "copying build/lib/jinja2/defaults.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.299085, "o", "copying build/lib/jinja2/utils.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.299223, "o", "copying build/lib/jinja2/tests.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.29935, "o", "copying build/lib/jinja2/compiler.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.299516, "o", "copying build/lib/jinja2/constants.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.299696, "o", "copying build/lib/jinja2/asyncfilters.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.299809, "o", "copying build/lib/jinja2/debug.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.299877, "o", "copying build/lib/jinja2/_compat.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.300005, "o", "copying build/lib/jinja2/nativetypes.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.300129, "o", "copying build/lib/jinja2/optimizer.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.300248, "o", "copying build/lib/jinja2/sandbox.py -> /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2\r\n"] -[62.300876, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/runtime.py to runtime.cpython-37.pyc\r\n"] -[62.305979, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/environment.py to environment.cpython-37.pyc\r\n"] -[62.310559, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/exceptions.py to exceptions.cpython-37.pyc\r\n"] -[62.311251, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/idtracking.py to idtracking.cpython-37.pyc\r\n"] -[62.312673, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/asyncsupport.py to asyncsupport.cpython-37.pyc\r\n"] -[62.313873, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/__init__.py to __init__.cpython-37.pyc\r\n"] -[62.314226, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/ext.py to ext.cpython-37.pyc\r\n"] -[62.317559, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/lexer.py to lexer.cpython-37.pyc\r\n"] -[62.321265, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/filters.py to filters.cpython-37.pyc\r\n"] -[62.325099, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/parser.py to parser.cpython-37.pyc\r\n"] -[62.331992, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/_identifier.py to _identifier.cpython-37.pyc\r\n"] -[62.332242, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/visitor.py to visitor.cpython-37.pyc\r\n"] -[62.332864, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/bccache.py to bccache.cpython-37.pyc\r\n"] -[62.334192, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/meta.py to meta.cpython-37.pyc\r\n"] -[62.33468, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/loaders.py to loaders.cpython-37.pyc\r\n"] -[62.33651, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/nodes.py to nodes.cpython-37.pyc\r\n"] -[62.340351, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/defaults.py to defaults.cpython-37.pyc\r\n"] -[62.340622, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/utils.py to utils.cpython-37.pyc\r\n"] -[62.343018, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/tests.py to tests.cpython-37.pyc\r\n"] -[62.343624, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/compiler.py to compiler.cpython-37.pyc\r\n"] -[62.35288, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/constants.py to constants.cpython-37.pyc\r\n"] -[62.353025, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/asyncfilters.py to asyncfilters.cpython-37.pyc\r\n"] -[62.353954, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/debug.py to debug.cpython-37.pyc\r\n"] -[62.355545, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/_compat.py to _compat.cpython-37.pyc\r\n"] -[62.356147, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/nativetypes.py to nativetypes.cpython-37.pyc\r\n"] -[62.357085, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/optimizer.py to optimizer.cpython-37.pyc\r\n"] -[62.357429, "o", "byte-compiling /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/jinja2/sandbox.py to sandbox.cpython-37.pyc\r\n"] -[62.358994, "o", "running install_egg_info\r\n"] -[62.35973, "o", "Copying Jinja2.egg-info to /tmp/SBo/package-Jinja2/usr/lib64/python3.7/site-packages/Jinja2-2.10.3-py3.7.egg-info\r\n"] -[62.360433, "o", "running install_scripts\r\n"] -[62.536838, "o", "\r\nSlackware package maker, version 3.141593.\r\n\r\nSearching for symbolic links:\r\n"] -[62.540951, "o", "\r\n"] -[62.542538, "o", "No symbolic links were found, so we won't make an installation script.\r\nYou can make your own later in ./install/doinst.sh and rebuild the\r\npackage if you like.\r\n"] -[62.544131, "o", "\r\nThis next step is optional - you can set the directories in your package\r\nto some sane permissions. If any of the directories in your package have\r\nspecial permissions, then DO NOT reset them here!\r\n\r\nWould you like to reset all directory permissions to 755 (drwxr-xr-x) and\r\ndirectory ownerships to root.root ([y]es, [n]o)? "] -[62.54422, "o", "n\r\n\r\n"] -[62.546343, "o", "Creating Slackware package: /tmp/Jinja2-2.10.3-x86_64-2_SBo.tgz\r\n\r\n"] -[62.549569, "o", "./\r\nusr/\r\nusr/doc/\r\nusr/doc/Jinja2-2.10.3/\r\nusr/doc/Jinja2-2.10.3/README.rst\r\nusr/doc/Jinja2-2.10.3/Jinja2.SlackBuild\r\nusr/doc/Jinja2-2.10.3/LICENSE.rst\r\nusr/doc/Jinja2-2.10.3/CHANGES.rst\r\n"] -[62.549596, "o", "usr/lib64/\r\nusr/lib64/python3.7/\r\n"] -[62.549615, "o", "usr/lib64/python3.7/site-packages/\r\nusr/lib64/python3.7/site-packages/Jinja2-2.10.3-py3.7.egg-info/\r\n"] -[62.54967, "o", "usr/lib64/python3.7/site-packages/Jinja2-2.10.3-py3.7.egg-info/top_level.txt\r\n"] -[62.549753, "o", "usr/lib64/python3.7/site-packages/Jinja2-2.10.3-py3.7.egg-info/dependency_links.txt\r\nusr/lib64/python3.7/site-packages/Jinja2-2.10.3-py3.7.egg-info/SOURCES.txt\r\nusr/lib64/python3.7/site-packages/Jinja2-2.10.3-py3.7.egg-info/entry_points.txt\r\nusr/lib64/python3.7/site-packages/Jinja2-2.10.3-py3.7.egg-info/requires.txt\r\nusr/lib64/python3.7/site-packages/Jinja2-2.10.3-py3.7.egg-info/PKG-INFO\r\nusr/lib64/python3.7/site-packages/jinja2/\r\nusr/lib64/python3.7/site-packages/jinja2/runtime.py\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/exceptions.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/defaults.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/optimizer.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/nodes.cpython-37.pyc\r\n"] -[62.550781, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/asyncfilters.cpython-37.pyc\r\n"] -[62.550795, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/_identifier.cpython-37.pyc\r\n"] -[62.553131, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/parser.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/bccache.cpython-37.pyc\r\n"] -[62.557217, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/nativetypes.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/meta.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/visitor.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/_compat.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/filters.cpython-37.pyc\r\n"] -[62.563121, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/compiler.cpython-37.pyc\r\n"] -[62.575306, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/runtime.cpython-37.pyc\r\n"] -[62.580287, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/utils.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/environment.cpython-37.pyc\r\n"] -[62.584656, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/tests.cpython-37.pyc\r\n"] -[62.591112, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/loaders.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/sandbox.cpython-37.pyc\r\n"] -[62.596137, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/lexer.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/ext.cpython-37.pyc\r\n"] -[62.600125, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/asyncsupport.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/debug.cpython-37.pyc\r\n"] -[62.605264, "o", "usr/lib64/python3.7/site-packages/jinja2/__pycache__/idtracking.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/__pycache__/constants.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/jinja2/environment.py\r\n"] -[62.611049, "o", "usr/lib64/python3.7/site-packages/jinja2/exceptions.py\r\n"] -[62.617106, "o", "usr/lib64/python3.7/site-packages/jinja2/idtracking.py\r\nusr/lib64/python3.7/site-packages/jinja2/asyncsupport.py\r\nusr/lib64/python3.7/site-packages/jinja2/__init__.py\r\nusr/lib64/python3.7/site-packages/jinja2/ext.py\r\n"] -[62.622419, "o", "usr/lib64/python3.7/site-packages/jinja2/lexer.py\r\n"] -[62.626293, "o", "usr/lib64/python3.7/site-packages/jinja2/filters.py\r\n"] -[62.629971, "o", "usr/lib64/python3.7/site-packages/jinja2/parser.py\r\n"] -[62.634059, "o", "usr/lib64/python3.7/site-packages/jinja2/_identifier.py\r\nusr/lib64/python3.7/site-packages/jinja2/visitor.py\r\nusr/lib64/python3.7/site-packages/jinja2/bccache.py\r\n"] -[62.638453, "o", "usr/lib64/python3.7/site-packages/jinja2/meta.py\r\nusr/lib64/python3.7/site-packages/jinja2/loaders.py\r\n"] -[62.642613, "o", "usr/lib64/python3.7/site-packages/jinja2/nodes.py\r\n"] -[62.646664, "o", "usr/lib64/python3.7/site-packages/jinja2/defaults.py\r\nusr/lib64/python3.7/site-packages/jinja2/utils.py\r\nusr/lib64/python3.7/site-packages/jinja2/tests.py\r\n"] -[62.65075, "o", "usr/lib64/python3.7/site-packages/jinja2/compiler.py\r\n"] -[62.655208, "o", "usr/lib64/python3.7/site-packages/jinja2/constants.py\r\nusr/lib64/python3.7/site-packages/jinja2/asyncfilters.py\r\n"] -[62.659016, "o", "usr/lib64/python3.7/site-packages/jinja2/debug.py\r\nusr/lib64/python3.7/site-packages/jinja2/_compat.py\r\nusr/lib64/python3.7/site-packages/jinja2/nativetypes.py\r\nusr/lib64/python3.7/site-packages/jinja2/optimizer.py\r\nusr/lib64/python3.7/site-packages/jinja2/sandbox.py\r\n"] -[62.663377, "o", "usr/lib64/python2.7/\r\nusr/lib64/python2.7/site-packages/\r\nusr/lib64/python2.7/site-packages/jinja2/\r\nusr/lib64/python2.7/site-packages/jinja2/optimizer.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/runtime.py\r\n"] -[62.66707, "o", "usr/lib64/python2.7/site-packages/jinja2/idtracking.pyc\r\n"] -[62.671295, "o", "usr/lib64/python2.7/site-packages/jinja2/environment.py\r\n"] -[62.675594, "o", "usr/lib64/python2.7/site-packages/jinja2/exceptions.py\r\nusr/lib64/python2.7/site-packages/jinja2/utils.pyc\r\n"] -[62.679622, "o", "usr/lib64/python2.7/site-packages/jinja2/defaults.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/_compat.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/idtracking.py\r\nusr/lib64/python2.7/site-packages/jinja2/asyncsupport.py\r\n"] -[62.682974, "o", "usr/lib64/python2.7/site-packages/jinja2/__init__.py\r\nusr/lib64/python2.7/site-packages/jinja2/ext.py\r\n"] -[62.687689, "o", "usr/lib64/python2.7/site-packages/jinja2/visitor.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/exceptions.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/lexer.py\r\n"] -[62.692832, "o", "usr/lib64/python2.7/site-packages/jinja2/filters.py\r\n"] -[62.69577, "o", "usr/lib64/python2.7/site-packages/jinja2/lexer.pyc\r\n"] -[62.700146, "o", "usr/lib64/python2.7/site-packages/jinja2/meta.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/environment.pyc\r\n"] -[62.704067, "o", "usr/lib64/python2.7/site-packages/jinja2/parser.py\r\n"] -[62.712751, "o", "usr/lib64/python2.7/site-packages/jinja2/constants.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/_identifier.py\r\nusr/lib64/python2.7/site-packages/jinja2/loaders.pyc\r\n"] -[62.717634, "o", "usr/lib64/python2.7/site-packages/jinja2/visitor.py\r\nusr/lib64/python2.7/site-packages/jinja2/parser.pyc\r\n"] -[62.717665, "o", "usr/lib64/python2.7/site-packages/jinja2/bccache.py\r\n"] -[62.720977, "o", "usr/lib64/python2.7/site-packages/jinja2/filters.pyc\r\n"] -[62.725714, "o", "usr/lib64/python2.7/site-packages/jinja2/meta.py\r\nusr/lib64/python2.7/site-packages/jinja2/loaders.py\r\n"] -[62.73261, "o", "usr/lib64/python2.7/site-packages/jinja2/nodes.py\r\n"] -[62.7365, "o", "usr/lib64/python2.7/site-packages/jinja2/defaults.py\r\nusr/lib64/python2.7/site-packages/jinja2/utils.py\r\n"] -[62.740931, "o", "usr/lib64/python2.7/site-packages/jinja2/tests.py\r\nusr/lib64/python2.7/site-packages/jinja2/sandbox.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/runtime.pyc\r\n"] -[62.744524, "o", "usr/lib64/python2.7/site-packages/jinja2/compiler.py\r\n"] -[62.7532, "o", "usr/lib64/python2.7/site-packages/jinja2/bccache.pyc\r\n"] -[62.759586, "o", "usr/lib64/python2.7/site-packages/jinja2/constants.py\r\nusr/lib64/python2.7/site-packages/jinja2/compiler.pyc\r\n"] -[62.763046, "o", "usr/lib64/python2.7/site-packages/jinja2/asyncfilters.py\r\n"] -[62.767291, "o", "usr/lib64/python2.7/site-packages/jinja2/tests.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/debug.py\r\nusr/lib64/python2.7/site-packages/jinja2/_compat.py\r\nusr/lib64/python2.7/site-packages/jinja2/nativetypes.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/__init__.pyc\r\n"] -[62.773375, "o", "usr/lib64/python2.7/site-packages/jinja2/nativetypes.py\r\nusr/lib64/python2.7/site-packages/jinja2/optimizer.py\r\nusr/lib64/python2.7/site-packages/jinja2/ext.pyc\r\n"] -[62.779456, "o", "usr/lib64/python2.7/site-packages/jinja2/sandbox.py\r\nusr/lib64/python2.7/site-packages/jinja2/nodes.pyc\r\n"] -[62.789248, "o", "usr/lib64/python2.7/site-packages/jinja2/_identifier.pyc\r\nusr/lib64/python2.7/site-packages/jinja2/debug.pyc\r\n"] -[62.789294, "o", "usr/lib64/python2.7/site-packages/Jinja2-2.10.3-py2.7.egg-info/\r\nusr/lib64/python2.7/site-packages/Jinja2-2.10.3-py2.7.egg-info/top_level.txt\r\nusr/lib64/python2.7/site-packages/Jinja2-2.10.3-py2.7.egg-info/dependency_links.txt\r\n"] -[62.789312, "o", "usr/lib64/python2.7/site-packages/Jinja2-2.10.3-py2.7.egg-info/SOURCES.txt\r\nusr/lib64/python2.7/site-packages/Jinja2-2.10.3-py2.7.egg-info/entry_points.txt\r\n"] -[62.789454, "o", "usr/lib64/python2.7/site-packages/Jinja2-2.10.3-py2.7.egg-info/requires.txt\r\nusr/lib64/python2.7/site-packages/Jinja2-2.10.3-py2.7.egg-info/PKG-INFO\r\ninstall/\r\ninstall/slack-desc\r\n"] -[62.812039, "o", "\r\nSlackware package /tmp/Jinja2-2.10.3-x86_64-2_SBo.tgz created.\r\n\r\n"] -[62.812691, "o", "Total build time for the package Jinja2 : 1.16 Sec\r\n\r\n"] -[62.822371, "o", "[ \u001b[32mInstalling\u001b[0m ] --> Jinja2-2.10.3\r\n"] -[62.835999, "o", "\r\n+==============================================================================\r\n| Installing new package /tmp/Jinja2-2.10.3-x86_64-2_SBo.tgz\r\n+==============================================================================\r\n\r\n"] -[62.852513, "o", "Verifying package Jinja2-2.10.3-x86_64-2_SBo.tgz.\r\n"] -[62.884839, "o", "Installing package Jinja2-2.10.3-x86_64-2_SBo.tgz:\r\nPACKAGE DESCRIPTION:\r\n"] -[62.885858, "o", "# Jinja2 (Template engine for Python)\r\n#\r\n# Jinja2 is a template engine written in pure Python. It provides a\r\n# Django inspired non-XML syntax but supports inline expressions and\r\n# an optional sandboxed environment.\r\n#\r\n"] -[62.99703, "o", "Package Jinja2-2.10.3-x86_64-2_SBo.tgz installed.\r\n\r\n"] -[62.997359, "o", "\r\n"] -[62.997628, "o", "Completed!\r\n\r\n"] -[63.08219, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> itsdangerous.tar.gz\r\n\r\n"] -[63.087612, "o", "--2019-12-03 19:17:26-- http://slackbuilds.org/slackbuilds/14.2/python/itsdangerous.tar.gz\r\nResolving slackbuilds.org... "] -[63.518107, "o", "208.94.237.149\r\nConnecting to slackbuilds.org|208.94.237.149|:80... "] -[63.822018, "o", "connected.\r\nHTTP request sent, awaiting response... "] -[64.029767, "o", "200 OK\r\nLength: 2306 (2.3K) [application/x-gzip]\r\n"] -[64.03031, "o", "Saving to: ‘/tmp/slpkg/build/itsdangerous.tar.gz’\r\n\r\n"] -[64.031394, "o", "\ritsdangerous.tar.gz 0%[ ] 0 --.-KB/s "] -[64.031717, "o", "\ritsdangerous.tar.gz 100%[===================>] 2.25K --.-KB/s in 0s \r\n\r\n2019-12-03 19:17:27 (65.3 MB/s) - ‘/tmp/slpkg/build/itsdangerous.tar.gz’ saved [2306/2306]\r\n\r\n"] -[64.033245, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> itsdangerous-0.24.tar.gz\r\n\r\n"] -[64.044764, "o", "--2019-12-03 19:17:27-- https://pypi.python.org/packages/source/i/itsdangerous/itsdangerous-0.24.tar.gz\r\n"] -[64.046813, "o", "Resolving pypi.python.org... "] -[64.202755, "o", "2a04:4e42:1b::223, 151.101.112.223\r\nConnecting to pypi.python.org|2a04:4e42:1b::223|:443... "] -[64.249732, "o", "connected.\r\n"] -[64.353686, "o", "HTTP request sent, awaiting response... "] -[64.403822, "o", "301 Redirect to Primary Domain\r\nLocation: https://pypi.org/packages/source/i/itsdangerous/itsdangerous-0.24.tar.gz [following]\r\n"] -[64.404349, "o", "--2019-12-03 19:17:27-- https://pypi.org/packages/source/i/itsdangerous/itsdangerous-0.24.tar.gz\r\nResolving pypi.org... "] -[64.468136, "o", "2a04:4e42::223, 2a04:4e42:600::223, 2a04:4e42:200::223, ...\r\nConnecting to pypi.org|2a04:4e42::223|:443... "] -[64.515401, "o", "connected.\r\n"] -[64.620278, "o", "HTTP request sent, awaiting response... "] -[64.781263, "o", "301 Moved Permanently\r\nLocation: https://files.pythonhosted.org/packages/source/i/itsdangerous/itsdangerous-0.24.tar.gz [following]\r\n"] -[64.781838, "o", "--2019-12-03 19:17:27-- https://files.pythonhosted.org/packages/source/i/itsdangerous/itsdangerous-0.24.tar.gz\r\nResolving files.pythonhosted.org... "] -[64.806225, "o", "2a04:4e42:1b::319, 151.101.13.63\r\nConnecting to files.pythonhosted.org|2a04:4e42:1b::319|:443... "] -[64.854803, "o", "connected.\r\n"] -[64.964237, "o", "HTTP request sent, awaiting response... "] -[65.014953, "o", "302 Found\r\n"] -[65.015449, "o", "Location: https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz [following]\r\n--2019-12-03 19:17:28-- https://files.pythonhosted.org/packages/dc/b4/a60bcdba945c00f6d608d8975131ab3f25b22f2bcfe1dab221165194b2d4/itsdangerous-0.24.tar.gz\r\n"] -[65.015901, "o", "Reusing existing connection to [files.pythonhosted.org]:443.\r\nHTTP request sent, awaiting response... "] -[65.068064, "o", "416 Range Not Satisfiable\r\n\r\n The file is already fully retrieved; nothing to do.\r\n\r\n"] -[65.136122, "o", "\r\n"] -[65.136259, "o", "+==============================================================================\r\n| MD5SUM check for itsdangerous-0.24.tar.gz [ \u001b[32mPASSED\u001b[0m ]\r\n+==============================================================================\r\n\r\n"] -[65.161126, "o", "itsdangerous-0.24/\r\n"] -[65.161495, "o", "itsdangerous-0.24/CHANGES\r\nitsdangerous-0.24/docs/\r\nitsdangerous-0.24/docs/_static/\r\nitsdangerous-0.24/docs/_static/itsdangerous.png\r\nitsdangerous-0.24/docs/_themes/\r\nitsdangerous-0.24/docs/_themes/.gitignore\r\nitsdangerous-0.24/docs/_themes/flask_small/\r\nitsdangerous-0.24/docs/_themes/flask_small/layout.html\r\nitsdangerous-0.24/docs/_themes/flask_small/static/\r\nitsdangerous-0.24/docs/_themes/flask_small/static/flasky.css_t\r\n"] -[65.161683, "o", "itsdangerous-0.24/docs/_themes/flask_small/theme.conf\r\nitsdangerous-0.24/docs/_themes/flask_theme_support.py\r\nitsdangerous-0.24/docs/_themes/LICENSE\r\nitsdangerous-0.24/docs/_themes/README\r\nitsdangerous-0.24/docs/conf.py\r\nitsdangerous-0.24/docs/index.rst\r\nitsdangerous-0.24/docs/make.bat\r\nitsdangerous-0.24/docs/Makefile\r\nitsdangerous-0.24/itsdangerous.egg-info/\r\nitsdangerous-0.24/itsdangerous.egg-info/dependency_links.txt\r\nitsdangerous-0.24/itsdangerous.egg-info/not-zip-safe\r\nitsdangerous-0.24/itsdangerous.egg-info/PKG-INFO\r\nitsdangerous-0.24/itsdangerous.egg-info/SOURCES.txt\r\n"] -[65.161938, "o", "itsdangerous-0.24/itsdangerous.egg-info/top_level.txt\r\nitsdangerous-0.24/itsdangerous.py\r\nitsdangerous-0.24/LICENSE\r\nitsdangerous-0.24/Makefile\r\nitsdangerous-0.24/MANIFEST.in\r\nitsdangerous-0.24/PKG-INFO\r\nitsdangerous-0.24/README\r\nitsdangerous-0.24/setup.cfg\r\nitsdangerous-0.24/setup.py\r\nitsdangerous-0.24/tests.py\r\nitsdangerous-0.24/tox.ini\r\n"] -[65.323487, "o", "running install\r\n"] -[65.324029, "o", "running build\r\nrunning build_py\r\n"] -[65.325163, "o", "creating build\r\ncreating build/lib\r\ncopying itsdangerous.py -> build/lib\r\nrunning install_lib\r\n"] -[65.325658, "o", "creating /tmp/SBo/package-itsdangerous/usr\r\n"] -[65.325748, "o", "creating /tmp/SBo/package-itsdangerous/usr/lib64\r\ncreating /tmp/SBo/package-itsdangerous/usr/lib64/python2.7\r\ncreating /tmp/SBo/package-itsdangerous/usr/lib64/python2.7/site-packages\r\n"] -[65.325845, "o", "copying build/lib/itsdangerous.py -> /tmp/SBo/package-itsdangerous/usr/lib64/python2.7/site-packages\r\n"] -[65.326104, "o", "byte-compiling /tmp/SBo/package-itsdangerous/usr/lib64/python2.7/site-packages/itsdangerous.py to itsdangerous.pyc\r\n"] -[65.330955, "o", "running install_egg_info\r\n"] -[65.333472, "o", "running egg_info\r\n"] -[65.333522, "o", "writing itsdangerous.egg-info/PKG-INFO\r\n"] -[65.333847, "o", "writing top-level names to itsdangerous.egg-info/top_level.txt\r\n"] -[65.333964, "o", "writing dependency_links to itsdangerous.egg-info/dependency_links.txt\r\n"] -[65.382684, "o", "reading manifest file 'itsdangerous.egg-info/SOURCES.txt'\r\n"] -[65.383435, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[65.384593, "o", "warning: no previously-included files matching '*' found under directory 'docs/_build'\r\n"] -[65.385368, "o", "writing manifest file 'itsdangerous.egg-info/SOURCES.txt'\r\n"] -[65.385476, "o", "Copying itsdangerous.egg-info to /tmp/SBo/package-itsdangerous/usr/lib64/python2.7/site-packages/itsdangerous-0.24-py2.7.egg-info\r\n"] -[65.385962, "o", "running install_scripts\r\n"] -[65.448394, "o", "\r\nSlackware package maker, version 3.141593.\r\n\r\nSearching for symbolic links:\r\n"] -[65.452945, "o", "\r\n"] -[65.454827, "o", "No symbolic links were found, so we won't make an installation script.\r\nYou can make your own later in ./install/doinst.sh and rebuild the\r\npackage if you like.\r\n"] -[65.456563, "o", "\r\nThis next step is optional - you can set the directories in your package\r\nto some sane permissions. If any of the directories in your package have\r\nspecial permissions, then DO NOT reset them here!\r\n\r\nWould you like to reset all directory permissions to 755 (drwxr-xr-x) and\r\ndirectory ownerships to root.root ([y]es, [n]o)? n\r\n\r\n"] -[65.459115, "o", "Creating Slackware package: /tmp/itsdangerous-0.24-x86_64-1_SBo.tgz\r\n\r\n"] -[65.462811, "o", "./\r\nusr/\r\nusr/doc/\r\nusr/doc/itsdangerous-0.24/\r\nusr/doc/itsdangerous-0.24/README\r\nusr/doc/itsdangerous-0.24/CHANGES\r\n"] -[65.462843, "o", "usr/doc/itsdangerous-0.24/itsdangerous.SlackBuild\r\nusr/doc/itsdangerous-0.24/LICENSE\r\nusr/doc/itsdangerous-0.24/index.rst\r\nusr/doc/itsdangerous-0.24/PKG-INFO\r\nusr/lib64/\r\nusr/lib64/python2.7/\r\n"] -[65.462859, "o", "usr/lib64/python2.7/site-packages/\r\n"] -[65.462873, "o", "usr/lib64/python2.7/site-packages/itsdangerous.py\r\n"] -[65.462996, "o", "usr/lib64/python2.7/site-packages/itsdangerous-0.24-py2.7.egg-info/\r\nusr/lib64/python2.7/site-packages/itsdangerous-0.24-py2.7.egg-info/top_level.txt\r\nusr/lib64/python2.7/site-packages/itsdangerous-0.24-py2.7.egg-info/dependency_links.txt\r\nusr/lib64/python2.7/site-packages/itsdangerous-0.24-py2.7.egg-info/SOURCES.txt\r\nusr/lib64/python2.7/site-packages/itsdangerous-0.24-py2.7.egg-info/PKG-INFO\r\nusr/lib64/python2.7/site-packages/itsdangerous-0.24-py2.7.egg-info/not-zip-safe\r\nusr/lib64/python2.7/site-packages/itsdangerous.pyc\r\n"] -[65.463173, "o", "install/\r\ninstall/slack-desc\r\n"] -[65.483939, "o", "\r\nSlackware package /tmp/itsdangerous-0.24-x86_64-1_SBo.tgz created.\r\n\r\n"] -[65.484667, "o", "Total build time for the package itsdangerous : 0.41 Sec\r\n\r\n"] -[65.496069, "o", "[ \u001b[32mInstalling\u001b[0m ] --> itsdangerous-0.24\r\n"] -[65.509968, "o", "\r\n+==============================================================================\r\n| Installing new package /tmp/itsdangerous-0.24-x86_64-1_SBo.tgz\r\n+==============================================================================\r\n\r\n"] -[65.527959, "o", "Verifying package itsdangerous-0.24-x86_64-1_SBo.tgz.\r\n"] -[65.540535, "o", "Installing package itsdangerous-0.24-x86_64-1_SBo.tgz:\r\nPACKAGE DESCRIPTION:\r\n"] -[65.5413, "o", "# itsdangerous (Various helpers to pass trusted data)\r\n#\r\n# It's Dangerous ... so better sign this\r\n# Various helpers to pass data to untrusted environments and to get it\r\n# back safe and sound.\r\n# This repository provides a module that is a port of the django signing\r\n# module. It's not directly copied but some changes were applied to make\r\n# it work better on its own.\r\n#\r\n# Homepage: https://github.com/mitsuhiko/itsdangerous\r\n"] -[65.647111, "o", "Package itsdangerous-0.24-x86_64-1_SBo.tgz installed.\r\n\r\n"] -[65.647432, "o", "\r\n"] -[65.647621, "o", "Completed!\r\n\r\n"] -[65.731758, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> click.tar.gz\r\n\r\n"] -[65.73705, "o", "--2019-12-03 19:17:28-- http://slackbuilds.org/slackbuilds/14.2/python/click.tar.gz\r\nResolving slackbuilds.org... "] -[66.182204, "o", "208.94.237.149\r\nConnecting to slackbuilds.org|208.94.237.149|:80... "] -[66.344867, "o", "connected.\r\nHTTP request sent, awaiting response... "] -[66.590384, "o", "200 OK\r\nLength: 2468 (2.4K) [application/x-gzip]\r\n"] -[66.59091, "o", "Saving to: ‘/tmp/slpkg/build/click.tar.gz’\r\n\r\n"] -[66.591581, "o", "\rclick.tar.gz 0%[ ] 0 --.-KB/s "] -[66.59214, "o", "\rclick.tar.gz 100%[===================>] 2.41K --.-KB/s in 0s \r\n\r\n2019-12-03 19:17:29 (120 MB/s) - ‘/tmp/slpkg/build/click.tar.gz’ saved [2468/2468]\r\n\r\n"] -[66.593427, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> Click-7.0.tar.gz\r\n\r\n"] -[66.614275, "o", "--2019-12-03 19:17:29-- https://files.pythonhosted.org/packages/f8/5c/f60e9d8a1e77005f664b76ff8aeaee5bc05d0a91798afd7f53fc998dbc47/Click-7.0.tar.gz\r\n"] -[66.620552, "o", "Resolving files.pythonhosted.org... "] -[66.645918, "o", "2a04:4e42:1b::319, 151.101.13.63\r\nConnecting to files.pythonhosted.org|2a04:4e42:1b::319|:443... "] -[66.694381, "o", "connected.\r\n"] -[66.805121, "o", "HTTP request sent, awaiting response... "] -[66.855998, "o", "416 Range Not Satisfiable\r\n\r\n The file is already fully retrieved; nothing to do.\r\n\r\n"] -[66.926873, "o", "\r\n"] -[66.927429, "o", "+==============================================================================\r\n| MD5SUM check for Click-7.0.tar.gz [ \u001b[32mPASSED\u001b[0m ]\r\n+==============================================================================\r\n\r\n"] -[66.95137, "o", "Click-7.0/\r\nClick-7.0/CHANGES.rst\r\nClick-7.0/CONTRIBUTING.rst\r\n"] -[66.951529, "o", "Click-7.0/Click.egg-info/\r\nClick-7.0/Click.egg-info/PKG-INFO\r\nClick-7.0/Click.egg-info/SOURCES.txt\r\nClick-7.0/Click.egg-info/dependency_links.txt\r\nClick-7.0/Click.egg-info/top_level.txt\r\nClick-7.0/LICENSE.rst\r\nClick-7.0/MANIFEST.in\r\nClick-7.0/PKG-INFO\r\nClick-7.0/README.rst\r\nClick-7.0/artwork/\r\nClick-7.0/artwork/logo.svg\r\nClick-7.0/click/\r\nClick-7.0/click/__init__.py\r\nClick-7.0/click/_bashcomplete.py\r\nClick-7.0/click/_compat.py\r\n"] -[66.951598, "o", "Click-7.0/click/_termui_impl.py\r\n"] -[66.951897, "o", "Click-7.0/click/_textwrap.py\r\nClick-7.0/click/_unicodefun.py\r\nClick-7.0/click/_winconsole.py\r\nClick-7.0/click/core.py\r\n"] -[66.952294, "o", "Click-7.0/click/decorators.py\r\n"] -[66.952413, "o", "Click-7.0/click/exceptions.py\r\nClick-7.0/click/formatting.py\r\nClick-7.0/click/globals.py\r\n"] -[66.952463, "o", "Click-7.0/click/parser.py\r\n"] -[66.952534, "o", "Click-7.0/click/termui.py\r\n"] -[66.952753, "o", "Click-7.0/click/testing.py\r\nClick-7.0/click/types.py\r\n"] -[66.952965, "o", "Click-7.0/click/utils.py\r\nClick-7.0/docs/\r\nClick-7.0/docs/Makefile\r\n"] -[66.953059, "o", "Click-7.0/docs/_static/\r\n"] -[66.953109, "o", "Click-7.0/docs/_static/click-icon.png\r\nClick-7.0/docs/_static/click-logo-sidebar.png\r\nClick-7.0/docs/_static/click-logo.png\r\n"] -[66.95326, "o", "Click-7.0/docs/advanced.rst\r\n"] -[66.953503, "o", "Click-7.0/docs/api.rst\r\nClick-7.0/docs/arguments.rst\r\nClick-7.0/docs/bashcomplete.rst\r\n"] -[66.953562, "o", "Click-7.0/docs/changelog.rst\r\nClick-7.0/docs/commands.rst\r\n"] -[66.953775, "o", "Click-7.0/docs/complex.rst\r\n"] -[66.95388, "o", "Click-7.0/docs/conf.py\r\n"] -[66.954418, "o", "Click-7.0/docs/contrib.rst\r\nClick-7.0/docs/documentation.rst\r\nClick-7.0/docs/exceptions.rst\r\nClick-7.0/docs/index.rst\r\nClick-7.0/docs/license.rst\r\nClick-7.0/docs/make.bat\r\nClick-7.0/docs/options.rst\r\nClick-7.0/docs/parameters.rst\r\nClick-7.0/docs/prompts.rst\r\nClick-7.0/docs/python3.rst\r\nClick-7.0/docs/quickstart.rst\r\n"] -[66.954497, "o", "Click-7.0/docs/requirements.txt\r\nClick-7.0/docs/setuptools.rst\r\n"] -[66.954546, "o", "Click-7.0/docs/testing.rst\r\n"] -[66.954597, "o", "Click-7.0/docs/upgrading.rst\r\n"] -[66.955437, "o", "Click-7.0/docs/utils.rst\r\nClick-7.0/docs/why.rst\r\nClick-7.0/docs/wincmd.rst\r\nClick-7.0/examples/\r\nClick-7.0/examples/README\r\nClick-7.0/examples/aliases/\r\nClick-7.0/examples/aliases/README\r\nClick-7.0/examples/aliases/aliases.ini\r\nClick-7.0/examples/aliases/aliases.py\r\nClick-7.0/examples/aliases/setup.py\r\nClick-7.0/examples/bashcompletion/\r\nClick-7.0/examples/bashcompletion/README\r\nClick-7.0/examples/bashcompletion/bashcompletion.py\r\n"] -[66.955495, "o", "Click-7.0/examples/bashcompletion/setup.py\r\nClick-7.0/examples/colors/\r\nClick-7.0/examples/colors/README\r\nClick-7.0/examples/colors/colors.py\r\nClick-7.0/examples/colors/setup.py\r\nClick-7.0/examples/complex/\r\nClick-7.0/examples/complex/README\r\nClick-7.0/examples/complex/complex/\r\nClick-7.0/examples/complex/complex/__init__.py\r\nClick-7.0/examples/complex/complex/cli.py\r\nClick-7.0/examples/complex/complex/commands/\r\nClick-7.0/examples/complex/complex/commands/__init__.py\r\nClick-7.0/examples/complex/complex/commands/cmd_init.py\r\nClick-7.0/examples/complex/complex/commands/cmd_status.py\r\nClick-7.0/examples/complex/setup.py\r\nClick-7.0/examples/imagepipe/\r\nClick-7.0/examples/imagepipe/.gitignore\r\nClick-7.0/examples/imagepipe/README\r\nClick-7.0/examples/imagepipe/example01.jpg\r\nClick-7.0/examples/imagepipe/example02.jpg\r\n"] -[66.955688, "o", "Click-7.0/examples/imagepipe/imagepipe.py\r\n"] -[66.955807, "o", "Click-7.0/examples/imagepipe/setup.py\r\nClick-7.0/examples/inout/\r\nClick-7.0/examples/inout/README\r\nClick-7.0/examples/inout/inout.py\r\n"] -[66.955878, "o", "Click-7.0/examples/inout/setup.py\r\n"] -[66.956992, "o", "Click-7.0/examples/naval/\r\nClick-7.0/examples/naval/README\r\nClick-7.0/examples/naval/naval.py\r\nClick-7.0/examples/naval/setup.py\r\nClick-7.0/examples/repo/\r\nClick-7.0/examples/repo/README\r\nClick-7.0/examples/repo/repo.py\r\nClick-7.0/examples/repo/setup.py\r\nClick-7.0/examples/termui/\r\nClick-7.0/examples/termui/README\r\nClick-7.0/examples/termui/setup.py\r\nClick-7.0/examples/termui/termui.py\r\nClick-7.0/examples/validation/\r\nClick-7.0/examples/validation/README\r\nClick-7.0/examples/validation/setup.py\r\nClick-7.0/examples/validation/validation.py\r\nClick-7.0/setup.cfg\r\nClick-7.0/setup.py\r\nClick-7.0/tests/\r\nClick-7.0/tests/conftest.py\r\nClick-7.0/tests/test_arguments.py\r\nClick-7.0/tests/test_bashcomplete.py\r\nClick-7.0/tests/test_basic.py\r\nClick-7.0/tests/test_chain.py\r\nClick-7.0/tests/test_commands.py\r\nClick-7.0/tests/test_compat.py\r\nClick-7.0/tests/test_context.py\r\nClick-7.0/tests/test_defaults.py\r\nClick-7.0/tests/test_formatting.py\r\nClick-7.0/tests/test_imports.py\r\nClick-7.0/tests/test_normalization.py\r\nClick-7.0/tests"] -[66.957065, "o", "/test_options.py\r\nClick-7.0/tests/test_termui.py\r\nClick-7.0/tests/test_testing.py\r\nClick-7.0/tests/test_utils.py\r\nClick-7.0/tox.ini\r\n"] -[67.095175, "o", "/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'project_urls'\r\n warnings.warn(msg)\r\n/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'\r\n warnings.warn(msg)\r\n"] -[67.102934, "o", "running install\r\n"] -[67.103372, "o", "running build\r\nrunning build_py\r\n"] -[67.103994, "o", "creating build\r\ncreating build/lib\r\n"] -[67.104093, "o", "creating build/lib/click\r\ncopying click/core.py -> build/lib/click\r\n"] -[67.104242, "o", "copying click/exceptions.py -> build/lib/click\r\n"] -[67.104403, "o", "copying click/_winconsole.py -> build/lib/click\r\n"] -[67.104511, "o", "copying click/__init__.py -> build/lib/click\r\n"] -[67.10457, "o", "copying click/formatting.py -> build/lib/click\r\n"] -[67.10466, "o", "copying click/_bashcomplete.py -> build/lib/click\r\n"] -[67.104753, "o", "copying click/_textwrap.py -> build/lib/click\r\n"] -[67.104839, "o", "copying click/types.py -> build/lib/click\r\n"] -[67.104941, "o", "copying click/_termui_impl.py -> build/lib/click\r\n"] -[67.105035, "o", "copying click/parser.py -> build/lib/click\r\n"] -[67.105129, "o", "copying click/termui.py -> build/lib/click\r\n"] -[67.105227, "o", "copying click/utils.py -> build/lib/click\r\n"] -[67.10532, "o", "copying click/_unicodefun.py -> build/lib/click\r\n"] -[67.105408, "o", "copying click/decorators.py -> build/lib/click\r\n"] -[67.105498, "o", "copying click/_compat.py -> build/lib/click\r\n"] -[67.105597, "o", "copying click/testing.py -> build/lib/click\r\n"] -[67.105694, "o", "copying click/globals.py -> build/lib/click\r\n"] -[67.105748, "o", "running egg_info\r\n"] -[67.107239, "o", "writing Click.egg-info/PKG-INFO\r\n"] -[67.107436, "o", "writing top-level names to Click.egg-info/top_level.txt\r\n"] -[67.107494, "o", "writing dependency_links to Click.egg-info/dependency_links.txt\r\n"] -[67.156192, "o", "reading manifest file 'Click.egg-info/SOURCES.txt'\r\n"] -[67.157604, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[67.158825, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[67.159526, "o", "warning: no previously-included files matching '*.py[co]' found anywhere in distribution\r\n"] -[67.159695, "o", "warning: no previously-included files matching '.DS_Store' found anywhere in distribution\r\n"] -[67.161749, "o", "writing manifest file 'Click.egg-info/SOURCES.txt'\r\n"] -[67.16253, "o", "running install_lib\r\n"] -[67.163041, "o", "creating /tmp/SBo/package-click/usr\r\ncreating /tmp/SBo/package-click/usr/lib64\r\ncreating /tmp/SBo/package-click/usr/lib64/python2.7\r\n"] -[67.163161, "o", "creating /tmp/SBo/package-click/usr/lib64/python2.7/site-packages\r\n"] -[67.163213, "o", "creating /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.163309, "o", "copying build/lib/click/core.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.163425, "o", "copying build/lib/click/exceptions.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.163532, "o", "copying build/lib/click/_winconsole.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.163611, "o", "copying build/lib/click/__init__.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.163749, "o", "copying build/lib/click/formatting.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.163832, "o", "copying build/lib/click/_bashcomplete.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.163891, "o", "copying build/lib/click/_textwrap.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.163962, "o", "copying build/lib/click/types.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.164063, "o", "copying build/lib/click/_termui_impl.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.164159, "o", "copying build/lib/click/parser.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.164253, "o", "copying build/lib/click/termui.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.164356, "o", "copying build/lib/click/utils.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.164449, "o", "copying build/lib/click/_unicodefun.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.164538, "o", "copying build/lib/click/decorators.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.164638, "o", "copying build/lib/click/_compat.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.16474, "o", "copying build/lib/click/testing.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.16483, "o", "copying build/lib/click/globals.py -> /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click\r\n"] -[67.165055, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/core.py to core.pyc\r\n"] -[67.1732, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/exceptions.py to exceptions.pyc\r\n"] -[67.174209, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/_winconsole.py to _winconsole.pyc\r\n"] -[67.175609, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/__init__.py to __init__.pyc\r\n"] -[67.17598, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/formatting.py to formatting.pyc\r\n"] -[67.177132, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/_bashcomplete.py to _bashcomplete.pyc\r\n"] -[67.178261, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/_textwrap.py to _textwrap.pyc\r\n"] -[67.178553, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/types.py to types.pyc\r\n"] -[67.18086, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/_termui_impl.py to _termui_impl.pyc\r\n"] -[67.183294, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/parser.py to parser.pyc\r\n"] -[67.185002, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/termui.py to termui.pyc\r\n"] -[67.186663, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/utils.py to utils.pyc\r\n"] -[67.187861, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/_unicodefun.py to _unicodefun.pyc\r\n"] -[67.188342, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/decorators.py to decorators.pyc\r\n"] -[67.189333, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/_compat.py to _compat.pyc\r\n"] -[67.19181, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/testing.py to testing.pyc\r\n"] -[67.193047, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/click/globals.py to globals.pyc\r\n"] -[67.193264, "o", "running install_egg_info\r\n"] -[67.193794, "o", "Copying Click.egg-info to /tmp/SBo/package-click/usr/lib64/python2.7/site-packages/Click-7.0-py2.7.egg-info\r\n"] -[67.194126, "o", "running install_scripts\r\n"] -[67.396283, "o", "running install\r\n"] -[67.397295, "o", "running build\r\nrunning build_py\r\n"] -[67.411088, "o", "running egg_info\r\n"] -[67.413597, "o", "writing Click.egg-info/PKG-INFO\r\n"] -[67.41388, "o", "writing dependency_links to Click.egg-info/dependency_links.txt\r\n"] -[67.414012, "o", "writing top-level names to Click.egg-info/top_level.txt\r\n"] -[67.465336, "o", "reading manifest file 'Click.egg-info/SOURCES.txt'\r\n"] -[67.466113, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[67.46698, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[67.467979, "o", "warning: no previously-included files matching '*.py[co]' found anywhere in distribution\r\n"] -[67.468216, "o", "warning: no previously-included files matching '.DS_Store' found anywhere in distribution\r\n"] -[67.470014, "o", "writing manifest file 'Click.egg-info/SOURCES.txt'\r\n"] -[67.471761, "o", "running install_lib\r\n"] -[67.472507, "o", "creating /tmp/SBo/package-click/usr/lib64/python3.7\r\ncreating /tmp/SBo/package-click/usr/lib64/python3.7/site-packages\r\n"] -[67.472584, "o", "creating /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.472657, "o", "copying build/lib/click/core.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.472815, "o", "copying build/lib/click/exceptions.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.472922, "o", "copying build/lib/click/_winconsole.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.473018, "o", "copying build/lib/click/__init__.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.473114, "o", "copying build/lib/click/formatting.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.473212, "o", "copying build/lib/click/_bashcomplete.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.47331, "o", "copying build/lib/click/_textwrap.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.473402, "o", "copying build/lib/click/types.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.473513, "o", "copying build/lib/click/_termui_impl.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.47366, "o", "copying build/lib/click/parser.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.473773, "o", "copying build/lib/click/termui.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.473929, "o", "copying build/lib/click/utils.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.474048, "o", "copying build/lib/click/_unicodefun.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.474204, "o", "copying build/lib/click/decorators.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.474298, "o", "copying build/lib/click/_compat.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.47444, "o", "copying build/lib/click/testing.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.474572, "o", "copying build/lib/click/globals.py -> /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click\r\n"] -[67.475094, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/core.py to core.cpython-37.pyc\r\n"] -[67.483572, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/exceptions.py to exceptions.cpython-37.pyc\r\n"] -[67.484707, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/_winconsole.py to _winconsole.cpython-37.pyc\r\n"] -[67.4862, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/__init__.py to __init__.cpython-37.pyc\r\n"] -[67.486583, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/formatting.py to formatting.cpython-37.pyc\r\n"] -[67.487763, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/_bashcomplete.py to _bashcomplete.cpython-37.pyc\r\n"] -[67.489012, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/_textwrap.py to _textwrap.cpython-37.pyc\r\n"] -[67.489383, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/types.py to types.cpython-37.pyc\r\n"] -[67.491735, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/_termui_impl.py to _termui_impl.cpython-37.pyc\r\n"] -[67.495011, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/parser.py to parser.cpython-37.pyc\r\n"] -[67.496698, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/termui.py to termui.cpython-37.pyc\r\n"] -[67.498317, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/utils.py to utils.cpython-37.pyc\r\n"] -[67.499633, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/_unicodefun.py to _unicodefun.cpython-37.pyc\r\n"] -[67.500211, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/decorators.py to decorators.cpython-37.pyc\r\n"] -[67.501342, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/_compat.py to _compat.cpython-37.pyc\r\n"] -[67.50397, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/testing.py to testing.cpython-37.pyc\r\n"] -[67.505368, "o", "byte-compiling /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/click/globals.py to globals.cpython-37.pyc\r\n"] -[67.505599, "o", "running install_egg_info\r\n"] -[67.507173, "o", "Copying Click.egg-info to /tmp/SBo/package-click/usr/lib64/python3.7/site-packages/Click-7.0-py3.7.egg-info\r\n"] -[67.50766, "o", "running install_scripts\r\n"] -[67.6367, "o", "\r\nSlackware package maker, version 3.141593.\r\n\r\nSearching for symbolic links:\r\n"] -[67.640869, "o", "\r\n"] -[67.64253, "o", "No symbolic links were found, so we won't make an installation script.\r\nYou can make your own later in ./install/doinst.sh and rebuild the\r\npackage if you like.\r\n"] -[67.644009, "o", "\r\nThis next step is optional - you can set the directories in your package\r\n"] -[67.644099, "o", "to some sane permissions. If any of the directories in your package have\r\nspecial permissions, then DO NOT reset them here!\r\n\r\nWould you like to reset all directory permissions to 755 (drwxr-xr-x) and\r\ndirectory ownerships to root.root ([y]es, [n]o)? n\r\n\r\n"] -[67.646235, "o", "Creating Slackware package: /tmp/click-7.0-x86_64-1_SBo.tgz\r\n\r\n"] -[67.649535, "o", "./\r\nusr/\r\nusr/doc/\r\nusr/doc/click-7.0/\r\nusr/doc/click-7.0/quickstart.rst\r\nusr/doc/click-7.0/testing.rst\r\nusr/doc/click-7.0/prompts.rst\r\nusr/doc/click-7.0/why.rst\r\nusr/doc/click-7.0/README.rst\r\nusr/doc/click-7.0/arguments.rst\r\nusr/doc/click-7.0/utils.rst\r\nusr/doc/click-7.0/complex.rst\r\nusr/doc/click-7.0/advanced.rst\r\nusr/doc/click-7.0/LICENSE.rst\r\nusr/doc/click-7.0/exceptions.rst\r\n"] -[67.649856, "o", "usr/doc/click-7.0/changelog.rst\r\nusr/doc/click-7.0/options.rst\r\nusr/doc/click-7.0/contrib.rst\r\nusr/doc/click-7.0/upgrading.rst\r\nusr/doc/click-7.0/license.rst\r\nusr/doc/click-7.0/click.SlackBuild\r\nusr/doc/click-7.0/wincmd.rst\r\nusr/doc/click-7.0/CHANGES.rst\r\n"] -[67.652439, "o", "usr/doc/click-7.0/parameters.rst\r\nusr/doc/click-7.0/commands.rst\r\n"] -[67.654145, "o", "usr/doc/click-7.0/documentation.rst\r\nusr/doc/click-7.0/python3.rst\r\nusr/doc/click-7.0/index.rst\r\nusr/doc/click-7.0/api.rst\r\nusr/doc/click-7.0/setuptools.rst\r\nusr/doc/click-7.0/bashcomplete.rst\r\n"] -[67.655801, "o", "usr/lib64/\r\nusr/lib64/python3.7/\r\nusr/lib64/python3.7/site-packages/\r\nusr/lib64/python3.7/site-packages/click/\r\nusr/lib64/python3.7/site-packages/click/core.py\r\n"] -[67.659015, "o", "usr/lib64/python3.7/site-packages/click/__pycache__/\r\nusr/lib64/python3.7/site-packages/click/__pycache__/exceptions.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/_bashcomplete.cpython-37.pyc\r\n"] -[67.661828, "o", "usr/lib64/python3.7/site-packages/click/__pycache__/types.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/formatting.cpython-37.pyc\r\n"] -[67.667211, "o", "usr/lib64/python3.7/site-packages/click/__pycache__/termui.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/decorators.cpython-37.pyc\r\n"] -[67.671866, "o", "usr/lib64/python3.7/site-packages/click/__pycache__/parser.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/_unicodefun.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/_compat.cpython-37.pyc\r\n"] -[67.677201, "o", "usr/lib64/python3.7/site-packages/click/__pycache__/utils.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/globals.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/_termui_impl.cpython-37.pyc\r\n"] -[67.681911, "o", "usr/lib64/python3.7/site-packages/click/__pycache__/_textwrap.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/core.cpython-37.pyc\r\n"] -[67.694364, "o", "usr/lib64/python3.7/site-packages/click/__pycache__/_winconsole.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/__pycache__/testing.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/click/exceptions.py\r\n"] -[67.700073, "o", "usr/lib64/python3.7/site-packages/click/_winconsole.py\r\nusr/lib64/python3.7/site-packages/click/__init__.py\r\nusr/lib64/python3.7/site-packages/click/formatting.py\r\nusr/lib64/python3.7/site-packages/click/_bashcomplete.py\r\n"] -[67.70455, "o", "usr/lib64/python3.7/site-packages/click/_textwrap.py\r\nusr/lib64/python3.7/site-packages/click/types.py\r\n"] -[67.710482, "o", "usr/lib64/python3.7/site-packages/click/_termui_impl.py\r\nusr/lib64/python3.7/site-packages/click/parser.py\r\n"] -[67.713443, "o", "usr/lib64/python3.7/site-packages/click/termui.py\r\nusr/lib64/python3.7/site-packages/click/utils.py\r\n"] -[67.71751, "o", "usr/lib64/python3.7/site-packages/click/_unicodefun.py\r\nusr/lib64/python3.7/site-packages/click/decorators.py\r\nusr/lib64/python3.7/site-packages/click/_compat.py\r\n"] -[67.722035, "o", "usr/lib64/python3.7/site-packages/click/testing.py\r\nusr/lib64/python3.7/site-packages/click/globals.py\r\n"] -[67.726392, "o", "usr/lib64/python3.7/site-packages/Click-7.0-py3.7.egg-info/\r\nusr/lib64/python3.7/site-packages/Click-7.0-py3.7.egg-info/top_level.txt\r\nusr/lib64/python3.7/site-packages/Click-7.0-py3.7.egg-info/dependency_links.txt\r\nusr/lib64/python3.7/site-packages/Click-7.0-py3.7.egg-info/SOURCES.txt\r\nusr/lib64/python3.7/site-packages/Click-7.0-py3.7.egg-info/PKG-INFO\r\n"] -[67.726493, "o", "usr/lib64/python2.7/\r\nusr/lib64/python2.7/site-packages/\r\nusr/lib64/python2.7/site-packages/click/\r\nusr/lib64/python2.7/site-packages/click/core.py\r\n"] -[67.735185, "o", "usr/lib64/python2.7/site-packages/click/_unicodefun.pyc\r\n"] -[67.73975, "o", "usr/lib64/python2.7/site-packages/click/exceptions.py\r\nusr/lib64/python2.7/site-packages/click/utils.pyc\r\nusr/lib64/python2.7/site-packages/click/testing.pyc\r\n"] -[67.744712, "o", "usr/lib64/python2.7/site-packages/click/_winconsole.py\r\nusr/lib64/python2.7/site-packages/click/_compat.pyc\r\n"] -[67.749393, "o", "usr/lib64/python2.7/site-packages/click/__init__.py\r\nusr/lib64/python2.7/site-packages/click/globals.pyc\r\nusr/lib64/python2.7/site-packages/click/exceptions.pyc\r\nusr/lib64/python2.7/site-packages/click/formatting.py\r\n"] -[67.75428, "o", "usr/lib64/python2.7/site-packages/click/_bashcomplete.py\r\nusr/lib64/python2.7/site-packages/click/_termui_impl.pyc\r\n"] -[67.759481, "o", "usr/lib64/python2.7/site-packages/click/_textwrap.py\r\nusr/lib64/python2.7/site-packages/click/_winconsole.pyc\r\nusr/lib64/python2.7/site-packages/click/types.py\r\n"] -[67.765741, "o", "usr/lib64/python2.7/site-packages/click/_termui_impl.py\r\nusr/lib64/python2.7/site-packages/click/parser.py\r\n"] -[67.770159, "o", "usr/lib64/python2.7/site-packages/click/parser.pyc\r\nusr/lib64/python2.7/site-packages/click/decorators.pyc\r\n"] -[67.776147, "o", "usr/lib64/python2.7/site-packages/click/termui.py\r\nusr/lib64/python2.7/site-packages/click/utils.py\r\n"] -[67.780493, "o", "usr/lib64/python2.7/site-packages/click/_unicodefun.py\r\nusr/lib64/python2.7/site-packages/click/formatting.pyc\r\nusr/lib64/python2.7/site-packages/click/_bashcomplete.pyc\r\n"] -[67.785625, "o", "usr/lib64/python2.7/site-packages/click/termui.pyc\r\n"] -[67.7893, "o", "usr/lib64/python2.7/site-packages/click/_textwrap.pyc\r\nusr/lib64/python2.7/site-packages/click/decorators.py\r\nusr/lib64/python2.7/site-packages/click/core.pyc\r\n"] -[67.799537, "o", "usr/lib64/python2.7/site-packages/click/types.pyc\r\n"] -[67.803801, "o", "usr/lib64/python2.7/site-packages/click/_compat.py\r\n"] -[67.8085, "o", "usr/lib64/python2.7/site-packages/click/testing.py\r\nusr/lib64/python2.7/site-packages/click/globals.py\r\nusr/lib64/python2.7/site-packages/click/__init__.pyc\r\nusr/lib64/python2.7/site-packages/Click-7.0-py2.7.egg-info/\r\nusr/lib64/python2.7/site-packages/Click-7.0-py2.7.egg-info/top_level.txt\r\nusr/lib64/python2.7/site-packages/Click-7.0-py2.7.egg-info/dependency_links.txt\r\n"] -[67.808555, "o", "usr/lib64/python2.7/site-packages/Click-7.0-py2.7.egg-info/SOURCES.txt\r\nusr/lib64/python2.7/site-packages/Click-7.0-py2.7.egg-info/PKG-INFO\r\n"] -[67.814238, "o", "install/\r\ninstall/slack-desc\r\n"] -[67.829792, "o", "\r\nSlackware package /tmp/click-7.0-x86_64-1_SBo.tgz created.\r\n\r\n"] -[67.83148, "o", "Total build time for the package click : 0.97 Sec\r\n\r\n"] -[67.842713, "o", "[ \u001b[32mInstalling\u001b[0m ] --> click-7.0\r\n"] -[67.855678, "o", "\r\n+==============================================================================\r\n| Installing new package /tmp/click-7.0-x86_64-1_SBo.tgz\r\n+==============================================================================\r\n\r\n"] -[67.873421, "o", "Verifying package click-7.0-x86_64-1_SBo.tgz.\r\n"] -[67.902245, "o", "Installing package click-7.0-x86_64-1_SBo.tgz:\r\nPACKAGE DESCRIPTION:\r\n"] -[67.902909, "o", "# click (Python composable command line utility)\r\n#\r\n# Click is a Python package for creating beautiful command line\r\n# interfaces in a composable way with as little code as necessary.\r\n# It's the \"Command Line Interface Creation Kit\". It's highly\r\n# configurable but comes with sensible defaults out of the box.\r\n#\r\n# Homepage: https://github.com/mitsuhiko/click\r\n#\r\n"] -[68.011828, "o", "Package click-7.0-x86_64-1_SBo.tgz installed.\r\n\r\n"] -[68.012028, "o", "\r\n"] -[68.012335, "o", "Completed!\r\n\r\n"] -[68.096885, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> Flask.tar.gz\r\n\r\n"] -[68.102726, "o", "--2019-12-03 19:17:31-- http://slackbuilds.org/slackbuilds/14.2/python/Flask.tar.gz\r\nResolving slackbuilds.org... "] -[68.639128, "o", "208.94.237.149\r\nConnecting to slackbuilds.org|208.94.237.149|:80... "] -[68.839555, "o", "connected.\r\n"] -[68.839732, "o", "HTTP request sent, awaiting response... "] -[69.046737, "o", "200 OK\r\nLength: 2268 (2.2K) [application/x-gzip]\r\n"] -[69.047251, "o", "Saving to: ‘/tmp/slpkg/build/Flask.tar.gz’\r\n\r\n"] -[69.048139, "o", "\rFlask.tar.gz 0%[ ] 0 --.-KB/s "] -[69.048507, "o", "\rFlask.tar.gz 100%[===================>] 2.21K --.-KB/s in 0s \r\n\r\n2019-12-03 19:17:32 (102 MB/s) - ‘/tmp/slpkg/build/Flask.tar.gz’ saved [2268/2268]\r\n\r\n"] -[69.050029, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> Flask-1.1.1.tar.gz\r\n\r\n"] -[69.06931, "o", "--2019-12-03 19:17:32-- https://files.pythonhosted.org/packages/2e/80/3726a729de758513fd3dbc64e93098eb009c49305a97c6751de55b20b694/Flask-1.1.1.tar.gz\r\n"] -[69.075293, "o", "Resolving files.pythonhosted.org... "] -[69.176131, "o", "2a04:4e42:1b::319, 151.101.13.63\r\nConnecting to files.pythonhosted.org|2a04:4e42:1b::319|:443... "] -[69.239787, "o", "connected.\r\n"] -[69.342994, "o", "HTTP request sent, awaiting response... "] -[69.397102, "o", "416 Range Not Satisfiable\r\n\r\n The file is already fully retrieved; nothing to do.\r\n\r\n"] -[69.498587, "o", "\r\n"] -[69.499823, "o", "+==============================================================================\r\n"] -[69.500032, "o", "| MD5SUM check for Flask-1.1.1.tar.gz [ \u001b[32mPASSED\u001b[0m ]\r\n+==============================================================================\r\n\r\n"] -[69.530872, "o", "Flask-1.1.1/\r\nFlask-1.1.1/CHANGES.rst\r\n"] -[69.530916, "o", "Flask-1.1.1/CONTRIBUTING.rst\r\nFlask-1.1.1/LICENSE.rst\r\nFlask-1.1.1/MANIFEST.in\r\nFlask-1.1.1/PKG-INFO\r\n"] -[69.531076, "o", "Flask-1.1.1/README.rst\r\nFlask-1.1.1/artwork/\r\n"] -[69.531163, "o", "Flask-1.1.1/artwork/LICENSE.rst\r\nFlask-1.1.1/artwork/logo-full.svg\r\n"] -[69.53157, "o", "Flask-1.1.1/artwork/logo-lineart.svg\r\nFlask-1.1.1/docs/\r\nFlask-1.1.1/docs/Makefile\r\nFlask-1.1.1/docs/_static/\r\n"] -[69.531662, "o", "Flask-1.1.1/docs/_static/debugger.png\r\n"] -[69.533473, "o", "Flask-1.1.1/docs/_static/flask-icon.png\r\nFlask-1.1.1/docs/_static/flask-logo.png\r\n"] -[69.533796, "o", "Flask-1.1.1/docs/_static/no.png\r\nFlask-1.1.1/docs/_static/pycharm-runconfig.png\r\nFlask-1.1.1/docs/_static/yes.png\r\n"] -[69.533823, "o", "Flask-1.1.1/docs/advanced_foreword.rst\r\n"] -[69.533837, "o", "Flask-1.1.1/docs/api.rst\r\n"] -[69.534025, "o", "Flask-1.1.1/docs/appcontext.rst\r\nFlask-1.1.1/docs/becomingbig.rst\r\n"] -[69.534203, "o", "Flask-1.1.1/docs/blueprints.rst\r\n"] -[69.534304, "o", "Flask-1.1.1/docs/changelog.rst\r\nFlask-1.1.1/docs/cli.rst\r\nFlask-1.1.1/docs/conf.py\r\nFlask-1.1.1/docs/config.rst\r\n"] -[69.534441, "o", "Flask-1.1.1/docs/contributing.rst\r\nFlask-1.1.1/docs/deploying/\r\nFlask-1.1.1/docs/deploying/cgi.rst\r\n"] -[69.534495, "o", "Flask-1.1.1/docs/deploying/fastcgi.rst\r\n"] -[69.534596, "o", "Flask-1.1.1/docs/deploying/index.rst\r\n"] -[69.534657, "o", "Flask-1.1.1/docs/deploying/mod_wsgi.rst\r\nFlask-1.1.1/docs/deploying/uwsgi.rst\r\n"] -[69.534713, "o", "Flask-1.1.1/docs/deploying/wsgi-standalone.rst\r\nFlask-1.1.1/docs/design.rst\r\n"] -[69.53483, "o", "Flask-1.1.1/docs/errorhandling.rst\r\n"] -[69.534878, "o", "Flask-1.1.1/docs/extensiondev.rst\r\nFlask-1.1.1/docs/extensions.rst\r\n"] -[69.534895, "o", "Flask-1.1.1/docs/foreword.rst\r\n"] -[69.535063, "o", "Flask-1.1.1/docs/htmlfaq.rst\r\n"] -[69.535135, "o", "Flask-1.1.1/docs/index.rst\r\nFlask-1.1.1/docs/installation.rst\r\nFlask-1.1.1/docs/license.rst\r\n"] -[69.535191, "o", "Flask-1.1.1/docs/logging.rst\r\nFlask-1.1.1/docs/make.bat\r\n"] -[69.535263, "o", "Flask-1.1.1/docs/patterns/\r\n"] -[69.535307, "o", "Flask-1.1.1/docs/patterns/apierrors.rst\r\nFlask-1.1.1/docs/patterns/appdispatch.rst\r\n"] -[69.535371, "o", "Flask-1.1.1/docs/patterns/appfactories.rst\r\nFlask-1.1.1/docs/patterns/caching.rst\r\n"] -[69.53542, "o", "Flask-1.1.1/docs/patterns/celery.rst\r\nFlask-1.1.1/docs/patterns/deferredcallbacks.rst\r\n"] -[69.535467, "o", "Flask-1.1.1/docs/patterns/distribute.rst\r\nFlask-1.1.1/docs/patterns/errorpages.rst\r\n"] -[69.535515, "o", "Flask-1.1.1/docs/patterns/fabric.rst\r\n"] -[69.535536, "o", "Flask-1.1.1/docs/patterns/favicon.rst\r\n"] -[69.535587, "o", "Flask-1.1.1/docs/patterns/fileuploads.rst\r\nFlask-1.1.1/docs/patterns/flashing.rst\r\n"] -[69.535644, "o", "Flask-1.1.1/docs/patterns/index.rst\r\n"] -[69.535682, "o", "Flask-1.1.1/docs/patterns/jquery.rst\r\n"] -[69.535745, "o", "Flask-1.1.1/docs/patterns/lazyloading.rst\r\n"] -[69.535784, "o", "Flask-1.1.1/docs/patterns/methodoverrides.rst\r\n"] -[69.535819, "o", "Flask-1.1.1/docs/patterns/mongoengine.rst\r\n"] -[69.535853, "o", "Flask-1.1.1/docs/patterns/mongokit.rst\r\n"] -[69.535886, "o", "Flask-1.1.1/docs/patterns/packages.rst\r\n"] -[69.535919, "o", "Flask-1.1.1/docs/patterns/requestchecksum.rst\r\n"] -[69.535951, "o", "Flask-1.1.1/docs/patterns/singlepageapplications.rst\r\n"] -[69.535988, "o", "Flask-1.1.1/docs/patterns/sqlalchemy.rst\r\n"] -[69.536021, "o", "Flask-1.1.1/docs/patterns/sqlite3.rst\r\n"] -[69.536062, "o", "Flask-1.1.1/docs/patterns/streaming.rst\r\n"] -[69.536097, "o", "Flask-1.1.1/docs/patterns/subclassing.rst\r\n"] -[69.536131, "o", "Flask-1.1.1/docs/patterns/templateinheritance.rst\r\n"] -[69.536164, "o", "Flask-1.1.1/docs/patterns/urlprocessors.rst\r\n"] -[69.536197, "o", "Flask-1.1.1/docs/patterns/viewdecorators.rst\r\n"] -[69.53623, "o", "Flask-1.1.1/docs/patterns/wtforms.rst\r\n"] -[69.53627, "o", "Flask-1.1.1/docs/quickstart.rst\r\n"] -[69.536473, "o", "Flask-1.1.1/docs/reqcontext.rst\r\n"] -[69.536505, "o", "Flask-1.1.1/docs/requirements.txt\r\n"] -[69.53655, "o", "Flask-1.1.1/docs/security.rst\r\nFlask-1.1.1/docs/server.rst\r\n"] -[69.536587, "o", "Flask-1.1.1/docs/shell.rst\r\nFlask-1.1.1/docs/signals.rst\r\n"] -[69.536632, "o", "Flask-1.1.1/docs/styleguide.rst\r\n"] -[69.536728, "o", "Flask-1.1.1/docs/templating.rst\r\n"] -[69.536771, "o", "Flask-1.1.1/docs/testing.rst\r\nFlask-1.1.1/docs/tutorial/\r\n"] -[69.536978, "o", "Flask-1.1.1/docs/tutorial/blog.rst\r\n"] -[69.537028, "o", "Flask-1.1.1/docs/tutorial/database.rst\r\nFlask-1.1.1/docs/tutorial/deploy.rst\r\n"] -[69.537078, "o", "Flask-1.1.1/docs/tutorial/factory.rst\r\n"] -[69.537284, "o", "Flask-1.1.1/docs/tutorial/flaskr_edit.png\r\n"] -[69.537336, "o", "Flask-1.1.1/docs/tutorial/flaskr_index.png\r\n"] -[69.537441, "o", "Flask-1.1.1/docs/tutorial/flaskr_login.png\r\n"] -[69.537514, "o", "Flask-1.1.1/docs/tutorial/index.rst\r\n"] -[69.537576, "o", "Flask-1.1.1/docs/tutorial/install.rst\r\nFlask-1.1.1/docs/tutorial/layout.rst\r\nFlask-1.1.1/docs/tutorial/next.rst\r\n"] -[69.537597, "o", "Flask-1.1.1/docs/tutorial/static.rst\r\n"] -[69.537668, "o", "Flask-1.1.1/docs/tutorial/templates.rst\r\n"] -[69.537752, "o", "Flask-1.1.1/docs/tutorial/tests.rst\r\n"] -[69.537804, "o", "Flask-1.1.1/docs/tutorial/views.rst\r\n"] -[69.537863, "o", "Flask-1.1.1/docs/unicode.rst\r\n"] -[69.537909, "o", "Flask-1.1.1/docs/upgrading.rst\r\n"] -[69.538002, "o", "Flask-1.1.1/docs/views.rst\r\n"] -[69.538046, "o", "Flask-1.1.1/examples/\r\n"] -[69.538095, "o", "Flask-1.1.1/examples/javascript/\r\n"] -[69.538142, "o", "Flask-1.1.1/examples/javascript/.gitignore\r\n"] -[69.538158, "o", "Flask-1.1.1/examples/javascript/LICENSE\r\n"] -[69.538249, "o", "Flask-1.1.1/examples/javascript/MANIFEST.in\r\nFlask-1.1.1/examples/javascript/README.rst\r\n"] -[69.538305, "o", "Flask-1.1.1/examples/javascript/js_example/\r\nFlask-1.1.1/examples/javascript/js_example/__init__.py\r\nFlask-1.1.1/examples/javascript/js_example/templates/\r\n"] -[69.538355, "o", "Flask-1.1.1/examples/javascript/js_example/templates/base.html\r\nFlask-1.1.1/examples/javascript/js_example/templates/fetch.html\r\n"] -[69.538402, "o", "Flask-1.1.1/examples/javascript/js_example/templates/jquery.html\r\nFlask-1.1.1/examples/javascript/js_example/templates/plain.html\r\nFlask-1.1.1/examples/javascript/js_example/views.py\r\n"] -[69.538445, "o", "Flask-1.1.1/examples/javascript/setup.cfg\r\n"] -[69.538488, "o", "Flask-1.1.1/examples/javascript/setup.py\r\nFlask-1.1.1/examples/javascript/tests/\r\nFlask-1.1.1/examples/javascript/tests/conftest.py\r\n"] -[69.538531, "o", "Flask-1.1.1/examples/javascript/tests/test_js_example.py\r\nFlask-1.1.1/examples/tutorial/\r\n"] -[69.538571, "o", "Flask-1.1.1/examples/tutorial/.gitignore\r\n"] -[69.538612, "o", "Flask-1.1.1/examples/tutorial/LICENSE\r\nFlask-1.1.1/examples/tutorial/MANIFEST.in\r\n"] -[69.538654, "o", "Flask-1.1.1/examples/tutorial/README.rst\r\nFlask-1.1.1/examples/tutorial/flaskr/\r\n"] -[69.538692, "o", "Flask-1.1.1/examples/tutorial/flaskr/__init__.py\r\nFlask-1.1.1/examples/tutorial/flaskr/auth.py\r\n"] -[69.538731, "o", "Flask-1.1.1/examples/tutorial/flaskr/blog.py\r\nFlask-1.1.1/examples/tutorial/flaskr/db.py\r\n"] -[69.53877, "o", "Flask-1.1.1/examples/tutorial/flaskr/schema.sql\r\nFlask-1.1.1/examples/tutorial/flaskr/static/\r\n"] -[69.53881, "o", "Flask-1.1.1/examples/tutorial/flaskr/static/style.css\r\n"] -[69.538848, "o", "Flask-1.1.1/examples/tutorial/flaskr/templates/\r\nFlask-1.1.1/examples/tutorial/flaskr/templates/auth/\r\n"] -[69.538886, "o", "Flask-1.1.1/examples/tutorial/flaskr/templates/auth/login.html\r\nFlask-1.1.1/examples/tutorial/flaskr/templates/auth/register.html\r\n"] -[69.538922, "o", "Flask-1.1.1/examples/tutorial/flaskr/templates/base.html\r\nFlask-1.1.1/examples/tutorial/flaskr/templates/blog/\r\n"] -[69.538958, "o", "Flask-1.1.1/examples/tutorial/flaskr/templates/blog/create.html\r\nFlask-1.1.1/examples/tutorial/flaskr/templates/blog/index.html\r\n"] -[69.538993, "o", "Flask-1.1.1/examples/tutorial/flaskr/templates/blog/update.html\r\nFlask-1.1.1/examples/tutorial/setup.cfg\r\n"] -[69.539029, "o", "Flask-1.1.1/examples/tutorial/setup.py\r\nFlask-1.1.1/examples/tutorial/tests/\r\n"] -[69.539065, "o", "Flask-1.1.1/examples/tutorial/tests/conftest.py\r\nFlask-1.1.1/examples/tutorial/tests/data.sql\r\n"] -[69.539102, "o", "Flask-1.1.1/examples/tutorial/tests/test_auth.py\r\nFlask-1.1.1/examples/tutorial/tests/test_blog.py\r\n"] -[69.539137, "o", "Flask-1.1.1/examples/tutorial/tests/test_db.py\r\nFlask-1.1.1/examples/tutorial/tests/test_factory.py\r\n"] -[69.539172, "o", "Flask-1.1.1/setup.cfg\r\n"] -[69.539208, "o", "Flask-1.1.1/setup.py\r\nFlask-1.1.1/src/\r\n"] -[69.539244, "o", "Flask-1.1.1/src/Flask.egg-info/\r\nFlask-1.1.1/src/Flask.egg-info/PKG-INFO\r\n"] -[69.53928, "o", "Flask-1.1.1/src/Flask.egg-info/SOURCES.txt\r\nFlask-1.1.1/src/Flask.egg-info/dependency_links.txt\r\n"] -[69.539316, "o", "Flask-1.1.1/src/Flask.egg-info/entry_points.txt\r\nFlask-1.1.1/src/Flask.egg-info/requires.txt\r\n"] -[69.539352, "o", "Flask-1.1.1/src/Flask.egg-info/top_level.txt\r\nFlask-1.1.1/src/flask/\r\n"] -[69.539387, "o", "Flask-1.1.1/src/flask/__init__.py\r\nFlask-1.1.1/src/flask/__main__.py\r\n"] -[69.539423, "o", "Flask-1.1.1/src/flask/_compat.py\r\nFlask-1.1.1/src/flask/app.py\r\n"] -[69.54033, "o", "Flask-1.1.1/src/flask/blueprints.py\r\nFlask-1.1.1/src/flask/cli.py\r\nFlask-1.1.1/src/flask/config.py\r\nFlask-1.1.1/src/flask/ctx.py\r\nFlask-1.1.1/src/flask/debughelpers.py\r\nFlask-1.1.1/src/flask/globals.py\r\n"] -[69.540394, "o", "Flask-1.1.1/src/flask/helpers.py\r\n"] -[69.540746, "o", "Flask-1.1.1/src/flask/json/\r\n"] -[69.540827, "o", "Flask-1.1.1/src/flask/json/__init__.py\r\nFlask-1.1.1/src/flask/json/tag.py\r\nFlask-1.1.1/src/flask/logging.py\r\n"] -[69.540905, "o", "Flask-1.1.1/src/flask/sessions.py\r\nFlask-1.1.1/src/flask/signals.py\r\nFlask-1.1.1/src/flask/templating.py\r\n"] -[69.540963, "o", "Flask-1.1.1/src/flask/testing.py\r\n"] -[69.541054, "o", "Flask-1.1.1/src/flask/views.py\r\nFlask-1.1.1/src/flask/wrappers.py\r\n"] -[69.54111, "o", "Flask-1.1.1/tests/\r\nFlask-1.1.1/tests/conftest.py\r\n"] -[69.541166, "o", "Flask-1.1.1/tests/static/\r\nFlask-1.1.1/tests/static/config.json\r\nFlask-1.1.1/tests/static/index.html\r\n"] -[69.541213, "o", "Flask-1.1.1/tests/templates/\r\nFlask-1.1.1/tests/templates/_macro.html\r\n"] -[69.541263, "o", "Flask-1.1.1/tests/templates/context_template.html\r\nFlask-1.1.1/tests/templates/escaping_template.html\r\n"] -[69.541304, "o", "Flask-1.1.1/tests/templates/mail.txt\r\nFlask-1.1.1/tests/templates/nested/\r\n"] -[69.541342, "o", "Flask-1.1.1/tests/templates/nested/nested.txt\r\nFlask-1.1.1/tests/templates/non_escaping_template.txt\r\n"] -[69.54138, "o", "Flask-1.1.1/tests/templates/simple_template.html\r\n"] -[69.541418, "o", "Flask-1.1.1/tests/templates/template_filter.html\r\n"] -[69.541455, "o", "Flask-1.1.1/tests/templates/template_test.html\r\nFlask-1.1.1/tests/test_appctx.py\r\n"] -[69.54149, "o", "Flask-1.1.1/tests/test_apps/\r\n"] -[69.541528, "o", "Flask-1.1.1/tests/test_apps/.env\r\nFlask-1.1.1/tests/test_apps/.flaskenv\r\n"] -[69.541567, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/\r\nFlask-1.1.1/tests/test_apps/blueprintapp/__init__.py\r\n"] -[69.541609, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/\r\n"] -[69.541651, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/__init__.py\r\nFlask-1.1.1/tests/test_apps/blueprintapp/apps/admin/\r\nFlask-1.1.1/tests/test_apps/blueprintapp/apps/admin/__init__.py\r\n"] -[69.541688, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/admin/static/\r\n"] -[69.541723, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/admin/static/css/\r\nFlask-1.1.1/tests/test_apps/blueprintapp/apps/admin/static/css/test.css\r\n"] -[69.541759, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/admin/static/test.txt\r\n"] -[69.541796, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/admin/templates/\r\nFlask-1.1.1/tests/test_apps/blueprintapp/apps/admin/templates/admin/\r\n"] -[69.541833, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/admin/templates/admin/index.html\r\n"] -[69.54187, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/frontend/\r\n"] -[69.541907, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/frontend/__init__.py\r\nFlask-1.1.1/tests/test_apps/blueprintapp/apps/frontend/templates/\r\n"] -[69.541942, "o", "Flask-1.1.1/tests/test_apps/blueprintapp/apps/frontend/templates/frontend/\r\nFlask-1.1.1/tests/test_apps/blueprintapp/apps/frontend/templates/frontend/index.html\r\n"] -[69.541978, "o", "Flask-1.1.1/tests/test_apps/cliapp/\r\n"] -[69.542022, "o", "Flask-1.1.1/tests/test_apps/cliapp/__init__.py\r\n"] -[69.542059, "o", "Flask-1.1.1/tests/test_apps/cliapp/app.py\r\n"] -[69.542096, "o", "Flask-1.1.1/tests/test_apps/cliapp/factory.py\r\nFlask-1.1.1/tests/test_apps/cliapp/importerrorapp.py\r\n"] -[69.542133, "o", "Flask-1.1.1/tests/test_apps/cliapp/inner1/\r\nFlask-1.1.1/tests/test_apps/cliapp/inner1/__init__.py\r\n"] -[69.54217, "o", "Flask-1.1.1/tests/test_apps/cliapp/inner1/inner2/\r\n"] -[69.542205, "o", "Flask-1.1.1/tests/test_apps/cliapp/inner1/inner2/__init__.py\r\nFlask-1.1.1/tests/test_apps/cliapp/inner1/inner2/flask.py\r\n"] -[69.542241, "o", "Flask-1.1.1/tests/test_apps/cliapp/message.txt\r\n"] -[69.542276, "o", "Flask-1.1.1/tests/test_apps/cliapp/multiapp.py\r\n"] -[69.542311, "o", "Flask-1.1.1/tests/test_apps/helloworld/\r\nFlask-1.1.1/tests/test_apps/helloworld/hello.py\r\n"] -[69.542348, "o", "Flask-1.1.1/tests/test_apps/helloworld/wsgi.py\r\nFlask-1.1.1/tests/test_apps/subdomaintestmodule/\r\n"] -[69.542384, "o", "Flask-1.1.1/tests/test_apps/subdomaintestmodule/__init__.py\r\n"] -[69.54242, "o", "Flask-1.1.1/tests/test_apps/subdomaintestmodule/static/\r\nFlask-1.1.1/tests/test_apps/subdomaintestmodule/static/hello.txt\r\n"] -[69.542456, "o", "Flask-1.1.1/tests/test_basic.py\r\n"] -[69.542536, "o", "Flask-1.1.1/tests/test_blueprints.py\r\n"] -[69.542577, "o", "Flask-1.1.1/tests/test_cli.py\r\n"] -[69.542696, "o", "Flask-1.1.1/tests/test_config.py\r\n"] -[69.542734, "o", "Flask-1.1.1/tests/test_converters.py\r\n"] -[69.542771, "o", "Flask-1.1.1/tests/test_deprecations.py\r\nFlask-1.1.1/tests/test_helpers.py\r\n"] -[69.542878, "o", "Flask-1.1.1/tests/test_instance_config.py\r\n"] -[69.542915, "o", "Flask-1.1.1/tests/test_json_tag.py\r\n"] -[69.542952, "o", "Flask-1.1.1/tests/test_logging.py\r\nFlask-1.1.1/tests/test_meta.py\r\n"] -[69.542988, "o", "Flask-1.1.1/tests/test_regression.py\r\n"] -[69.543024, "o", "Flask-1.1.1/tests/test_reqctx.py\r\n"] -[69.543059, "o", "Flask-1.1.1/tests/test_signals.py\r\nFlask-1.1.1/tests/test_subclassing.py\r\n"] -[69.543094, "o", "Flask-1.1.1/tests/test_templating.py\r\n"] -[69.543129, "o", "Flask-1.1.1/tests/test_testing.py\r\n"] -[69.543166, "o", "Flask-1.1.1/tests/test_user_error_handler.py\r\n"] -[69.543201, "o", "Flask-1.1.1/tests/test_views.py\r\n"] -[69.543236, "o", "Flask-1.1.1/tox.ini\r\n"] -[69.686317, "o", "/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'project_urls'\r\n warnings.warn(msg)\r\n/usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'\r\n warnings.warn(msg)\r\n"] -[69.698314, "o", "running install\r\n"] -[69.698737, "o", "running build\r\nrunning build_py\r\n"] -[69.699353, "o", "creating build\r\ncreating build/lib\r\ncreating build/lib/flask\r\n"] -[69.699418, "o", "copying src/flask/__main__.py -> build/lib/flask\r\n"] -[69.699476, "o", "copying src/flask/sessions.py -> build/lib/flask\r\n"] -[69.699528, "o", "copying src/flask/helpers.py -> build/lib/flask\r\n"] -[69.699636, "o", "copying src/flask/__init__.py -> build/lib/flask\r\n"] -[69.699702, "o", "copying src/flask/ctx.py -> build/lib/flask\r\n"] -[69.699776, "o", "copying src/flask/logging.py -> build/lib/flask\r\n"] -[69.69984, "o", "copying src/flask/wrappers.py -> build/lib/flask\r\n"] -[69.699909, "o", "copying src/flask/debughelpers.py -> build/lib/flask\r\n"] -[69.699976, "o", "copying src/flask/views.py -> build/lib/flask\r\n"] -[69.700047, "o", "copying src/flask/blueprints.py -> build/lib/flask\r\n"] -[69.700123, "o", "copying src/flask/config.py -> build/lib/flask\r\n"] -[69.700193, "o", "copying src/flask/app.py -> build/lib/flask\r\n"] -[69.70032, "o", "copying src/flask/cli.py -> build/lib/flask\r\n"] -[69.700402, "o", "copying src/flask/templating.py -> build/lib/flask\r\n"] -[69.700469, "o", "copying src/flask/_compat.py -> build/lib/flask\r\n"] -[69.700535, "o", "copying src/flask/testing.py -> build/lib/flask\r\n"] -[69.700608, "o", "copying src/flask/signals.py -> build/lib/flask\r\n"] -[69.700675, "o", "copying src/flask/globals.py -> build/lib/flask\r\n"] -[69.700807, "o", "creating build/lib/flask/json\r\n"] -[69.700847, "o", "copying src/flask/json/__init__.py -> build/lib/flask/json\r\n"] -[69.700922, "o", "copying src/flask/json/tag.py -> build/lib/flask/json\r\n"] -[69.700979, "o", "running egg_info\r\n"] -[69.702663, "o", "writing requirements to src/Flask.egg-info/requires.txt\r\n"] -[69.702739, "o", "writing src/Flask.egg-info/PKG-INFO\r\n"] -[69.702895, "o", "writing top-level names to src/Flask.egg-info/top_level.txt\r\n"] -[69.70294, "o", "writing dependency_links to src/Flask.egg-info/dependency_links.txt\r\n"] -[69.703279, "o", "writing entry points to src/Flask.egg-info/entry_points.txt\r\n"] -[69.754762, "o", "reading manifest file 'src/Flask.egg-info/SOURCES.txt'\r\n"] -[69.75689, "o", "reading manifest template 'MANIFEST.in'\r\n"] -[69.758246, "o", "no previously-included directories found matching 'docs/_build'\r\n"] -[69.762113, "o", "writing manifest file 'src/Flask.egg-info/SOURCES.txt'\r\n"] -[69.763494, "o", "running install_lib\r\n"] -[69.763949, "o", "creating /tmp/SBo/package-Flask/usr\r\ncreating /tmp/SBo/package-Flask/usr/lib64\r\ncreating /tmp/SBo/package-Flask/usr/lib64/python2.7\r\n"] -[69.764066, "o", "creating /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages\r\ncreating /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\ncopying build/lib/flask/__main__.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764189, "o", "creating /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/json\r\ncopying build/lib/flask/json/__init__.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/json\r\n"] -[69.764306, "o", "copying build/lib/flask/json/tag.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/json\r\n"] -[69.764418, "o", "copying build/lib/flask/sessions.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\ncopying build/lib/flask/helpers.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764502, "o", "copying build/lib/flask/__init__.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764564, "o", "copying build/lib/flask/ctx.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764648, "o", "copying build/lib/flask/logging.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764712, "o", "copying build/lib/flask/wrappers.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764779, "o", "copying build/lib/flask/debughelpers.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764845, "o", "copying build/lib/flask/views.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764911, "o", "copying build/lib/flask/blueprints.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.764989, "o", "copying build/lib/flask/config.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.765059, "o", "copying build/lib/flask/app.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.765186, "o", "copying build/lib/flask/cli.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.765274, "o", "copying build/lib/flask/templating.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.765341, "o", "copying build/lib/flask/_compat.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.765406, "o", "copying build/lib/flask/testing.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.765474, "o", "copying build/lib/flask/signals.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.765537, "o", "copying build/lib/flask/globals.py -> /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask\r\n"] -[69.765756, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/__main__.py to __main__.pyc\r\n"] -[69.766997, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/json/__init__.py to __init__.pyc\r\n"] -[69.768308, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/json/tag.py to tag.pyc\r\n"] -[69.769301, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/sessions.py to sessions.pyc\r\n"] -[69.770433, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/helpers.py to helpers.pyc\r\n"] -[69.773423, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/__init__.py to __init__.pyc\r\n"] -[69.773572, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/ctx.py to ctx.pyc\r\n"] -[69.774875, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/logging.py to logging.pyc\r\n"] -[69.775283, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/wrappers.py to wrappers.pyc\r\n"] -[69.77572, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/debughelpers.py to debughelpers.pyc\r\n"] -[69.776434, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/views.py to views.pyc\r\n"] -[69.776872, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/blueprints.py to blueprints.pyc\r\n"] -[69.778273, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/config.py to config.pyc\r\n"] -[69.77895, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/app.py to app.pyc\r\n"] -[69.784518, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/cli.py to cli.pyc\r\n"] -[69.787513, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/templating.py to templating.pyc\r\n"] -[69.788097, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/_compat.py to _compat.pyc\r\n"] -[69.788615, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/testing.py to testing.pyc\r\n"] -[69.789469, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/signals.py to signals.pyc\r\n"] -[69.789698, "o", "byte-compiling /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/flask/globals.py to globals.pyc\r\n"] -[69.789952, "o", "running install_egg_info\r\n"] -[69.790377, "o", "Copying src/Flask.egg-info to /tmp/SBo/package-Flask/usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info\r\n"] -[69.790785, "o", "running install_scripts\r\n"] -[69.80218, "o", "Installing flask script to /tmp/SBo/package-Flask/usr/bin\r\n"] -[69.883126, "o", "\r\nSlackware package maker, version 3.141593.\r\n\r\nSearching for symbolic links:\r\n"] -[69.887131, "o", "\r\n"] -[69.888715, "o", "No symbolic links were found, so we won't make an installation script.\r\nYou can make your own later in ./install/doinst.sh and rebuild the\r\npackage if you like.\r\n"] -[69.890279, "o", "\r\nThis next step is optional - you can set the directories in your package\r\nto some sane permissions. If any of the directories in your package have\r\nspecial permissions, then DO NOT reset them here!\r\n\r\nWould you like to reset all directory permissions to 755 (drwxr-xr-x) and\r\ndirectory ownerships to root.root ([y]es, [n]o)? "] -[69.890307, "o", "n\r\n\r\n"] -[69.892523, "o", "Creating Slackware package: /tmp/Flask-1.1.1-x86_64-1_SBo.tgz\r\n\r\n"] -[69.895704, "o", "./\r\nusr/\r\n"] -[69.895811, "o", "usr/doc/\r\nusr/doc/Flask-1.1.1/\r\nusr/doc/Flask-1.1.1/errorhandling.rst\r\nusr/doc/Flask-1.1.1/quickstart.rst\r\nusr/doc/Flask-1.1.1/testing.rst\r\nusr/doc/Flask-1.1.1/views.rst\r\nusr/doc/Flask-1.1.1/advanced_foreword.rst\r\n"] -[69.895882, "o", "usr/doc/Flask-1.1.1/templating.rst\r\nusr/doc/Flask-1.1.1/unicode.rst\r\nusr/doc/Flask-1.1.1/security.rst\r\nusr/doc/Flask-1.1.1/htmlfaq.rst\r\nusr/doc/Flask-1.1.1/README.rst\r\nusr/doc/Flask-1.1.1/blueprints.rst\r\nusr/doc/Flask-1.1.1/design.rst\r\n"] -[69.898898, "o", "usr/doc/Flask-1.1.1/contributing.rst\r\nusr/doc/Flask-1.1.1/signals.rst\r\n"] -[69.898926, "o", "usr/doc/Flask-1.1.1/foreword.rst\r\nusr/doc/Flask-1.1.1/config.rst\r\n"] -[69.899028, "o", "usr/doc/Flask-1.1.1/LICENSE.rst\r\n"] -[69.900954, "o", "usr/doc/Flask-1.1.1/shell.rst\r\nusr/doc/Flask-1.1.1/server.rst\r\nusr/doc/Flask-1.1.1/changelog.rst\r\nusr/doc/Flask-1.1.1/styleguide.rst\r\nusr/doc/Flask-1.1.1/logging.rst\r\nusr/doc/Flask-1.1.1/upgrading.rst\r\n"] -[69.90254, "o", "usr/doc/Flask-1.1.1/license.rst\r\nusr/doc/Flask-1.1.1/becomingbig.rst\r\nusr/doc/Flask-1.1.1/installation.rst\r\nusr/doc/Flask-1.1.1/CHANGES.rst\r\n"] -[69.90601, "o", "usr/doc/Flask-1.1.1/cli.rst\r\nusr/doc/Flask-1.1.1/extensions.rst\r\nusr/doc/Flask-1.1.1/appcontext.rst\r\n"] -[69.908314, "o", "usr/doc/Flask-1.1.1/extensiondev.rst\r\nusr/doc/Flask-1.1.1/index.rst\r\nusr/doc/Flask-1.1.1/api.rst\r\n"] -[69.910414, "o", "usr/doc/Flask-1.1.1/Flask.SlackBuild\r\nusr/doc/Flask-1.1.1/PKG-INFO\r\nusr/doc/Flask-1.1.1/reqcontext.rst\r\nusr/bin/\r\n"] -[69.910543, "o", "usr/bin/flask\r\nusr/lib64/\r\nusr/lib64/python2.7/\r\nusr/lib64/python2.7/site-packages/\r\nusr/lib64/python2.7/site-packages/flask/\r\nusr/lib64/python2.7/site-packages/flask/signals.pyc\r\n"] -[69.912789, "o", "usr/lib64/python2.7/site-packages/flask/__main__.py\r\nusr/lib64/python2.7/site-packages/flask/json/\r\nusr/lib64/python2.7/site-packages/flask/json/__init__.py\r\nusr/lib64/python2.7/site-packages/flask/json/tag.pyc\r\n"] -[69.914881, "o", "usr/lib64/python2.7/site-packages/flask/json/__init__.pyc\r\nusr/lib64/python2.7/site-packages/flask/json/tag.py\r\nusr/lib64/python2.7/site-packages/flask/sessions.py\r\n"] -[69.917246, "o", "usr/lib64/python2.7/site-packages/flask/helpers.py\r\n"] -[69.920732, "o", "usr/lib64/python2.7/site-packages/flask/config.pyc\r\nusr/lib64/python2.7/site-packages/flask/cli.pyc\r\n"] -[69.924243, "o", "usr/lib64/python2.7/site-packages/flask/logging.pyc\r\nusr/lib64/python2.7/site-packages/flask/testing.pyc\r\n"] -[69.928866, "o", "usr/lib64/python2.7/site-packages/flask/_compat.pyc\r\nusr/lib64/python2.7/site-packages/flask/__init__.py\r\nusr/lib64/python2.7/site-packages/flask/globals.pyc\r\nusr/lib64/python2.7/site-packages/flask/ctx.py\r\n"] -[69.933729, "o", "usr/lib64/python2.7/site-packages/flask/ctx.pyc\r\nusr/lib64/python2.7/site-packages/flask/logging.py\r\nusr/lib64/python2.7/site-packages/flask/debughelpers.pyc\r\n"] -[69.938368, "o", "usr/lib64/python2.7/site-packages/flask/templating.pyc\r\nusr/lib64/python2.7/site-packages/flask/wrappers.py\r\nusr/lib64/python2.7/site-packages/flask/debughelpers.py\r\nusr/lib64/python2.7/site-packages/flask/app.pyc\r\n"] -[69.951403, "o", "usr/lib64/python2.7/site-packages/flask/helpers.pyc\r\n"] -[69.955947, "o", "usr/lib64/python2.7/site-packages/flask/views.py\r\nusr/lib64/python2.7/site-packages/flask/wrappers.pyc\r\nusr/lib64/python2.7/site-packages/flask/blueprints.py\r\n"] -[69.959328, "o", "usr/lib64/python2.7/site-packages/flask/blueprints.pyc\r\n"] -[69.963183, "o", "usr/lib64/python2.7/site-packages/flask/config.py\r\nusr/lib64/python2.7/site-packages/flask/app.py\r\n"] -[69.971868, "o", "usr/lib64/python2.7/site-packages/flask/__main__.pyc\r\nusr/lib64/python2.7/site-packages/flask/cli.py\r\n"] -[69.976803, "o", "usr/lib64/python2.7/site-packages/flask/templating.py\r\nusr/lib64/python2.7/site-packages/flask/_compat.py\r\n"] -[69.98073, "o", "usr/lib64/python2.7/site-packages/flask/testing.py\r\nusr/lib64/python2.7/site-packages/flask/signals.py\r\nusr/lib64/python2.7/site-packages/flask/sessions.pyc\r\nusr/lib64/python2.7/site-packages/flask/globals.py\r\nusr/lib64/python2.7/site-packages/flask/__init__.pyc\r\nusr/lib64/python2.7/site-packages/flask/views.pyc\r\n"] -[69.985334, "o", "usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/\r\n"] -[69.985363, "o", "usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/top_level.txt\r\nusr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/dependency_links.txt\r\n"] -[69.985377, "o", "usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/SOURCES.txt\r\nusr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/entry_points.txt\r\n"] -[69.985389, "o", "usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/requires.txt\r\nusr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/PKG-INFO\r\n"] -[69.985498, "o", "install/\r\ninstall/slack-desc\r\n"] -[70.005118, "o", "\r\nSlackware package /tmp/Flask-1.1.1-x86_64-1_SBo.tgz created.\r\n\r\n"] -[70.005868, "o", "Total build time for the package Flask : 0.61 Sec\r\n\r\n"] -[70.01538, "o", "[ \u001b[32mInstalling\u001b[0m ] --> Flask-1.1.1\r\n"] -[70.030552, "o", "\r\n+==============================================================================\r\n| Installing new package /tmp/Flask-1.1.1-x86_64-1_SBo.tgz\r\n+==============================================================================\r\n\r\n"] -[70.048856, "o", "Verifying package Flask-1.1.1-x86_64-1_SBo.tgz.\r\n"] -[70.073696, "o", "Installing package Flask-1.1.1-x86_64-1_SBo.tgz:\r\nPACKAGE DESCRIPTION:\r\n"] -[70.074407, "o", "# Flask (Microframework for Python)\r\n#\r\n# Flask is a microframework for Python based on Werkzeug, Jinja 2\r\n# and good intentions.\r\n#\r\n# Homepage: http://flask.pocoo.org/\r\n"] -[70.074492, "o", "#\r\n"] -[70.184416, "o", "Package Flask-1.1.1-x86_64-1_SBo.tgz installed.\r\n\r\n"] -[70.184784, "o", "\r\n"] -[70.185007, "o", "Completed!\r\n\r\n"] -[70.185039, "o", "+==============================================================================\r\n"] -[70.185055, "o", "| Total 6 packages installed and 0 package upgraded\r\n+==============================================================================\r\n"] -[70.185142, "o", "| Package MarkupSafe-1.1.1 installed successfully\r\n| Package werkzeug-0.15.6 installed successfully\r\n| Package Jinja2-2.10.3 installed successfully\r\n| Package itsdangerous-0.24 installed successfully\r\n| Package click-7.0 installed successfully\r\n| Package Flask-1.1.1 installed successfully\r\n+==============================================================================\r\n\r\n"] -[70.248716, "o", "\u001b[?2004h"] -[70.352414, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[76.377352, "o", "\u001b[H\u001b[2J"] -[76.512936, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[76.513065, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[77.588931, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[77.589257, "o", "\u001b[38;5;240mlpkg -s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[77.58943, "o", "\b\u001b[38;5;196ms\u001b[38;5;240mlpkg -s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[77.685339, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[77.73803, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[77.738371, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[77.938572, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[77.938738, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[78.048439, "o", "\u001b[38;5;196mg\u001b[38;5;240m -s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[78.048872, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[78.523812, "o", "\u001b[38;5;26m \u001b[38;5;240m-s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[78.523937, "o", "\u001b[44C \r\u001b[79C\r\u001b[35C"] -[78.524273, "o", "\b \u001b[38;5;240m-s sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[78.692024, "o", "-\u001b[38;5;240ms sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C\u001b[43C \r\u001b[79C\r\u001b[36C"] -[78.69276, "o", "\b\u001b[38;5;39m-\u001b[38;5;240ms sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[79.409135, "o", "\u001b[38;5;39mf\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[79.409343, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[79.409483, "o", "\u001b[38;5;240m python\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[80.189984, "o", "\u001b[38;5;39m \u001b[38;5;240mpython\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C\u001b[41C \r\u001b[79C\r\u001b[38C"] -[80.190651, "o", "\b \u001b[38;5;240mpython\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[80.744546, "o", "F\u001b[K\u001b[40C \r\u001b[79C\r\u001b[39C"] -[80.744947, "o", "\u001b[40C \r\u001b[79C\r\u001b[39C"] -[80.745033, "o", "\b\u001b[38;5;39mF\u001b[40C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[80.752555, "o", "\u001b[38;5;240mreeOrion_v0.4.8_2018-08-23.26f16b0\u001b[6C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[80.896133, "o", "\u001b[38;5;39ml\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[39C \r\u001b[79C\r\u001b[40C"] -[80.896257, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[81.062647, "o", "\u001b[38;5;39ma\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C\u001b[38C \r\u001b[79C\r\u001b[41C"] -[81.286427, "o", "\u001b[38;5;39ms\u001b[37C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[81.286787, "o", "\u001b[37C \r\u001b[79C\r\u001b[42C"] -[81.342474, "o", "\u001b[38;5;39mk\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C\u001b[36C \r\u001b[79C\r\u001b[43C"] -[81.590282, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C\r\n\u001b[30m\u001b(B\u001b[m\u001b[?2004l"] -[81.590478, "o", "\u001b]0;slpkg /home/dslack"] -[81.590796, "o", "w\u0007\u001b[30m\u001b(B\u001b[m\r"] -[81.884716, "o", "\r\nPackages with matching name [ \u001b[36mFlask\u001b[0m ]\r\n\r\n"] -[81.89488, "o", "[ \u001b[32minstalled\u001b[0m ] [ 1000K ] - Flask-1.1.1-x86_64-1_SBo\r\n"] -[81.894905, "o", "[ \u001b[32minstalled\u001b[0m ] [ 940K ] - python3-Flask-1.0.3-x86_64-1_SBo\r\n\r\nFound summary\r\n===============================================================================\r\n\u001b[38;5;247mTotal found 2 matching packages.\u001b[0m\r\n\u001b[38;5;247mSize of installed packages 1.89 Mb.\u001b[0m\r\n\r\n"] -[81.90861, "o", "\u001b[?2004h"] -[82.005656, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K"] -[82.005721, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[85.688275, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[85.688402, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[85.688838, "o", "\u001b[38;5;240mlpkg -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[85.813231, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[85.813365, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[85.847366, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[86.031175, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[86.126488, "o", "\u001b[38;5;196mg\u001b[38;5;240m -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[86.126825, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[88.469025, "o", "\u001b[38;5;26m \u001b[38;5;240m-f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[88.469422, "o", "\b \u001b[38;5;240m-f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[88.566337, "o", "-\u001b[38;5;240mf Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C\u001b[43C \r\u001b[79C\r\u001b[36C"] -[88.567014, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mf Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[89.481163, "o", "\u001b[38;5;39mr\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[89.48153, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[89.481784, "o", "\u001b[38;5;240m Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[89.847821, "o", "\u001b[38;5;39m \u001b[38;5;240mFlask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C\u001b[41C \r\u001b[79C\r\u001b[38C"] -[89.848506, "o", "\b \u001b[38;5;240mFlask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[90.257764, "o", "p\u001b[K\u001b[40C \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[90.258825, "o", "\b\u001b[38;5;39mp\u001b[40C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[90.259771, "o", "\u001b[38;5;240mysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[91.588705, "o", "\b\u001b[K\u001b[41C \r\u001b[79C\r\u001b[38C"] -[94.355714, "o", "F\u001b[40C \r\u001b[79C\r\u001b[39C"] -[94.355802, "o", "\u001b[40C \r\u001b[79C\r\u001b[39C"] -[94.355997, "o", "\u001b[38;5;240mlask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C\b\u001b[38;5;39mF\u001b[38;5;240mlask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[94.522884, "o", "\u001b[38;5;39ml\u001b[38;5;240mask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[94.5233, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[94.727859, "o", "\u001b[38;5;39ma\u001b[38;5;240msk --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[94.727991, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[94.979297, "o", "\u001b[38;5;39ms\u001b[38;5;240mk --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[94.979436, "o", "\u001b[37C \r\u001b[79C\r\u001b[42C"] -[95.038179, "o", "\u001b[38;5;39mk\u001b[38;5;240m --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[95.038553, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C"] -[96.866649, "o", "\u001b[38;5;39m \u001b[38;5;240m--deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[96.866778, "o", "\u001b[35C \r\u001b[79C\r\u001b[44C"] -[96.867373, "o", "\b \u001b[38;5;240m--deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[97.013539, "o", "-\u001b[38;5;240m-deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[97.013784, "o", "\u001b[34C \r\u001b[79C\r\u001b[45C"] -[97.014051, "o", "\b\u001b[38;5;39m-\u001b[38;5;240m-deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[97.126921, "o", "\u001b[38;5;39m-\u001b[38;5;240mdeps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C"] -[97.127173, "o", "\u001b[33C \r\u001b[79C\r\u001b[46C"] -[97.629698, "o", "\u001b[38;5;39md\u001b[38;5;240meps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[97.629822, "o", "\u001b[32C \r\u001b[79C\r\u001b[47C"] -[97.739423, "o", "\u001b[38;5;39me\u001b[38;5;240mps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C"] -[97.739808, "o", "\u001b[31C \r\u001b[79C\r\u001b[48C"] -[97.84973, "o", "\u001b[38;5;39mp\u001b[38;5;240ms\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[49C\u001b[30C \r\u001b[79C\r\u001b[49C"] -[97.969516, "o", "\u001b[38;5;39ms\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[50C\u001b[29C \r\u001b[79C\r\u001b[50C"] -[98.509743, "o", "\u001b[29C \r\u001b[79C\r\u001b[50C\r\n\u001b[30m\u001b(B\u001b[m"] -[98.510164, "o", "\u001b[?2004l"] -[98.5108, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[98.781424, "o", "\r\nPackages with name matching [ \u001b[36mFlask\u001b[0m ]\r\n\r\n"] -[98.801542, "o", "[ \u001b[31mdelete\u001b[0m ] --> [ 1000K ] - Flask-1.1.1-x86_64-1_SBo\r\n\r\nRemoved summary\r\n===============================================================================\r\n\u001b[38;5;247mSize of removed packages 1000.0 Kb.\u001b[0m\r\n\r\nAre you sure to remove 1 package [y/N]? "] -[99.813718, "o", "y"] -[99.856362, "o", "\r\n"] -[99.928967, "o", "\r\n+==============================================================================\r\n| Found dependencies for the package Flask:\r\n+==============================================================================\r\n"] -[99.935592, "o", "| \u001b[31mwerkzeug-0.15.6\u001b[0m\r\n"] -[99.94233, "o", "| \u001b[31mJinja2-2.10.3\u001b[0m\r\n"] -[99.948997, "o", "| \u001b[31mitsdangerous-0.24\u001b[0m\r\n"] -[99.955573, "o", "| \u001b[31mclick-7.0\u001b[0m\r\n+==============================================================================\r\n| \u001b[38;5;247mSize of removed dependencies 7.0 Mb\u001b[0m\r\n+==============================================================================\r\n\r\nRemove dependencies (maybe used by other packages) [y/N]? "] -[102.356135, "o", "\r\n"] -[102.356622, "o", "\r\n"] -[102.40958, "o", "\r\n"] -[102.418204, "o", "Removing package /var/log/packages/Flask-1.1.1-x86_64-1_SBo...\r\n"] -[102.419688, "o", "Removing files:\r\n"] -[103.111581, "o", " --> /usr/bin/flask was found in another package. Skipping.\r\n"] -[103.183521, "o", " --> Deleting /usr/doc/Flask-1.1.1/CHANGES.rst\r\n"] -[103.184136, "o", " --> Deleting /usr/doc/Flask-1.1.1/Flask.SlackBuild\r\n"] -[103.184663, "o", " --> Deleting /usr/doc/Flask-1.1.1/LICENSE.rst\r\n"] -[103.185201, "o", " --> Deleting /usr/doc/Flask-1.1.1/PKG-INFO\r\n"] -[103.185734, "o", " --> Deleting /usr/doc/Flask-1.1.1/README.rst\r\n"] -[103.186272, "o", " --> Deleting /usr/doc/Flask-1.1.1/advanced_foreword.rst\r\n"] -[103.186852, "o", " --> Deleting /usr/doc/Flask-1.1.1/api.rst\r\n"] -[103.187403, "o", " --> Deleting /usr/doc/Flask-1.1.1/appcontext.rst\r\n"] -[103.187948, "o", " --> Deleting /usr/doc/Flask-1.1.1/becomingbig.rst\r\n"] -[103.188526, "o", " --> Deleting /usr/doc/Flask-1.1.1/blueprints.rst\r\n"] -[103.189082, "o", " --> Deleting /usr/doc/Flask-1.1.1/changelog.rst\r\n"] -[103.189626, "o", " --> Deleting /usr/doc/Flask-1.1.1/cli.rst\r\n"] -[103.190254, "o", " --> Deleting /usr/doc/Flask-1.1.1/config.rst\r\n"] -[103.190735, "o", " --> Deleting /usr/doc/Flask-1.1.1/contributing.rst\r\n"] -[103.19133, "o", " --> Deleting /usr/doc/Flask-1.1.1/design.rst\r\n"] -[103.19192, "o", " --> Deleting /usr/doc/Flask-1.1.1/errorhandling.rst\r\n"] -[103.192538, "o", " --> Deleting /usr/doc/Flask-1.1.1/extensiondev.rst\r\n"] -[103.192988, "o", " --> Deleting /usr/doc/Flask-1.1.1/extensions.rst\r\n"] -[103.193573, "o", " --> Deleting /usr/doc/Flask-1.1.1/foreword.rst\r\n"] -[103.194103, "o", " --> Deleting /usr/doc/Flask-1.1.1/htmlfaq.rst\r\n"] -[103.194669, "o", " --> Deleting /usr/doc/Flask-1.1.1/index.rst\r\n"] -[103.195251, "o", " --> Deleting /usr/doc/Flask-1.1.1/installation.rst\r\n"] -[103.195838, "o", " --> Deleting /usr/doc/Flask-1.1.1/license.rst\r\n"] -[103.196427, "o", " --> Deleting /usr/doc/Flask-1.1.1/logging.rst\r\n"] -[103.197019, "o", " --> Deleting /usr/doc/Flask-1.1.1/quickstart.rst\r\n"] -[103.197592, "o", " --> Deleting /usr/doc/Flask-1.1.1/reqcontext.rst\r\n"] -[103.198235, "o", " --> Deleting /usr/doc/Flask-1.1.1/security.rst\r\n"] -[103.198757, "o", " --> Deleting /usr/doc/Flask-1.1.1/server.rst\r\n"] -[103.199242, "o", " --> Deleting /usr/doc/Flask-1.1.1/shell.rst\r\n"] -[103.199863, "o", " --> Deleting /usr/doc/Flask-1.1.1/signals.rst\r\n"] -[103.200363, "o", " --> Deleting /usr/doc/Flask-1.1.1/styleguide.rst\r\n"] -[103.200802, "o", " --> Deleting /usr/doc/Flask-1.1.1/templating.rst\r\n"] -[103.201187, "o", " --> Deleting /usr/doc/Flask-1.1.1/testing.rst\r\n"] -[103.201613, "o", " --> Deleting /usr/doc/Flask-1.1.1/unicode.rst\r\n"] -[103.202106, "o", " --> Deleting /usr/doc/Flask-1.1.1/upgrading.rst\r\n"] -[103.202604, "o", " --> Deleting /usr/doc/Flask-1.1.1/views.rst\r\n"] -[103.203169, "o", " --> Deleting /usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/PKG-INFO\r\n"] -[103.203687, "o", " --> Deleting /usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/SOURCES.txt\r\n"] -[103.204191, "o", " --> Deleting /usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/dependency_links.txt\r\n"] -[103.204791, "o", " --> Deleting /usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/entry_points.txt\r\n"] -[103.205405, "o", " --> Deleting /usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/requires.txt\r\n"] -[103.20593, "o", " --> Deleting /usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/top_level.txt\r\n"] -[103.206496, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/__init__.py\r\n"] -[103.207061, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/__init__.pyc\r\n"] -[103.207558, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/__main__.py\r\n"] -[103.208233, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/__main__.pyc\r\n"] -[103.208869, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/_compat.py\r\n"] -[103.209399, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/_compat.pyc\r\n"] -[103.209995, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/app.py\r\n"] -[103.210503, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/app.pyc\r\n"] -[103.211059, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/blueprints.py\r\n"] -[103.211614, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/blueprints.pyc\r\n"] -[103.212298, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/cli.py\r\n"] -[103.212955, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/cli.pyc\r\n"] -[103.213529, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/config.py\r\n"] -[103.214045, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/config.pyc\r\n"] -[103.214547, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/ctx.py\r\n"] -[103.215045, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/ctx.pyc\r\n"] -[103.215513, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/debughelpers.py\r\n"] -[103.215999, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/debughelpers.pyc\r\n"] -[103.216567, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/globals.py\r\n"] -[103.217086, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/globals.pyc\r\n"] -[103.217544, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/helpers.py\r\n"] -[103.218075, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/helpers.pyc\r\n"] -[103.218565, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/json/__init__.py\r\n"] -[103.219018, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/json/__init__.pyc\r\n"] -[103.219535, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/json/tag.py\r\n"] -[103.220078, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/json/tag.pyc\r\n"] -[103.220579, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/logging.py\r\n"] -[103.221073, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/logging.pyc\r\n"] -[103.221543, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/sessions.py\r\n"] -[103.222037, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/sessions.pyc\r\n"] -[103.222486, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/signals.py\r\n"] -[103.223023, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/signals.pyc\r\n"] -[103.22374, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/templating.py\r\n"] -[103.224404, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/templating.pyc\r\n"] -[103.225102, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/testing.py\r\n"] -[103.225668, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/testing.pyc\r\n"] -[103.226247, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/views.py\r\n"] -[103.226796, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/views.pyc\r\n"] -[103.227545, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/wrappers.py\r\n"] -[103.228008, "o", " --> Deleting /usr/lib64/python2.7/site-packages/flask/wrappers.pyc\r\n"] -[103.230509, "o", " --> Deleting empty directory /usr/lib64/python2.7/site-packages/flask/json/\r\n"] -[103.232322, "o", " --> Deleting empty directory /usr/lib64/python2.7/site-packages/flask/\r\n"] -[103.234006, "o", " --> Deleting empty directory /usr/lib64/python2.7/site-packages/Flask-1.1.1-py2.7.egg-info/\r\n"] -[103.235996, "o", " --> Deleting empty directory /usr/doc/Flask-1.1.1/\r\n"] -[103.245978, "o", "\r\n+==============================================================================\r\n| Total 1 package removed\r\n+==============================================================================\r\n"] -[103.25288, "o", "| Package Flask-1.1.1 removed\r\n+==============================================================================\r\n\r\n"] -[103.272487, "o", "\u001b[?2004h"] -[103.377304, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[103.377375, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[105.424212, "o", "\u001b[H\u001b[2J"] -[105.538573, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[106.179816, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[106.180968, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[106.264515, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[106.301579, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[106.301663, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[106.483248, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[106.48364, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[106.578748, "o", "\u001b[38;5;196mg\u001b[38;5;240m -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[106.578905, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C"] -[106.579337, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[107.515305, "o", "\u001b[38;5;26m \u001b[38;5;240m-r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[107.515383, "o", "\u001b[44C \r\u001b[79C\r\u001b[35C"] -[107.515596, "o", "\b \u001b[38;5;240m-r Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[108.059297, "o", "-\u001b[38;5;240mr Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[108.059448, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[108.060056, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mr Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[108.128573, "o", "\u001b[38;5;39mf\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[108.128956, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C\u001b[38;5;240m Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[108.559667, "o", "\u001b[38;5;39m Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[108.560024, "o", "\b\b\b\b\b\b \u001b[38;5;39mFlask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[109.397889, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C\r\n\u001b[30m\u001b(B\u001b[m\u001b[?2004l\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[109.702239, "o", "\r\nPackages with matching name [ \u001b[36mFlask\u001b[0m ]\r\n\r\n"] -[109.712306, "o", "[ \u001b[32minstalled\u001b[0m ] [ 940K ] - python3-Flask-1.0.3-x86_64-1_SBo\r\n\r\nFound summary\r\n===============================================================================\r\n\u001b[38;5;247mTotal found 1 matching packages.\u001b[0m\r\n\u001b[38;5;247mSize of installed packages 940.0 Kb.\u001b[0m\r\n\r\n"] -[109.725703, "o", "\u001b[?2004h"] -[109.82379, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K"] -[109.82385, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[112.782213, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[112.782283, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[112.78244, "o", "\u001b[38;5;240mlpkg -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[112.865504, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[112.917266, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[113.124131, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[113.222835, "o", "\u001b[38;5;196mg\u001b[38;5;240m -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[113.223206, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C"] -[113.223327, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[113.707435, "o", "\u001b[K\u001b[45C \r\u001b[79C\r\u001b[34C\r\n\u001b[30m\u001b(B\u001b[m\u001b[?2004l\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[114.029513, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[114.029704, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[114.042773, "o", "\u001b[?2004h"] -[114.147606, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[114.147651, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[115.311135, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C"] -[115.311482, "o", "\u001b[49C \r\u001b[79C\r\u001b[30C"] -[115.311745, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[115.432423, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[115.493877, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[115.665877, "o", "\u001b[38;5;196mk\u001b[38;5;240mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[115.666006, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[115.76653, "o", "\u001b[38;5;196mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[115.766958, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[116.721217, "o", "\u001b[38;5;26m \u001b[44C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[116.721342, "o", "\b \u001b[44C \r\u001b[79C\r\u001b[35C"] -[116.721641, "o", "\u001b[38;5;240m-f Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[116.81253, "o", "-\u001b[38;5;240mf Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C\u001b[43C \r\u001b[79C\r\u001b[36C"] -[116.813246, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mf Flask\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[117.08197, "o", "\u001b[38;5;39mt\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[117.08241, "o", "\u001b[38;5;240m sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[117.22614, "o", "\u001b[38;5;39m \u001b[38;5;240msbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C\u001b[41C \r\u001b[79C\r\u001b[38C"] -[117.226573, "o", "\b \u001b[38;5;240msbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[117.755351, "o", "F\u001b[K\u001b[40C \r\u001b[79C\r\u001b[39C"] -[117.755738, "o", "\u001b[40C \r\u001b[79C\r\u001b[39C\b\u001b[38;5;39mF\u001b[40C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[117.886459, "o", "\u001b[38;5;39mL\u001b[39C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C\u001b[39C \r\u001b[79C\r\u001b[40C"] -[118.05104, "o", "\u001b[38;5;39ma\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[118.051173, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[118.300697, "o", "\u001b[38;5;39ms\u001b[37C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[118.300935, "o", "\u001b[37C \r\u001b[79C\r\u001b[42C"] -[118.379055, "o", "\u001b[38;5;39mk\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[118.379125, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C"] -[118.614719, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C\r\n\u001b[30m\u001b(B\u001b[m"] -[118.615097, "o", "\u001b[?2004l"] -[118.61546, "o", "\u001b]0;slpkg /home/dslackw\u0007"] -[118.615784, "o", "\u001b[30m\u001b(B\u001b[m\r"] -[118.908594, "o", "\r\nslpkg: Error: Repository 'FLask' does not exist\r\n\r\n"] -[118.921685, "o", "\u001b[?2004h"] -[119.021497, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[119.021694, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[45C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[29C"] -[119.933461, "o", "slpkg -t FLask\u001b[31C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[43C"] -[119.934347, "o", "\u001b[14D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-t\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mFLask\u001b[31C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[43C"] -[120.25234, "o", "\u001b[31C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[42C"] -[120.411035, "o", "\u001b[32C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[41C"] -[120.538015, "o", "\u001b[33C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[40C"] -[121.064027, "o", "\b\u001b[38;5;39mask\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[32C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[39C"] -[121.301996, "o", "\u001b[38;5;39mlask\u001b[31C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[40C"] -[121.302341, "o", "\u001b[34C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[40C"] -[121.481906, "o", "\u001b[34C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[43C\r\n\u001b[30m\u001b(B\u001b[m"] -[121.482111, "o", "\u001b[?2004l\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[121.757416, "o", "\r\nslpkg: Error: Repository 'Flask' does not exist\r\n\r\n"] -[121.770628, "o", "\u001b[?2004h"] -[121.87233, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[121.8724, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[45C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[29C"] -[123.093147, "o", "slpkg -t Flask\u001b[31C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[43C"] -[123.093909, "o", "\u001b[14D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-t\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mFlask\u001b[31C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[43C"] -[123.251042, "o", "\u001b[31C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[42C"] -[123.401537, "o", "\u001b[32C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[41C"] -[123.522952, "o", "\u001b[33C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[40C"] -[123.663607, "o", "\u001b[34C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[39C"] -[123.803553, "o", "\u001b[35C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[38C"] -[124.180301, "o", "\u001b[38;5;39msFlask\u001b[30C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[39C\u001b[35C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[39C"] -[124.537919, "o", "\u001b[38;5;39mbFlask\u001b[29C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[40C"] -[124.538358, "o", "\u001b[34C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[40C"] -[124.642942, "o", "\u001b[38;5;39moFlask\u001b[28C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[41C"] -[124.643075, "o", "\u001b[33C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[41C"] -[124.751343, "o", "\u001b[38;5;39m Flask\u001b[27C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[42C"] -[124.751807, "o", "\u001b[32C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[42C\u001b[5C\u001b[38;5;240m --graph=ascii\u001b[13C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[42C"] -[124.752174, "o", "\b \u001b[38;5;39mFlask\u001b[38;5;240m --graph=ascii\u001b[13C\u001b[30m\u001b(B\u001b[m\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[42C"] -[124.947136, "o", "\u001b[5C\u001b[K\u001b[27C\u001b[0;38;5;52;49;22m \u001b[0;38;5;231;48;5;52m 1 \u001b[0m \r\u001b[74C\r\u001b[47C\r\n\u001b[30m\u001b(B\u001b[m"] -[124.947568, "o", "\u001b[?2004l"] -[124.947906, "o", "\u001b]0;slpkg /home/dslackw"] -[124.948257, "o", "\u0007\u001b[30m\u001b(B\u001b[m\r"] -[125.241302, "o", "\u001b[38;5;247mResolving dependencies...\u001b[0m "] -[125.548553, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n\r\n+=============================\r\n| Package \u001b[36mFlask\u001b[0m dependencies :\r\n+=============================\r\n\\\r\n +---\u001b[33m[ Tree of dependencies ]\u001b[0m\r\n"] -[125.555402, "o", " |\r\n +--1: \u001b[32mpython3\u001b[0m \r\n"] -[125.562054, "o", " |\r\n +--2: \u001b[32mMarkupSafe\u001b[0m \r\n"] -[125.56862, "o", " |\r\n +--3: \u001b[32mwerkzeug\u001b[0m \r\n"] -[125.575305, "o", " |\r\n +--4: \u001b[32mJinja2\u001b[0m \r\n"] -[125.581971, "o", " |\r\n +--5: \u001b[32mitsdangerous\u001b[0m \r\n"] -[125.588673, "o", " |\r\n +--6: \u001b[32mclick\u001b[0m \r\n\r\n"] -[125.606042, "o", "\u001b[?2004h"] -[125.706507, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K"] -[125.706582, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[129.30355, "o", "\u001b[H\u001b[2J"] -[129.430982, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[129.893944, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[129.894065, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[129.894481, "o", "\u001b[38;5;240mlpkg -t sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[129.98455, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -t sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[130.043918, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -t sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[130.225537, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -t sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[130.225739, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[130.332583, "o", "\u001b[38;5;196mg\u001b[38;5;240m -t sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[130.332854, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -t sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[131.404491, "o", "\u001b[K\u001b[45C \r\u001b[79C\r\u001b[34C\r\n\u001b[30m\u001b(B\u001b[m"] -[131.404708, "o", "\u001b[?2004l"] -[131.404835, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[131.67293, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[131.673172, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[131.686149, "o", "\u001b[?2004h"] -[131.783684, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[133.055831, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[133.056278, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[133.150027, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[133.220361, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[133.386531, "o", "\u001b[38;5;196mk\u001b[38;5;240mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[133.509096, "o", "\u001b[38;5;196mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[133.509557, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[136.154953, "o", "\u001b[38;5;26m \u001b[44C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[136.155292, "o", "\u001b[44C \r\u001b[79C\r\u001b[35C"] -[136.155397, "o", "\b \u001b[44C \r\u001b[79C\r\u001b[35C\u001b[38;5;240m-t sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[140.861825, "o", "-\u001b[38;5;240mt sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[140.861959, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[140.862523, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mt sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[141.615695, "o", "\u001b[38;5;39ml\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[141.616096, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[141.616444, "o", "\u001b[38;5;240m sbo --installed | more\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[142.926516, "o", "\u001b[38;5;39m sbo --installed | more\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[60C"] -[142.926729, "o", "\u001b[23D \u001b[38;5;39msbo\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--installed\u001b[30m\u001b(B\u001b[m \u001b[38;5;28m|\u001b[30m\u001b(B\u001b[m \u001b[38;5;26mmore\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[60C"] -[143.261968, "o", "\b\u001b[K\u001b[20C \r\u001b[79C\r\u001b[59C"] -[143.262372, "o", "\b\b\b\u001b[38;5;196mmor\u001b[20C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[59C"] -[143.428319, "o", "\b\u001b[K\u001b[21C \r\u001b[79C\r\u001b[58C"] -[143.583169, "o", "\b\u001b[K\u001b[22C \r\u001b[79C\r\u001b[57C"] -[143.724288, "o", "\b\u001b[K\u001b[23C \r\u001b[79C\r\u001b[56C"] -[143.870096, "o", "\b\u001b[K\u001b[24C \r\u001b[79C\r\u001b[55C"] -[144.018737, "o", "\b\u001b[K\u001b[25C \r\u001b[79C\r\u001b[54C"] -[144.261409, "o", "\b\u001b[K\u001b[26C \r\u001b[79C\r\u001b[53C"] -[145.522747, "o", "\u001b[38;5;39m \u001b[25C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[54C"] -[145.522895, "o", "\u001b[25C \r\u001b[79C\r\u001b[54C"] -[145.523348, "o", "\u001b[38;5;240m| more\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[54C"] -[145.523703, "o", "\b \u001b[38;5;240m| more\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[54C"] -[145.74346, "o", "-\u001b[K\u001b[24C \r\u001b[79C\r\u001b[55C\u001b[24C \r\u001b[79C\r\u001b[55C"] -[145.743708, "o", "\b\u001b[38;5;39m-\u001b[24C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[55C"] -[145.747424, "o", "\u001b[38;5;240m-autobuild \u001b[13C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[55C"] -[145.849661, "o", "\u001b[38;5;39m-\u001b[38;5;240mautobuild \u001b[13C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[56C"] -[145.850037, "o", "\u001b[23C \r\u001b[79C\r\u001b[56C"] -[146.130137, "o", "\u001b[38;5;39mi\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[22C \r\u001b[79C\r\u001b[57C"] -[146.130548, "o", "\u001b[22C \r\u001b[79C\r\u001b[57C"] -[146.138875, "o", "\u001b[38;5;240mnstallpkg \u001b[12C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[57C"] -[146.34148, "o", "\u001b[38;5;39mn\u001b[38;5;240mstallpkg \u001b[12C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[58C\u001b[21C \r\u001b[79C\r\u001b[58C"] -[146.646009, "o", "\u001b[38;5;39md\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[20C \r\u001b[79C\r\u001b[59C"] -[146.646412, "o", "\u001b[20C \r\u001b[79C\r\u001b[59C"] -[146.791252, "o", "\u001b[38;5;39me\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[60C\u001b[19C \r\u001b[79C\r\u001b[60C"] -[147.060828, "o", "\u001b[38;5;39mx\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[61C\u001b[18C \r\u001b[79C\r\u001b[61C"] -[147.173792, "o", "\u001b[18C \r\u001b[79C\r\u001b[61C\r\n\u001b[30m\u001b(B\u001b[m"] -[147.174163, "o", "\u001b[?2004l"] -[147.174983, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b("] -[147.175295, "o", "B\u001b[m\r"] -[147.514812, "o", "\r\n"] -[147.528527, "o", "\u001b[38;5;247m1:\u001b[0m 0ad\r\n"] -[147.541044, "o", "\u001b[38;5;247m2:\u001b[0m 0ad-data\r\n"] -[147.554113, "o", "\u001b[38;5;247m3:\u001b[0m 2bwm\r\n"] -[147.567062, "o", "\u001b[38;5;247m4:\u001b[0m 2ping\r\n"] -[147.579839, "o", "\u001b[38;5;247m5:\u001b[0m 3D-Fasteroids\r\n"] -[147.592106, "o", "\u001b[38;5;247m6:\u001b[0m 3proxy\r\n"] -[147.604404, "o", "\u001b[38;5;247m7:\u001b[0m 4digits\r\n"] -[147.617875, "o", "\u001b[38;5;247m8:\u001b[0m 4do-libretro\r\n"] -[147.630886, "o", "\u001b[38;5;247m9:\u001b[0m 4th\r\n"] -[147.643847, "o", "\u001b[38;5;247m10:\u001b[0m 7kaa\r\n"] -[147.656961, "o", "\u001b[38;5;247m11:\u001b[0m 7plus\r\n"] -[147.669989, "o", "\u001b[38;5;247m12:\u001b[0m 9menu\r\n"] -[147.683027, "o", "\u001b[38;5;247m13:\u001b[0m APScheduler\r\n"] -[147.696594, "o", "\u001b[38;5;247m14:\u001b[0m AdGuardHome\r\n"] -[147.709785, "o", "\u001b[38;5;247m15:\u001b[0m Alchemy\r\n"] -[147.724026, "o", "\u001b[38;5;247m16:\u001b[0m Alphacube-GTK\r\n"] -[147.737976, "o", "\u001b[38;5;247m17:\u001b[0m AlsaMixer.app\r\n"] -[147.75094, "o", "\u001b[38;5;247m18:\u001b[0m AnonymousPro\r\n"] -[147.763871, "o", "\u001b[38;5;247m19:\u001b[0m ApacheDirectoryStudio\r\n"] -[147.776665, "o", "\u001b[38;5;247m20:\u001b[0m Arduino\r\n"] -[147.789396, "o", "\u001b[38;5;247m21:\u001b[0m AssociationSubscribersManager\r\n"] -[147.802366, "o", "\u001b[38;5;247m22:\u001b[0m Ater-MPlayer-skin\r\n"] -[147.815149, "o", "\u001b[38;5;247m23:\u001b[0m Atlas-C++\r\n"] -[147.828173, "o", "\u001b[38;5;247m24:\u001b[0m AtomicParsley\r\n"] -[147.841418, "o", "\u001b[38;5;247m25:\u001b[0m Attic\r\n"] -[147.854217, "o", "\u001b[38;5;247m26:\u001b[0m Automat\r\n"] -[147.867089, "o", "\u001b[38;5;247m27:\u001b[0m BISP\r\n"] -[147.879679, "o", "\u001b[38;5;247m28:\u001b[0m Baker\r\n"] -[147.89256, "o", "\u001b[38;5;247m29:\u001b[0m Beaker\r\n"] -[147.90551, "o", "\u001b[38;5;247m30:\u001b[0m BeastieWorker\r\n"] -[147.918554, "o", "\u001b[38;5;247m31:\u001b[0m BeastieWorker-levels\r\n"] -[147.931577, "o", "\u001b[38;5;247m32:\u001b[0m BeautifulSoup\r\n"] -[147.944419, "o", "\u001b[38;5;247m33:\u001b[0m BeautifulSoup4\r\n"] -[147.957418, "o", "\u001b[38;5;247m34:\u001b[0m BitchX\r\n"] -[147.970203, "o", "\u001b[38;5;247m35:\u001b[0m Blender\r\n"] -[147.982905, "o", "\u001b[38;5;247m36:\u001b[0m Botan\r\n"] -[147.995858, "o", "\u001b[38;5;247m37:\u001b[0m Bottleneck\r\n"] -[148.008924, "o", "\u001b[38;5;247m38:\u001b[0m Buku\r\n"] -[148.022075, "o", "\u001b[38;5;247m39:\u001b[0m CAFS_divergence\r\n"] -[148.035121, "o", "\u001b[38;5;247m40:\u001b[0m CANard\r\n"] -[148.04801, "o", "\u001b[38;5;247m41:\u001b[0m CAPS_coevolution\r\n"] -[148.06084, "o", "\u001b[38;5;247m42:\u001b[0m CCfits\r\n"] -[148.073943, "o", "\u001b[38;5;247m43:\u001b[0m CEGUI\r\n"] -[148.087016, "o", "\u001b[38;5;247m44:\u001b[0m CEGUI0.7\r\n"] -[148.099985, "o", "\u001b[38;5;247m45:\u001b[0m CGAL\r\n"] -[148.113109, "o", "\u001b[38;5;247m46:\u001b[0m CImg\r\n"] -[148.125952, "o", "\u001b[38;5;247m47:\u001b[0m CNS11643-font\r\n"] -[148.139016, "o", "\u001b[38;5;247m48:\u001b[0m CPU-X\r\n"] -[148.151839, "o", "\u001b[38;5;247m49:\u001b[0m CVSTools\r\n"] -[148.164833, "o", "\u001b[38;5;247m50:\u001b[0m CairoSVG\r\n"] -[148.177849, "o", "\u001b[38;5;247m51:\u001b[0m Catch\r\n\r\nPress \u001b[36mEnter\u001b[0m to continue... "] -[149.57675, "o", " "] -[150.478923, "o", "\r\n"] -[150.479332, "o", "\r\n"] -[150.525072, "o", "\u001b[38;5;247m52:\u001b[0m Chatbot-Eliza\r\n"] -[150.543222, "o", "\u001b[38;5;247m53:\u001b[0m CherryMusic\r\n"] -[150.556937, "o", "\u001b[38;5;247m54:\u001b[0m CherryPy\r\n"] -[150.570933, "o", "\u001b[38;5;247m55:\u001b[0m CherryTree\r\n"] -[150.585012, "o", "\u001b[38;5;247m56:\u001b[0m ChezScheme\r\n"] -[150.598074, "o", "\u001b[38;5;247m57:\u001b[0m ClipboardViewer\r\n"] -[150.612782, "o", "\u001b[38;5;247m58:\u001b[0m ClusterSSH\r\n"] -[150.625923, "o", "\u001b[38;5;247m59:\u001b[0m Coin\r\n"] -[150.639832, "o", "\u001b[38;5;247m60:\u001b[0m CoinMP\r\n"] -[150.653816, "o", "\u001b[38;5;247m61:\u001b[0m Colormake\r\n"] -[150.667912, "o", "\u001b[38;5;247m62:\u001b[0m ComixCursors\r\n"] -[150.681974, "o", "\u001b[38;5;247m63:\u001b[0m CommonMark\r\n"] -[150.696052, "o", "\u001b[38;5;247m64:\u001b[0m CondConfigParser\r\n"] -[150.710119, "o", "\u001b[38;5;247m65:\u001b[0m ConfigParser\r\n"] -[150.724426, "o", "\u001b[38;5;247m66:\u001b[0m CorsixTH\r\n"] -[150.738569, "o", "\u001b[38;5;247m67:\u001b[0m Craft-libretro\r\n"] -[150.75283, "o", "\u001b[38;5;247m68:\u001b[0m CreateCloudMap\r\n"] -[150.767086, "o", "\u001b[38;5;247m69:\u001b[0m Crypt-SSLeay\r\n"] -[150.780231, "o", "\u001b[38;5;247m70:\u001b[0m CubicSDR\r\n"] -[150.795526, "o", "\u001b[38;5;247m71:\u001b[0m DPF-Plugins\r\n"] -[150.809039, "o", "\u001b[38;5;247m72:\u001b[0m DarTui\r\n"] -[150.823182, "o", "\u001b[38;5;247m73:\u001b[0m Data2FCS\r\n"] -[150.837462, "o", "\u001b[38;5;247m74:\u001b[0m DateTime\r\n"] -[150.851568, "o", "\u001b[38;5;247m75:\u001b[0m DendroPy\r\n"] -[150.865168, "o", "\u001b[38;5;247m76:\u001b[0m DenyHosts\r\n"] -[150.879478, "o", "\u001b[38;5;247m77:\u001b[0m DevIL\r\n"] -[150.89337, "o", "\u001b[38;5;247m78:\u001b[0m DirectFB\r\n"] -[150.907495, "o", "\u001b[38;5;247m79:\u001b[0m DivFix++\r\n"] -[150.921672, "o", "\u001b[38;5;247m80:\u001b[0m EMBASSY\r\n"] -[150.934505, "o", "\u001b[38;5;247m81:\u001b[0m EMBOSS\r\n"] -[150.94877, "o", "\u001b[38;5;247m82:\u001b[0m ETL\r\n"] -[150.962191, "o", "\u001b[38;5;247m83:\u001b[0m EarthReader-Web\r\n"] -[150.982349, "o", "\u001b[38;5;247m84:\u001b[0m Editra\r\n"] -[151.005024, "o", "\u001b[38;5;247m85:\u001b[0m Electrum\r\n"] -[151.028263, "o", "\u001b[38;5;247m86:\u001b[0m Electrum-DASH\r\n"] -[151.047318, "o", "\u001b[38;5;247m87:\u001b[0m Eterm\r\n"] -[151.062927, "o", "\u001b[38;5;247m88:\u001b[0m ExMplayer\r\n"] -[151.07599, "o", "\u001b[38;5;247m89:\u001b[0m FAudio\r\n"] -[151.088814, "o", "\u001b[38;5;247m90:\u001b[0m FCSalyzer\r\n"] -[151.101693, "o", "\u001b[38;5;247m91:\u001b[0m FSPViewer\r\n"] -[151.114587, "o", "\u001b[38;5;247m92:\u001b[0m Fennel\r\n"] -[151.127357, "o", "\u001b[38;5;247m93:\u001b[0m Fiona\r\n"] -[151.140177, "o", "\u001b[38;5;247m94:\u001b[0m FireWorks\r\n"] -[151.152932, "o", "\u001b[38;5;247m95:\u001b[0m Flask\r\n"] -[151.16592, "o", "\u001b[38;5;247m96:\u001b[0m Flask-Babel\r\n"] -[151.178669, "o", "\u001b[38;5;247m97:\u001b[0m Flask-Compress\r\n"] -[151.191775, "o", "\u001b[38;5;247m98:\u001b[0m Flask-Cors\r\n"] -[151.204735, "o", "\u001b[38;5;247m99:\u001b[0m Flask-Gravatar\r\n"] -[151.21777, "o", "\u001b[38;5;247m100:\u001b[0m Flask-HTMLmin\r\n"] -[151.230843, "o", "\u001b[38;5;247m101:\u001b[0m Flask-Login\r\n"] -[151.243854, "o", "\u001b[38;5;247m102:\u001b[0m Flask-Mail\r\n\r\nPress \u001b[36mEnter\u001b[0m to continue... "] -[152.663628, "o", "\r\n"] -[152.664038, "o", "\r\n"] -[152.684739, "o", "\u001b[38;5;247m103:\u001b[0m Flask-Principal\r\n"] -[152.699979, "o", "\u001b[38;5;247m104:\u001b[0m Flask-RESTful\r\n"] -[152.71461, "o", "\u001b[38;5;247m105:\u001b[0m Flask-SQLAlchemy\r\n"] -[152.72798, "o", "\u001b[38;5;247m106:\u001b[0m Flask-Security\r\n"] -[152.741189, "o", "\u001b[38;5;247m107:\u001b[0m Flask-WTF\r\n"] -[152.754048, "o", "\u001b[38;5;247m108:\u001b[0m FlightGear\r\n"] -[152.766848, "o", "\u001b[38;5;247m109:\u001b[0m FlightGear-data\r\n"] -[152.77968, "o", "\u001b[38;5;247m110:\u001b[0m Flootty\r\n"] -[152.792829, "o", "\u001b[38;5;247m111:\u001b[0m FontAwesome\r\n"] -[152.805818, "o", "\u001b[38;5;247m112:\u001b[0m FormEncode\r\n"] -[152.818643, "o", "\u001b[38;5;247m113:\u001b[0m Free-Cinema\r\n"] -[152.83178, "o", "\u001b[38;5;247m114:\u001b[0m FreeBASIC\r\n"] -[152.844592, "o", "\u001b[38;5;247m115:\u001b[0m FreeCAD\r\n"] -[152.857563, "o", "\u001b[38;5;247m116:\u001b[0m FreeFem\r\n"] -[152.870398, "o", "\u001b[38;5;247m117:\u001b[0m FreeImage\r\n"] -[152.883308, "o", "\u001b[38;5;247m118:\u001b[0m FunkLoad\r\n"] -[152.896369, "o", "\u001b[38;5;247m119:\u001b[0m GLee\r\n"] -[152.909238, "o", "\u001b[38;5;247m120:\u001b[0m GMT\r\n"] -[152.922014, "o", "\u001b[38;5;247m121:\u001b[0m GPS\r\n"] -[152.934857, "o", "\u001b[38;5;247m122:\u001b[0m Gblocks\r\n"] -[152.947634, "o", "\u001b[38;5;247m123:\u001b[0m Gearboy\r\n"] -[152.960661, "o", "\u001b[38;5;247m124:\u001b[0m Gearsystem\r\n"] -[152.973916, "o", "\u001b[38;5;247m125:\u001b[0m Gem\r\n"] -[152.98705, "o", "\u001b[38;5;247m126:\u001b[0m Genesis-Plus-GX\r\n"] -[153.000074, "o", "\u001b[38;5;247m127:\u001b[0m GentiumPlus\r\n"] -[153.012958, "o", "\u001b[38;5;247m128:\u001b[0m GeoGebra\r\n"] -[153.025693, "o", "\u001b[38;5;247m129:\u001b[0m GeoIP\r\n"] -[153.038676, "o", "\u001b[38;5;247m130:\u001b[0m GeoIP-Python\r\n"] -[153.051731, "o", "\u001b[38;5;247m131:\u001b[0m Geohash\r\n"] -[153.064676, "o", "\u001b[38;5;247m132:\u001b[0m Geraldo\r\n"] -[153.077785, "o", "\u001b[38;5;247m133:\u001b[0m GhostInTheMail\r\n"] -[153.090596, "o", "\u001b[38;5;247m134:\u001b[0m GitEye\r\n"] -[153.103785, "o", "\u001b[38;5;247m135:\u001b[0m GitPython\r\n"] -[153.116709, "o", "\u001b[38;5;247m136:\u001b[0m GraphicsMagick\r\n"] -[153.138431, "o", "\u001b[38;5;247m137:\u001b[0m Gridcoin-Research\r\n"] -[153.161989, "o", "\u001b[38;5;247m138:\u001b[0m Gtk2-GladeXML\r\n"] -[153.179945, "o", "\u001b[38;5;247m139:\u001b[0m GtkD\r\n"] -[153.193355, "o", "\u001b[38;5;247m140:\u001b[0m HMMER\r\n"] -[153.206182, "o", "\u001b[38;5;247m141:\u001b[0m HamsiManager\r\n"] -[153.219016, "o", "\u001b[38;5;247m142:\u001b[0m HandBrake\r\n"] -[153.231813, "o", "\u001b[38;5;247m143:\u001b[0m HawkNL\r\n"] -[153.244755, "o", "\u001b[38;5;247m144:\u001b[0m Hex2bin\r\n"] -[153.260057, "o", "\u001b[38;5;247m145:\u001b[0m HotShots\r\n"] -[153.27416, "o", "\u001b[38;5;247m146:\u001b[0m Hypodermic\r\n"] -[153.287299, "o", "\u001b[38;5;247m147:\u001b[0m I-Nex\r\n"] -[153.300911, "o", "\u001b[38;5;247m148:\u001b[0m IMAPClient\r\n"] -[153.313813, "o", "\u001b[38;5;247m149:\u001b[0m ITK\r\n"] -[153.327583, "o", "\u001b[38;5;247m150:\u001b[0m Icecat\r\n"] -[153.340663, "o", "\u001b[38;5;247m151:\u001b[0m Impacket\r\n"] -[153.35369, "o", "\u001b[38;5;247m152:\u001b[0m Iosevka\r\n"] -[153.36662, "o", "\u001b[38;5;247m153:\u001b[0m Ipopt\r\n\r\nPress \u001b[36mEnter\u001b[0m to continue... "] -[154.174253, "o", "\r\n"] -[154.174666, "o", "\r\n"] -[154.196859, "o", "\u001b[38;5;247m154:\u001b[0m J-Link\r\n"] -[154.212622, "o", "\u001b[38;5;247m155:\u001b[0m JSONObject\r\n"] -[154.227993, "o", "\u001b[38;5;247m156:\u001b[0m JSampler\r\n"] -[154.242248, "o", "\u001b[38;5;247m157:\u001b[0m JabRef\r\n"] -[154.262465, "o", "\u001b[38;5;247m158:\u001b[0m \u001b[32mJinja2\u001b[0m\r\n"] -[154.277576, "o", "\u001b[38;5;247m159:\u001b[0m KAdventure\r\n"] -[154.296571, "o", "\u001b[38;5;247m160:\u001b[0m KKEdit\r\n"] -[154.310497, "o", "\u001b[38;5;247m161:\u001b[0m Kallithea\r\n"] -[154.323896, "o", "\u001b[38;5;247m162:\u001b[0m KeePass\r\n"] -[154.342139, "o", "\u001b[38;5;247m163:\u001b[0m KeePassHttp\r\n"] -[154.35618, "o", "\u001b[38;5;247m164:\u001b[0m \u001b[32mKivy\u001b[0m\r\n"] -[154.369745, "o", "\u001b[38;5;247m165:\u001b[0m KoboDeluxe\r\n"] -[154.383676, "o", "\u001b[38;5;247m166:\u001b[0m Kst\r\n"] -[154.398137, "o", "\u001b[38;5;247m167:\u001b[0m LDView\r\n"] -[154.412212, "o", "\u001b[38;5;247m168:\u001b[0m LDraw_data\r\n"] -[154.425706, "o", "\u001b[38;5;247m169:\u001b[0m LLgen\r\n"] -[154.439029, "o", "\u001b[38;5;247m170:\u001b[0m LOIC\r\n"] -[154.451849, "o", "\u001b[38;5;247m171:\u001b[0m LX-Colors-Revival\r\n"] -[154.464802, "o", "\u001b[38;5;247m172:\u001b[0m LX-Colors-themes\r\n"] -[154.47752, "o", "\u001b[38;5;247m173:\u001b[0m LanguageTool\r\n"] -[154.490618, "o", "\u001b[38;5;247m174:\u001b[0m LibreOffice\r\n"] -[154.503613, "o", "\u001b[38;5;247m175:\u001b[0m Logbook\r\n"] -[154.516441, "o", "\u001b[38;5;247m176:\u001b[0m LuaBitOp\r\n"] -[154.529684, "o", "\u001b[38;5;247m177:\u001b[0m LucenePlusPlus\r\n"] -[154.542531, "o", "\u001b[38;5;247m178:\u001b[0m MEGAsync\r\n"] -[154.555686, "o", "\u001b[38;5;247m179:\u001b[0m MP3Diags\r\n"] -[154.568504, "o", "\u001b[38;5;247m180:\u001b[0m Mako\r\n"] -[154.581566, "o", "\u001b[38;5;247m181:\u001b[0m \u001b[32mMarkdown\u001b[0m\r\n"] -[154.594748, "o", "\u001b[38;5;247m182:\u001b[0m \u001b[32mMarkupSafe\u001b[0m\r\n"] -[154.607571, "o", "\u001b[38;5;247m183:\u001b[0m Markups\r\n"] -[154.620869, "o", "\u001b[38;5;247m184:\u001b[0m MasterPDFEditor\r\n"] -[154.633674, "o", "\u001b[38;5;247m185:\u001b[0m MediathekView\r\n"] -[154.646788, "o", "\u001b[38;5;247m186:\u001b[0m MetaPhlAn2\r\n"] -[154.659536, "o", "\u001b[38;5;247m187:\u001b[0m Mk4tcl\r\n"] -[154.672612, "o", "\u001b[38;5;247m188:\u001b[0m Mnemosyne\r\n"] -[154.685841, "o", "\u001b[38;5;247m189:\u001b[0m MoarVM\r\n"] -[154.698748, "o", "\u001b[38;5;247m190:\u001b[0m Mopidy\r\n"] -[154.711928, "o", "\u001b[38;5;247m191:\u001b[0m MuseScore\r\n"] -[154.724808, "o", "\u001b[38;5;247m192:\u001b[0m MusicMixer\r\n"] -[154.737921, "o", "\u001b[38;5;247m193:\u001b[0m MyGUI\r\n"] -[154.750694, "o", "\u001b[38;5;247m194:\u001b[0m MySQL-Sandbox\r\n"] -[154.763556, "o", "\u001b[38;5;247m195:\u001b[0m MySQL-python\r\n"] -[154.776879, "o", "\u001b[38;5;247m196:\u001b[0m NME\r\n"] -[154.789744, "o", "\u001b[38;5;247m197:\u001b[0m Naked\r\n"] -[154.802922, "o", "\u001b[38;5;247m198:\u001b[0m Net-SSLeay\r\n"] -[154.815743, "o", "\u001b[38;5;247m199:\u001b[0m NetworkManager-l2tp\r\n"] -[154.828708, "o", "\u001b[38;5;247m200:\u001b[0m NetworkManager-openconnect\r\n"] -[154.841667, "o", "\u001b[38;5;247m201:\u001b[0m NetworkManager-openvpn\r\n"] -[154.854426, "o", "\u001b[38;5;247m202:\u001b[0m NetworkManager-pptp\r\n"] -[154.867689, "o", "\u001b[38;5;247m203:\u001b[0m NetworkManager-ssh\r\n"] -[154.880771, "o", "\u001b[38;5;247m204:\u001b[0m NetworkManager-vpnc\r\n\r\nPress \u001b[36mEnter\u001b[0m to continue... "] -[156.224082, "o", "\r\n"] -[156.224478, "o", "\r\n"] -[156.246442, "o", "\u001b[38;5;247m205:\u001b[0m Nevow\r\n"] -[156.261892, "o", "\u001b[38;5;247m206:\u001b[0m ORBit2\r\n"] -[156.277102, "o", "\u001b[38;5;247m207:\u001b[0m OSCAR\r\n"] -[156.291196, "o", "\u001b[38;5;247m208:\u001b[0m OTB\r\n"] -[156.30463, "o", "\u001b[38;5;247m209:\u001b[0m OWSLib\r\n"] -[156.317465, "o", "\u001b[38;5;247m210:\u001b[0m \u001b[32mOpenAL\u001b[0m\r\n"] -[156.333939, "o", "\u001b[38;5;247m211:\u001b[0m OpenBLAS\r\n"] -[156.34863, "o", "\u001b[38;5;247m212:\u001b[0m OpenCASCADE\r\n"] -[156.371616, "o", "\u001b[38;5;247m213:\u001b[0m OpenCSG\r\n"] -[156.394642, "o", "\u001b[38;5;247m214:\u001b[0m OpenCobolIDE\r\n"] -[156.417325, "o", "\u001b[38;5;247m215:\u001b[0m OpenFOAM\r\n"] -[156.430879, "o", "\u001b[38;5;247m216:\u001b[0m OpenJK\r\n"] -[156.443704, "o", "\u001b[38;5;247m217:\u001b[0m OpenLP\r\n"] -[156.456737, "o", "\u001b[38;5;247m218:\u001b[0m OpenPHT\r\n"] -[156.469584, "o", "\u001b[38;5;247m219:\u001b[0m OpenRA\r\n"] -[156.483322, "o", "\u001b[38;5;247m220:\u001b[0m OpenSceneGraph\r\n"] -[156.496655, "o", "\u001b[38;5;247m221:\u001b[0m OpenSubdiv\r\n"] -[156.51294, "o", "\u001b[38;5;247m222:\u001b[0m OpenXcom\r\n"] -[156.529389, "o", "\u001b[38;5;247m223:\u001b[0m PAC\r\n"] -[156.542202, "o", "\u001b[38;5;247m224:\u001b[0m PDCurses\r\n"] -[156.555037, "o", "\u001b[38;5;247m225:\u001b[0m PDFlib-Lite\r\n"] -[156.568137, "o", "\u001b[38;5;247m226:\u001b[0m Pafy\r\n"] -[156.58119, "o", "\u001b[38;5;247m227:\u001b[0m ParadisEO\r\n"] -[156.594433, "o", "\u001b[38;5;247m228:\u001b[0m Parsley\r\n"] -[156.607522, "o", "\u001b[38;5;247m229:\u001b[0m Paste\r\n"] -[156.620721, "o", "\u001b[38;5;247m230:\u001b[0m PasteDeploy\r\n"] -[156.633507, "o", "\u001b[38;5;247m231:\u001b[0m Paver\r\n"] -[156.64631, "o", "\u001b[38;5;247m232:\u001b[0m Pd-extended\r\n"] -[156.65938, "o", "\u001b[38;5;247m233:\u001b[0m PhpStorm\r\n"] -[156.672369, "o", "\u001b[38;5;247m234:\u001b[0m PhyML\r\n"] -[156.68549, "o", "\u001b[38;5;247m235:\u001b[0m Pivy\r\n"] -[156.698525, "o", "\u001b[38;5;247m236:\u001b[0m Pixie\r\n"] -[156.711629, "o", "\u001b[38;5;247m237:\u001b[0m PrettyTable\r\n"] -[156.72457, "o", "\u001b[38;5;247m238:\u001b[0m ProFont\r\n"] -[156.73758, "o", "\u001b[38;5;247m239:\u001b[0m ProjectLibre\r\n"] -[156.750326, "o", "\u001b[38;5;247m240:\u001b[0m Publican\r\n"] -[156.763787, "o", "\u001b[38;5;247m241:\u001b[0m \u001b[32mPulse-Glass\u001b[0m\r\n"] -[156.776698, "o", "\u001b[38;5;247m242:\u001b[0m PureRef\r\n"] -[156.790077, "o", "\u001b[38;5;247m243:\u001b[0m PyAMG\r\n"] -[156.802841, "o", "\u001b[38;5;247m244:\u001b[0m PyAudio\r\n"] -[156.815971, "o", "\u001b[38;5;247m245:\u001b[0m PyColorizer\r\n"] -[156.82877, "o", "\u001b[38;5;247m246:\u001b[0m PyDispatcher\r\n"] -[156.84165, "o", "\u001b[38;5;247m247:\u001b[0m PyGithub\r\n"] -[156.854898, "o", "\u001b[38;5;247m248:\u001b[0m \u001b[32mPyGreSQL\u001b[0m\r\n"] -[156.867812, "o", "\u001b[38;5;247m249:\u001b[0m PyInstaller\r\n"] -[156.881069, "o", "\u001b[38;5;247m250:\u001b[0m PyLotRO\r\n"] -[156.89384, "o", "\u001b[38;5;247m251:\u001b[0m PyMOL\r\n"] -[156.907142, "o", "\u001b[38;5;247m252:\u001b[0m PyODE\r\n"] -[156.919965, "o", "\u001b[38;5;247m253:\u001b[0m PyOpenGL\r\n"] -[156.932638, "o", "\u001b[38;5;247m254:\u001b[0m PyPDF2\r\n"] -[156.945811, "o", "\u001b[38;5;247m255:\u001b[0m PyPanel\r\n\r\nPress \u001b[36mEnter\u001b[0m to continue... "] -[159.299448, "o", "q"] -[159.717787, "o", "\r\n"] -[159.717921, "o", "\r\n"] -[159.741562, "o", "\u001b[?2004h"] -[159.85261, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[159.852682, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[162.007508, "o", "\u001b[H\u001b[2J"] -[162.140336, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[162.499733, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C"] -[162.500163, "o", "\u001b[49C \r\u001b[79C\r\u001b[30C\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[162.500461, "o", "\u001b[38;5;240mlpkg -l sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[162.593846, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -l sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[162.593979, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[162.641091, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -l sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[162.641475, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[162.826681, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -l sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[162.827073, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[162.928922, "o", "\u001b[38;5;196mg\u001b[38;5;240m -l sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[162.929161, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -l sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[163.146722, "o", "\u001b[K\u001b[45C \r\u001b[79C\r\u001b[34C\r\n\u001b[30m\u001b(B\u001b[m"] -[163.147141, "o", "\u001b[?2004l"] -[163.147844, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b"] -[163.14795, "o", "[m\r"] -[163.427808, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[163.428072, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[163.440886, "o", "\u001b[?2004h"] -[163.5388, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[163.538851, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[165.32749, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[165.328045, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[165.454241, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[165.454678, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[165.493999, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[165.494129, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[165.668142, "o", "\u001b[38;5;196mk\u001b[38;5;240mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[165.668267, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[166.4568, "o", "\u001b[38;5;196mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[166.457282, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[166.725539, "o", "\u001b[38;5;26m \u001b[44C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[166.72595, "o", "\u001b[44C \r\u001b[79C\r\u001b[35C\b \u001b[44C \r\u001b[79C\r\u001b[35C"] -[166.726047, "o", "\u001b[38;5;240m-l sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[166.819442, "o", "-\u001b[38;5;240ml sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[166.819853, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[166.820153, "o", "\b\u001b[38;5;39m-\u001b[38;5;240ml sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[167.355524, "o", "\u001b[38;5;39mr\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[167.355736, "o", "\u001b[38;5;240m Flask --deps\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[167.439476, "o", "\u001b[38;5;39me\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[41C \r\u001b[79C\r\u001b[38C"] -[167.439763, "o", "\u001b[41C \r\u001b[79C\r\u001b[38C"] -[167.538543, "o", "\u001b[38;5;39mp\u001b[40C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[167.538879, "o", "\u001b[40C \r\u001b[79C\r\u001b[39C"] -[167.601968, "o", "\u001b[38;5;39mo\u001b[39C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[167.602418, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[168.678074, "o", "\b\u001b[K\u001b[40C \r\u001b[79C\r\u001b[39C"] -[168.844709, "o", "\b\u001b[K\u001b[41C \r\u001b[79C\r\u001b[38C"] -[168.974242, "o", "\b\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[169.104197, "o", "\b\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C"] -[169.248693, "o", "\b\u001b[K\u001b[44C \r\u001b[79C\r\u001b[35C"] -[169.786829, "o", "r\u001b[43C \r\u001b[79C\r\u001b[36C"] -[169.787246, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C\u001b[38;5;240mepo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[169.787619, "o", "\b\u001b[38;5;39mr\u001b[38;5;240mepo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[169.880342, "o", "\u001b[38;5;39me\u001b[38;5;240mpo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[170.310724, "o", "\u001b[38;5;39mp\u001b[38;5;240mo-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[170.310871, "o", "\u001b[41C \r\u001b[79C\r\u001b[38C"] -[170.387174, "o", "\u001b[38;5;39mo\u001b[38;5;240m-enable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[170.387301, "o", "\u001b[40C \r\u001b[79C\r\u001b[39C"] -[171.12686, "o", "\u001b[38;5;39m-\u001b[38;5;240menable\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C\u001b[39C \r\u001b[79C\r\u001b[40C"] -[171.380881, "o", "\u001b[38;5;39ml\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[38C \r\u001b[79C\r\u001b[41C\u001b[38C \r\u001b[79C\r\u001b[41C"] -[171.381468, "o", "\u001b[38;5;240mist\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[171.544448, "o", "\u001b[38;5;39mi\u001b[38;5;240mst\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[171.544603, "o", "\u001b[37C \r\u001b[79C\r\u001b[42C"] -[171.66767, "o", "\u001b[38;5;39ms\u001b[38;5;240mt\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[171.667768, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C"] -[171.830658, "o", "\u001b[38;5;39mt\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C\u001b[35C \r\u001b[79C\r\u001b[44C"] -[172.214922, "o", "\u001b[35C \r\u001b[79C\r\u001b[44C\r\n\u001b[30m\u001b(B\u001b[m"] -[172.215348, "o", "\u001b[?2004l"] -[172.215913, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[172.49691, "o", "\r\n"] -[172.497297, "o", "+==============================================================================\r\n| Repo id Repo URL Default Status\r\n+==============================================================================\r\n alien http://bear.alienbase.nl/mirrors/people/alien/sb~ yes \u001b[32m enabled\u001b[0m\r\n connos https://connochaetos.org/slack-n-free/ yes \u001b[31mdisabled\u001b[0m\r\n conrad http://slack.conraid.net/repository/slackware64-~ yes \u001b[31mdisabled\u001b[0m\r\n csb http://slackware.uk/csb/ yes \u001b[31mdisabled\u001b[0m\r\n ktown http://alien.slackbook.org/ktown/ yes \u001b[31mdisabled\u001b[0m\r\n mles http://slackware.uk/microlinux/ yes \u001b[31mdisabled\u001b[0m\r\n msb http://slackware.org.uk/msb/ yes \u001b[31mdisabled\u001b[0m\r\n multi http://bear.alienbase.nl/mirrors/people/alien/mu~ yes \u001b[31mdisabled\u001b[0m\r\n rested http://bear.alienbase.nl/mirrors/people/alien/re~ "] -[172.497326, "o", " yes \u001b[31mdisabled\u001b[0m\r\n rlw http://slackware.uk/people/rlworkman/ yes \u001b[31mdisabled\u001b[0m\r\n salix http://download.salixos.org/ yes \u001b[31mdisabled\u001b[0m\r\n sbo http://slackbuilds.org/slackbuilds/ yes \u001b[32m enabled\u001b[0m\r\n slack https://ftp.nluug.nl/os/Linux/distr/slackware/ yes \u001b[32m enabled\u001b[0m\r\n slacke http://ngc891.blogdns.net/pub/ yes \u001b[31mdisabled\u001b[0m\r\n slackl http://www.slackel.gr/repo/ yes \u001b[31mdisabled\u001b[0m\r\n slacky http://repository.slacky.eu/ yes \u001b[31mdisabled\u001b[0m\r\n slonly https://slackonly.com/pub/packages/ yes \u001b[31mdisabled\u001b[0m\r\n\r\nRepositories summary\r\n===============================================================================\r\n\u001b[38;5;247m3/17 enabled default repositories and 0 custom.\r\nEdit the file '/etc/slpkg/repositories.conf' for enable and disable default\r\nrepositories or run 'slpkg repo-e"] -[172.497342, "o", "nable' command.\r\n\u001b[0m\r\n"] -[172.513518, "o", "\u001b[?2004h"] -[172.620064, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[172.620117, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K"] -[172.620248, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[184.556275, "o", "\u001b[H\u001b[2J"] -[184.68496, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[184.685008, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[185.055149, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[185.055534, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg repo-list\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[185.134003, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg repo-list\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[185.197575, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg repo-list\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[185.198039, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[185.36161, "o", "\u001b[38;5;196mk\u001b[38;5;240mg repo-list\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[185.361781, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[185.466387, "o", "\u001b[38;5;196mg\u001b[38;5;240m repo-list\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[185.466485, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m repo-list\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[185.911074, "o", "\u001b[38;5;26m \u001b[38;5;240mrepo-list\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[185.911441, "o", "\b \u001b[38;5;240mrepo-list\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[186.009821, "o", "-\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C"] -[186.010161, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[186.010514, "o", "\u001b[38;5;240ml sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[186.010774, "o", "\b\u001b[38;5;39m-\u001b[38;5;240ml sbo --installed --index\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[188.003757, "o", "\u001b[38;5;39mn\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[188.003899, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[188.004067, "o", "\u001b[38;5;240m docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[191.288441, "o", "\u001b[38;5;39m \u001b[38;5;240mdocutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C\u001b[41C \r\u001b[79C\r\u001b[38C"] -[191.289162, "o", "\b \u001b[38;5;240mdocutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[191.70114, "o", "d\u001b[38;5;240mocutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[191.701279, "o", "\b\u001b[38;5;39md\u001b[38;5;240mocutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[191.800544, "o", "\u001b[38;5;39mo\u001b[38;5;240mcutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[191.800824, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[191.99181, "o", "\u001b[38;5;39mc\u001b[38;5;240mutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C\u001b[38C \r\u001b[79C\r\u001b[41C"] -[192.425078, "o", "\u001b[38;5;39mu\u001b[38;5;240mtils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C\u001b[37C \r\u001b[79C\r\u001b[42C"] -[192.588761, "o", "\u001b[38;5;39mt\u001b[38;5;240mils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[192.58893, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C"] -[192.738537, "o", "\u001b[38;5;39mi\u001b[38;5;240mls\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[192.738694, "o", "\u001b[35C \r\u001b[79C\r\u001b[44C"] -[192.937865, "o", "\u001b[38;5;39ml\u001b[38;5;240ms\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C\u001b[34C \r\u001b[79C\r\u001b[45C"] -[193.040695, "o", "\u001b[38;5;39ms\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C\u001b[33C \r\u001b[79C\r\u001b[46C"] -[193.582317, "o", "\u001b[33C \r\u001b[79C\r\u001b[46C\r\n\u001b[30m\u001b(B\u001b[m"] -[193.582694, "o", "\u001b[?2004l"] -[193.583182, "o", "\u001b]0;slpkg /home/dsl"] -[193.583491, "o", "ackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[193.897451, "o", "\u001b[38;5;247mReading package lists...\u001b[0m "] -[194.079334, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n"] -[194.079974, "o", "\r\n+==============================================================================\r\n| \u001b[38;5;247mSlackBuilds Repository\u001b[0m\r\n+==============================================================================\r\n"] -[194.080113, "o", "| 14.2 > Development > \u001b[36mdocutils\u001b[0m\r\n+==============================================================================\r\n| \u001b[32mPackage url\u001b[0m: http://slackbuilds.org/repository/14.2/development/docutils/\r\n+==============================================================================\r\n| \u001b[32mDescription: \u001b[0mPython Document Utilities module\r\n| \u001b[32mSlackBuild: \u001b[0mdocutils.tar.gz\r\n| \u001b[32mSources: \u001b[0mdocutils-0.14.tar.gz\r\n| \u001b[33mRequirements: \u001b[0mpython3\r\n+==============================================================================\r\n| \u001b[31mR\u001b[0mEADME View the README file\r\n| \u001b[31mS\u001b[0mlackBuild View the .SlackBuild file\r\n| In\u001b[31mf\u001b[0mo View the .info file\r\n| \u001b[31mD\u001b[0mownload Download this package\r\n| \u001b[31mB\u001b[0muild Download and build\r\n| \u001b[31mI\u001b[0mnstall Download/Build/Install\r\n| \u001b[31mC\u001b[0mlear Clear screen\r\n| \u001b[31mQ\u001b[0muit Quit\r\n+================================================================="] -[194.080174, "o", "=============\r\n\u001b[38;5;247m Choose an option > \u001b[0m"] -[195.68881, "o", "s"] -[196.02108, "o", "\r\n"] -[196.02127, "o", " \u001b[1A\u001b[36mdocutils.SlackBuild\u001b[0m\r\n"] -[197.072635, "o", "\u001b[?1049h\u001b[?1h\u001b=\r"] -[197.073001, "o", "#!/bin/sh\r\n\r\n# Slackware build script for docutils\r\n\r\n# Copyright 2006-2019 Robby Workman Tuscaloosa, AL, USA\r\n# All rights reserved.\r\n#\r\n# Redistribution and use of this script, with or without modification, is\r\n# permitted provided that the following conditions are met:\r\n#\r\n# 1. Redistributions of this script must retain the above copyright\r\n# notice, this list of conditions and the following disclaimer.\r\n#\r\n# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED\r\n# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r\n# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\r\n# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r\n# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r\n# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r\n# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIG"] -[197.073034, "o", "ENCE OR\r\n# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r\n# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n\r\nPRGNAM=docutils\r\nVERSION=${VERSION:-0.14}\r\nBUILD=${BUILD:-1}\r\nTAG=${TAG:-_SBo}\r\n\r\nif [ -z \"$ARCH\" ]; then\r\n case \"$( uname -m )\" in\r\n i?86) ARCH=i586 ;;\r\n arm*) ARCH=arm ;;\r\n *) ARCH=$( uname -m ) ;;\r\n esac\r\nfi\r\n\r\nCWD=$(pwd)\r\nTMP=${TMP:-/tmp/SBo}\r\nPKG=$TMP/package-$PRGNAM\r\nOUTPUT=${OUTPUT:-/tmp}\r\n\r\nset -e\r\n\r\nrm -rf $PKG\r\nmkdir -p $TMP $PKG $OUTPUT\r\ncd $TMP\r\nrm -rf $PRGNAM-$VERSION\r\ntar xvf $CWD/$PRGNAM-$VERSION.tar.gz\r\ncd $PRGNAM-$VERSION\r\nchown -R root:root .\r\nfind -L . \\\r\n\u001b[7mlines 1-52\u001b[27m\u001b[K"] -[198.223245, "o", "\r\u001b[K \u001b[KESC\b\b\bESC\u001b[K[\b[\u001b[K6\b6\u001b[K~\b~\r\u001b[K"] -[198.223437, "o", " \\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \\ \b) \\\r\n -exec chmod 755 {} \\; -o \\\r\n \\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \\ \b) \\\r\n -exec chmod 644 {} \\;\r\n\r\npython setup.py install --root=$PKG\r\n2to3 --write --no-diffs docutils\r\npython3 setup.py install --root=$PKG\r\n\r\nfind $PKG -print0 | xargs -0 file | grep -e \"executable\" -e \"shared object\" | \\\r\n grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true\r\n\r\nmkdir -p $PKG/usr/doc/$PRGNAM-$VERSION\r\ncp -a *.txt PKG-INFO $PKG/usr/doc/$PRGNAM-$VERSION\r\ncat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild\r\n\r\nmkdir -p $PKG/install\r\ncat $CWD/slack-desc > $PKG/install/slack-desc\r\n\r\ncd $PKG\r\n/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz \b}\r\n\u001b[7mlines 25-73/73 (END)\u001b[27m\u001b[K"] -[199.169836, "o", "\r\u001b[K \u001b[KESC\b\b\bESC\u001b[K[\b[\u001b[K6\b6\u001b[K~\b~\r\u001b[K\u0007\r\u001b[K\u001b[7mlines 25-73/73 (END)\u001b[27m\u001b[K"] -[200.813667, "o", "\r\u001b[K \u001b[KESC\b\b\bESC\u001b[K[\b[\u001b[K5\b5\u001b[K~\b~\r\u001b[K"] -[200.814015, "o", "\u001b[H\u001bM\r\n\u001b[H\u001bM# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n\u001b[H\u001bM# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r\n\u001b[H\u001bM# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r\n\u001b[H\u001bM# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r\n\u001b[H\u001bM# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r\n\u001b[H\u001bM# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r\n\u001b[H\u001bM# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r\n\u001b[H\u001bM# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\r\n\u001b[H\u001bM# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r\n\u001b[H\u001bM# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED\r\n\u001b[H\u001bM#\r\n\u001b[H\u001bM# notice, this list of conditions and the following disclaimer.\r\n\u001b[H\u001bM# 1. Redistributions of this script must retain the above copyright\r\n\u001b[H\u001bM#\r\n\u001b[H\u001bM# permitted provided that the following conditions are met:\r\n\u001b[H\u001b"] -[200.814103, "o", "M# Redistribution and use of this script, with or without modification, is\r\n\u001b[H\u001bM#\r\n\u001b[H\u001bM# All rights reserved.\r\n\u001b[H\u001bM# Copyright 2006-2019 Robby Workman Tuscaloosa, AL, USA\r\n\u001b[H\u001bM\r\n\u001b[H\u001bM# Slackware build script for docutils\r\n\u001b[H\u001bM\r\n\u001b[H\u001bM#!/bin/sh\r\n\u001b[53;1H\r\u001b[K\u001b[7mlines 1-52/73 66%\u001b[27m\u001b[K"] -[201.889069, "o", "\r\u001b[K\u001b[?1l\u001b>\u001b[?1049l"] -[201.889878, "o", "\u001b[38;5;247m Choose an option > \u001b[0m"] -[203.971565, "o", "f"] -[204.072747, "o", "\r\n"] -[204.072909, "o", " \u001b[1A\u001b[36mdocutils.info\u001b[0m\r\n"] -[204.949347, "o", "\u001b[?1049h\u001b[?1h\u001b=\rPRGNAM=\"docutils\"\r\nVERSION=\"0.14\"\r\nHOMEPAGE=\"http://docutils.sourceforge.net\"\r\nDOWNLOAD=\"http://downloads.sourceforge.net/docutils/docutils-0.14.tar.gz\"\r\nMD5SUM=\"c53768d63db3873b7d452833553469de\"\r\nDOWNLOAD_x86_64=\"\"\r\nMD5SUM_x86_64=\"\"\r\nREQUIRES=\"python3\"\r\nMAINTAINER=\"Robby Workman\"\r\nEMAIL=\"rworkman@slackbuilds.org\"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"] -[204.9494, "o", "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[7mlines 1-52\u001b[27m\u001b[K"] -[206.809328, "o", "\r\u001b[K\u001b[?1l\u001b>\u001b[?1049l"] -[206.809708, "o", "\u001b[38;5;247m Choose an option > \u001b[0m"] -[212.211311, "o", "b"] -[212.51796, "o", "\r\n"] -[212.518183, "o", " \u001b[1A\u001b[36mbuild\u001b[0m\r\n"] -[212.518472, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> docutils.tar.gz\r\n\r\n"] -[212.523951, "o", "--2019-12-03 19:19:55-- http://slackbuilds.org/slackbuilds/14.2/development/docutils.tar.gz\r\nResolving slackbuilds.org... "] -[213.023757, "o", "208.94.237.149\r\nConnecting to slackbuilds.org|208.94.237.149|:80... "] -[213.226853, "o", "connected.\r\nHTTP request sent, awaiting response... "] -[213.396367, "o", "200 OK\r\nLength: 2235 (2.2K) [application/x-gzip]\r\n"] -[213.396799, "o", "Saving to: ‘/tmp/slpkg/build/docutils.tar.gz’\r\n\r\n"] -[213.39759, "o", "\rdocutils.tar.gz 0%[ ] 0 --.-KB/s \rdocutils.tar.gz 100%[===================>] 2.18K --.-KB/s in 0s \r\n\r\n"] -[213.397957, "o", "2019-12-03 19:19:56 (117 MB/s) - ‘/tmp/slpkg/build/docutils.tar.gz’ saved [2235/2235]\r\n\r\n"] -[213.39917, "o", "\r\n[1/1][ \u001b[32mDownload\u001b[0m ] --> docutils-0.14.tar.gz\r\n\r\n"] -[213.409616, "o", "--2019-12-03 19:19:56-- http://downloads.sourceforge.net/docutils/docutils-0.14.tar.gz\r\nResolving downloads.sourceforge.net... "] -[213.90575, "o", "216.105.38.13\r\nConnecting to downloads.sourceforge.net|216.105.38.13|:80... "] -[214.145547, "o", "connected.\r\nHTTP request sent, awaiting response... "] -[214.361867, "o", "301 Moved Permanently\r\nLocation: http://downloads.sourceforge.net/project/docutils/docutils/0.14/docutils-0.14.tar.gz [following]\r\n"] -[214.36202, "o", "--2019-12-03 19:19:57-- http://downloads.sourceforge.net/project/docutils/docutils/0.14/docutils-0.14.tar.gz\r\n"] -[214.362531, "o", "Reusing existing connection to downloads.sourceforge.net:80.\r\nHTTP request sent, awaiting response... "] -[214.580078, "o", "302 Found\r\nLocation: https://vorboss.dl.sourceforge.net/project/docutils/docutils/0.14/docutils-0.14.tar.gz [following]\r\n"] -[214.580138, "o", "--2019-12-03 19:19:57-- https://vorboss.dl.sourceforge.net/project/docutils/docutils/0.14/docutils-0.14.tar.gz\r\n"] -[214.581813, "o", "Resolving vorboss.dl.sourceforge.net... "] -[215.085721, "o", "5.10.152.194\r\nConnecting to vorboss.dl.sourceforge.net|5.10.152.194|:443... "] -[222.24032, "o", "connected.\r\n"] -[252.216277, "o", "HTTP request sent, awaiting response... "] -[252.282887, "o", "304 Not Modified\r\nFile ‘/tmp/slpkg/build/_SOURCES/docutils-0.14.tar.gz’ not modified on server. Omitting download.\r\n\r\n"] -[252.35866, "o", "\r\n"] -[252.365877, "o", "+==============================================================================\r\n| MD5SUM check for docutils-0.14.tar.gz [ \u001b[32mPASSED\u001b[0m ]\r\n+==============================================================================\r\n"] -[252.365994, "o", "\r\n"] -[252.432422, "o", "docutils-0.14/\r\ndocutils-0.14/BUGS.txt\r\ndocutils-0.14/COPYING.txt\r\n"] -[252.432618, "o", "docutils-0.14/docs/\r\ndocutils-0.14/docs/api/\r\ndocutils-0.14/docs/api/cmdline-tool.txt\r\ndocutils-0.14/docs/api/publisher.txt\r\ndocutils-0.14/docs/api/runtime-settings.txt\r\ndocutils-0.14/docs/dev/\r\ndocutils-0.14/docs/dev/distributing.txt\r\ndocutils-0.14/docs/dev/enthought-plan.txt\r\ndocutils-0.14/docs/dev/enthought-rfp.txt\r\ndocutils-0.14/docs/dev/hacking.txt\r\ndocutils-0.14/docs/dev/policies.txt\r\n"] -[252.432679, "o", "docutils-0.14/docs/dev/pysource.dtd\r\n"] -[252.432776, "o", "docutils-0.14/docs/dev/pysource.txt\r\ndocutils-0.14/docs/dev/release.txt\r\n"] -[252.432904, "o", "docutils-0.14/docs/dev/repository.txt\r\n"] -[252.433034, "o", "docutils-0.14/docs/dev/rst/\r\ndocutils-0.14/docs/dev/rst/alternatives.txt\r\n"] -[252.433478, "o", "docutils-0.14/docs/dev/rst/problems.txt\r\n"] -[252.433692, "o", "docutils-0.14/docs/dev/semantics.txt\r\n"] -[252.433881, "o", "docutils-0.14/docs/dev/testing.txt\r\n"] -[252.433946, "o", "docutils-0.14/docs/dev/todo.txt\r\n"] -[252.434522, "o", "docutils-0.14/docs/dev/website.txt\r\n"] -[252.434543, "o", "docutils-0.14/docs/dev/wheeling.txt\r\n"] -[252.434564, "o", "docutils-0.14/docs/howto/\r\n"] -[252.434627, "o", "docutils-0.14/docs/howto/html-stylesheets.txt\r\ndocutils-0.14/docs/howto/i18n.txt\r\n"] -[252.434781, "o", "docutils-0.14/docs/howto/rst-directives.txt\r\n"] -[252.434828, "o", "docutils-0.14/docs/howto/rst-roles.txt\r\n"] -[252.434924, "o", "docutils-0.14/docs/howto/security.txt\r\n"] -[252.434963, "o", "docutils-0.14/docs/index.txt\r\n"] -[252.435003, "o", "docutils-0.14/docs/peps/\r\ndocutils-0.14/docs/peps/pep-0256.txt\r\n"] -[252.435039, "o", "docutils-0.14/docs/peps/pep-0257.txt\r\n"] -[252.435147, "o", "docutils-0.14/docs/peps/pep-0258.txt\r\n"] -[252.435353, "o", "docutils-0.14/docs/peps/pep-0287.txt\r\n"] -[252.435539, "o", "docutils-0.14/docs/ref/\r\n"] -[252.435574, "o", "docutils-0.14/docs/ref/doctree.txt\r\n"] -[252.436073, "o", "docutils-0.14/docs/ref/docutils.dtd\r\n"] -[252.436249, "o", "docutils-0.14/docs/ref/rst/\r\ndocutils-0.14/docs/ref/rst/definitions.txt\r\ndocutils-0.14/docs/ref/rst/directives.txt\r\n"] -[252.436621, "o", "docutils-0.14/docs/ref/rst/introduction.txt\r\n"] -[252.436909, "o", "docutils-0.14/docs/ref/rst/restructuredtext.txt\r\n"] -[252.437509, "o", "docutils-0.14/docs/ref/rst/roles.txt\r\ndocutils-0.14/docs/ref/soextblx.dtd\r\n"] -[252.437762, "o", "docutils-0.14/docs/ref/transforms.txt\r\ndocutils-0.14/docs/user/\r\ndocutils-0.14/docs/user/config.txt\r\n"] -[252.438108, "o", "docutils-0.14/docs/user/docutils-05-compat.sty.txt\r\ndocutils-0.14/docs/user/emacs.txt\r\n"] -[252.438546, "o", "docutils-0.14/docs/user/html.txt\r\n"] -[252.438617, "o", "docutils-0.14/docs/user/images/\r\ndocutils-0.14/docs/user/images/big-black.png\r\n"] -[252.438827, "o", "docutils-0.14/docs/user/images/big-white.png\r\n"] -[252.438856, "o", "docutils-0.14/docs/user/images/default.png\r\n"] -[252.439375, "o", "docutils-0.14/docs/user/images/happy_monkey.png\r\ndocutils-0.14/docs/user/images/medium-black.png\r\n"] -[252.439579, "o", "docutils-0.14/docs/user/images/medium-white.png\r\n"] -[252.439888, "o", "docutils-0.14/docs/user/images/rsp-all.png\r\n"] -[252.440145, "o", "docutils-0.14/docs/user/images/rsp-breaks.png\r\n"] -[252.44041, "o", "docutils-0.14/docs/user/images/rsp-covers.png\r\ndocutils-0.14/docs/user/images/rsp-cuts.png\r\n"] -[252.440567, "o", "docutils-0.14/docs/user/images/rsp-empty.png\r\n"] -[252.440618, "o", "docutils-0.14/docs/user/images/rsp-objects.png\r\n"] -[252.440748, "o", "docutils-0.14/docs/user/images/rsp.svg\r\n"] -[252.441, "o", "docutils-0.14/docs/user/images/s5-files.png\r\n"] -[252.441206, "o", "docutils-0.14/docs/user/images/s5-files.svg\r\n"] -[252.441349, "o", "docutils-0.14/docs/user/images/small-black.png\r\n"] -[252.44189, "o", "docutils-0.14/docs/user/images/small-white.png\r\n"] -[252.442135, "o", "docutils-0.14/docs/user/latex.txt\r\n"] -[252.442553, "o", "docutils-0.14/docs/user/links.txt\r\ndocutils-0.14/docs/user/mailing-lists.txt\r\n"] -[252.442672, "o", "docutils-0.14/docs/user/Makefile.docutils-update\r\ndocutils-0.14/docs/user/manpage.txt\r\n"] -[252.442778, "o", "docutils-0.14/docs/user/odt.txt\r\n"] -[252.442971, "o", "docutils-0.14/docs/user/rst/\r\ndocutils-0.14/docs/user/rst/cheatsheet.txt\r\n"] -[252.443012, "o", "docutils-0.14/docs/user/rst/demo.txt\r\n"] -[252.443172, "o", "docutils-0.14/docs/user/rst/images/\r\n"] -[252.443218, "o", "docutils-0.14/docs/user/rst/images/biohazard-bitmap-scaling.svg\r\ndocutils-0.14/docs/user/rst/images/biohazard-bitmap.svg\r\n"] -[252.443262, "o", "docutils-0.14/docs/user/rst/images/biohazard-scaling.svg\r\n"] -[252.443303, "o", "docutils-0.14/docs/user/rst/images/biohazard.png\r\ndocutils-0.14/docs/user/rst/images/biohazard.svg\r\ndocutils-0.14/docs/user/rst/images/biohazard.swf\r\n"] -[252.443343, "o", "docutils-0.14/docs/user/rst/images/title-scaling.svg\r\n"] -[252.44336, "o", "docutils-0.14/docs/user/rst/images/title.png\r\n"] -[252.443412, "o", "docutils-0.14/docs/user/rst/images/title.svg\r\ndocutils-0.14/docs/user/rst/quickref.html\r\n"] -[252.4435, "o", "docutils-0.14/docs/user/rst/quickstart.txt\r\n"] -[252.443751, "o", "docutils-0.14/docs/user/slide-shows.txt\r\n"] -[252.443802, "o", "docutils-0.14/docs/user/smartquotes.txt\r\n"] -[252.443897, "o", "docutils-0.14/docs/user/tools.txt\r\n"] -[252.443929, "o", "docutils-0.14/docutils/\r\n"] -[252.443967, "o", "docutils-0.14/docutils/__init__.py\r\n"] -[252.444055, "o", "docutils-0.14/docutils/_compat.py\r\n"] -[252.444098, "o", "docutils-0.14/docutils/core.py\r\n"] -[252.444228, "o", "docutils-0.14/docutils/docutils.conf\r\n"] -[252.444273, "o", "docutils-0.14/docutils/examples.py\r\ndocutils-0.14/docutils/frontend.py\r\n"] -[252.444419, "o", "docutils-0.14/docutils/io.py\r\n"] -[252.444473, "o", "docutils-0.14/docutils/languages/\r\ndocutils-0.14/docutils/languages/__init__.py\r\n"] -[252.444543, "o", "docutils-0.14/docutils/languages/af.py\r\n"] -[252.444582, "o", "docutils-0.14/docutils/languages/ca.py\r\ndocutils-0.14/docutils/languages/cs.py\r\n"] -[252.444627, "o", "docutils-0.14/docutils/languages/da.py\r\ndocutils-0.14/docutils/languages/de.py\r\n"] -[252.444672, "o", "docutils-0.14/docutils/languages/en.py\r\ndocutils-0.14/docutils/languages/eo.py\r\n"] -[252.444718, "o", "docutils-0.14/docutils/languages/es.py\r\ndocutils-0.14/docutils/languages/fa.py\r\n"] -[252.444767, "o", "docutils-0.14/docutils/languages/fi.py\r\ndocutils-0.14/docutils/languages/fr.py\r\n"] -[252.444807, "o", "docutils-0.14/docutils/languages/gl.py\r\ndocutils-0.14/docutils/languages/he.py\r\n"] -[252.444848, "o", "docutils-0.14/docutils/languages/it.py\r\n"] -[252.44489, "o", "docutils-0.14/docutils/languages/ja.py\r\ndocutils-0.14/docutils/languages/lt.py\r\n"] -[252.444911, "o", "docutils-0.14/docutils/languages/lv.py\r\n"] -[252.444968, "o", "docutils-0.14/docutils/languages/nl.py\r\ndocutils-0.14/docutils/languages/pl.py\r\ndocutils-0.14/docutils/languages/pt_br.py\r\n"] -[252.445017, "o", "docutils-0.14/docutils/languages/ru.py\r\ndocutils-0.14/docutils/languages/sk.py\r\n"] -[252.445065, "o", "docutils-0.14/docutils/languages/sv.py\r\ndocutils-0.14/docutils/languages/zh_cn.py\r\ndocutils-0.14/docutils/languages/zh_tw.py\r\n"] -[252.445123, "o", "docutils-0.14/docutils/nodes.py\r\n"] -[252.445269, "o", "docutils-0.14/docutils/parsers/\r\n"] -[252.445314, "o", "docutils-0.14/docutils/parsers/__init__.py\r\ndocutils-0.14/docutils/parsers/null.py\r\n"] -[252.445334, "o", "docutils-0.14/docutils/parsers/rst/\r\ndocutils-0.14/docutils/parsers/rst/__init__.py\r\n"] -[252.445421, "o", "docutils-0.14/docutils/parsers/rst/directives/\r\n"] -[252.445471, "o", "docutils-0.14/docutils/parsers/rst/directives/__init__.py\r\ndocutils-0.14/docutils/parsers/rst/directives/admonitions.py\r\n"] -[252.445514, "o", "docutils-0.14/docutils/parsers/rst/directives/body.py\r\n"] -[252.445579, "o", "docutils-0.14/docutils/parsers/rst/directives/html.py\r\n"] -[252.445639, "o", "docutils-0.14/docutils/parsers/rst/directives/images.py\r\ndocutils-0.14/docutils/parsers/rst/directives/misc.py\r\n"] -[252.44574, "o", "docutils-0.14/docutils/parsers/rst/directives/parts.py\r\n"] -[252.445789, "o", "docutils-0.14/docutils/parsers/rst/directives/references.py\r\ndocutils-0.14/docutils/parsers/rst/directives/tables.py\r\n"] -[252.445896, "o", "docutils-0.14/docutils/parsers/rst/include/\r\n"] -[252.445948, "o", "docutils-0.14/docutils/parsers/rst/include/isoamsa.txt\r\n"] -[252.445987, "o", "docutils-0.14/docutils/parsers/rst/include/isoamsb.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isoamsc.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isoamsn.txt\r\n"] -[252.446056, "o", "docutils-0.14/docutils/parsers/rst/include/isoamso.txt\r\n"] -[252.446103, "o", "docutils-0.14/docutils/parsers/rst/include/isoamsr.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isobox.txt\r\n"] -[252.446152, "o", "docutils-0.14/docutils/parsers/rst/include/isocyr1.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isocyr2.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isodia.txt\r\n"] -[252.4462, "o", "docutils-0.14/docutils/parsers/rst/include/isogrk1.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isogrk2.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isogrk3.txt\r\n"] -[252.446239, "o", "docutils-0.14/docutils/parsers/rst/include/isogrk4-wide.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isogrk4.txt\r\n"] -[252.446275, "o", "docutils-0.14/docutils/parsers/rst/include/isolat1.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isolat2.txt\r\n"] -[252.44631, "o", "docutils-0.14/docutils/parsers/rst/include/isomfrk-wide.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isomfrk.txt\r\n"] -[252.446345, "o", "docutils-0.14/docutils/parsers/rst/include/isomopf-wide.txt\r\n"] -[252.446381, "o", "docutils-0.14/docutils/parsers/rst/include/isomopf.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isomscr-wide.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isomscr.txt\r\n"] -[252.446416, "o", "docutils-0.14/docutils/parsers/rst/include/isonum.txt\r\ndocutils-0.14/docutils/parsers/rst/include/isopub.txt\r\n"] -[252.44645, "o", "docutils-0.14/docutils/parsers/rst/include/isotech.txt\r\ndocutils-0.14/docutils/parsers/rst/include/mmlalias.txt\r\n"] -[252.446634, "o", "docutils-0.14/docutils/parsers/rst/include/mmlextra-wide.txt\r\n"] -[252.446671, "o", "docutils-0.14/docutils/parsers/rst/include/mmlextra.txt\r\n"] -[252.446775, "o", "docutils-0.14/docutils/parsers/rst/include/README.txt\r\n"] -[252.446811, "o", "docutils-0.14/docutils/parsers/rst/include/s5defs.txt\r\ndocutils-0.14/docutils/parsers/rst/include/xhtml1-lat1.txt\r\n"] -[252.446846, "o", "docutils-0.14/docutils/parsers/rst/include/xhtml1-special.txt\r\ndocutils-0.14/docutils/parsers/rst/include/xhtml1-symbol.txt\r\n"] -[252.44688, "o", "docutils-0.14/docutils/parsers/rst/languages/\r\ndocutils-0.14/docutils/parsers/rst/languages/__init__.py\r\n"] -[252.446914, "o", "docutils-0.14/docutils/parsers/rst/languages/af.py\r\ndocutils-0.14/docutils/parsers/rst/languages/ca.py\r\n"] -[252.446948, "o", "docutils-0.14/docutils/parsers/rst/languages/cs.py\r\ndocutils-0.14/docutils/parsers/rst/languages/da.py\r\n"] -[252.446981, "o", "docutils-0.14/docutils/parsers/rst/languages/de.py\r\ndocutils-0.14/docutils/parsers/rst/languages/en.py\r\n"] -[252.447015, "o", "docutils-0.14/docutils/parsers/rst/languages/eo.py\r\ndocutils-0.14/docutils/parsers/rst/languages/es.py\r\n"] -[252.447049, "o", "docutils-0.14/docutils/parsers/rst/languages/fa.py\r\n"] -[252.447084, "o", "docutils-0.14/docutils/parsers/rst/languages/fi.py\r\ndocutils-0.14/docutils/parsers/rst/languages/fr.py\r\n"] -[252.447118, "o", "docutils-0.14/docutils/parsers/rst/languages/gl.py\r\ndocutils-0.14/docutils/parsers/rst/languages/he.py\r\n"] -[252.447151, "o", "docutils-0.14/docutils/parsers/rst/languages/it.py\r\ndocutils-0.14/docutils/parsers/rst/languages/ja.py\r\n"] -[252.447185, "o", "docutils-0.14/docutils/parsers/rst/languages/lt.py\r\ndocutils-0.14/docutils/parsers/rst/languages/lv.py\r\ndocutils-0.14/docutils/parsers/rst/languages/nl.py\r\n"] -[252.447219, "o", "docutils-0.14/docutils/parsers/rst/languages/pl.py\r\ndocutils-0.14/docutils/parsers/rst/languages/pt_br.py\r\n"] -[252.447252, "o", "docutils-0.14/docutils/parsers/rst/languages/ru.py\r\n"] -[252.447287, "o", "docutils-0.14/docutils/parsers/rst/languages/sk.py\r\ndocutils-0.14/docutils/parsers/rst/languages/sv.py\r\ndocutils-0.14/docutils/parsers/rst/languages/zh_cn.py\r\n"] -[252.44732, "o", "docutils-0.14/docutils/parsers/rst/languages/zh_tw.py\r\n"] -[252.447382, "o", "docutils-0.14/docutils/parsers/rst/roles.py\r\n"] -[252.447417, "o", "docutils-0.14/docutils/parsers/rst/states.py\r\n"] -[252.448029, "o", "docutils-0.14/docutils/parsers/rst/tableparser.py\r\n"] -[252.448189, "o", "docutils-0.14/docutils/readers/\r\n"] -[252.448228, "o", "docutils-0.14/docutils/readers/__init__.py\r\n"] -[252.448268, "o", "docutils-0.14/docutils/readers/doctree.py\r\ndocutils-0.14/docutils/readers/pep.py\r\n"] -[252.448305, "o", "docutils-0.14/docutils/readers/standalone.py\r\ndocutils-0.14/docutils/statemachine.py\r\n"] -[252.448527, "o", "docutils-0.14/docutils/transforms/\r\n"] -[252.448562, "o", "docutils-0.14/docutils/transforms/__init__.py\r\ndocutils-0.14/docutils/transforms/components.py\r\n"] -[252.448596, "o", "docutils-0.14/docutils/transforms/frontmatter.py\r\n"] -[252.448695, "o", "docutils-0.14/docutils/transforms/misc.py\r\n"] -[252.448731, "o", "docutils-0.14/docutils/transforms/parts.py\r\ndocutils-0.14/docutils/transforms/peps.py\r\n"] -[252.448845, "o", "docutils-0.14/docutils/transforms/references.py\r\n"] -[252.449125, "o", "docutils-0.14/docutils/transforms/universal.py\r\n"] -[252.449163, "o", "docutils-0.14/docutils/transforms/writer_aux.py\r\ndocutils-0.14/docutils/utils/\r\n"] -[252.449198, "o", "docutils-0.14/docutils/utils/__init__.py\r\n"] -[252.449245, "o", "docutils-0.14/docutils/utils/code_analyzer.py\r\n"] -[252.44928, "o", "docutils-0.14/docutils/utils/error_reporting.py\r\n"] -[252.449398, "o", "docutils-0.14/docutils/utils/math/\r\n"] -[252.449432, "o", "docutils-0.14/docutils/utils/math/__init__.py\r\ndocutils-0.14/docutils/utils/math/latex2mathml.py\r\n"] -[252.449467, "o", "docutils-0.14/docutils/utils/math/math2html.py\r\n"] -[252.45047, "o", "docutils-0.14/docutils/utils/math/tex2mathml_extern.py\r\n"] -[252.450508, "o", "docutils-0.14/docutils/utils/math/tex2unichar.py\r\n"] -[252.450709, "o", "docutils-0.14/docutils/utils/math/unichar2tex.py\r\n"] -[252.450975, "o", "docutils-0.14/docutils/utils/punctuation_chars.py\r\ndocutils-0.14/docutils/utils/roman.py\r\ndocutils-0.14/docutils/utils/smartquotes.py\r\n"] -[252.451099, "o", "docutils-0.14/docutils/utils/urischemes.py\r\n"] -[252.451159, "o", "docutils-0.14/docutils/writers/\r\ndocutils-0.14/docutils/writers/__init__.py\r\n"] -[252.451267, "o", "docutils-0.14/docutils/writers/_html_base.py\r\n"] -[252.451615, "o", "docutils-0.14/docutils/writers/docutils_xml.py\r\n"] -[252.451692, "o", "docutils-0.14/docutils/writers/html4css1/\r\ndocutils-0.14/docutils/writers/html4css1/__init__.py\r\n"] -[252.451784, "o", "docutils-0.14/docutils/writers/html4css1/html4css1.css\r\n"] -[252.451847, "o", "docutils-0.14/docutils/writers/html4css1/template.txt\r\ndocutils-0.14/docutils/writers/html5_polyglot/\r\ndocutils-0.14/docutils/writers/html5_polyglot/__init__.py\r\n"] -[252.451931, "o", "docutils-0.14/docutils/writers/html5_polyglot/math.css\r\n"] -[252.452011, "o", "docutils-0.14/docutils/writers/html5_polyglot/minimal.css\r\ndocutils-0.14/docutils/writers/html5_polyglot/plain.css\r\ndocutils-0.14/docutils/writers/html5_polyglot/template.txt\r\ndocutils-0.14/docutils/writers/latex2e/\r\n"] -[252.45205, "o", "docutils-0.14/docutils/writers/latex2e/__init__.py\r\n"] -[252.45266, "o", "docutils-0.14/docutils/writers/latex2e/default.tex\r\n"] -[252.452699, "o", "docutils-0.14/docutils/writers/latex2e/docutils-05-compat.sty\r\n"] -[252.452841, "o", "docutils-0.14/docutils/writers/latex2e/titlepage.tex\r\n"] -[252.452881, "o", "docutils-0.14/docutils/writers/latex2e/xelatex.tex\r\ndocutils-0.14/docutils/writers/manpage.py\r\n"] -[252.453001, "o", "docutils-0.14/docutils/writers/null.py\r\n"] -[252.45304, "o", "docutils-0.14/docutils/writers/odf_odt/\r\ndocutils-0.14/docutils/writers/odf_odt/__init__.py\r\n"] -[252.453591, "o", "docutils-0.14/docutils/writers/odf_odt/pygmentsformatter.py\r\n"] -[252.453632, "o", "docutils-0.14/docutils/writers/odf_odt/styles.odt\r\n"] -[252.453805, "o", "docutils-0.14/docutils/writers/pep_html/\r\n"] -[252.453823, "o", "docutils-0.14/docutils/writers/pep_html/__init__.py\r\n"] -[252.453843, "o", "docutils-0.14/docutils/writers/pep_html/pep.css\r\n"] -[252.453892, "o", "docutils-0.14/docutils/writers/pep_html/template.txt\r\ndocutils-0.14/docutils/writers/pseudoxml.py\r\n"] -[252.453951, "o", "docutils-0.14/docutils/writers/s5_html/\r\n"] -[252.453969, "o", "docutils-0.14/docutils/writers/s5_html/__init__.py\r\n"] -[252.453995, "o", "docutils-0.14/docutils/writers/s5_html/themes/\r\n"] -[252.454077, "o", "docutils-0.14/docutils/writers/s5_html/themes/big-black/\r\ndocutils-0.14/docutils/writers/s5_html/themes/big-black/__base__\r\n"] -[252.454118, "o", "docutils-0.14/docutils/writers/s5_html/themes/big-black/framing.css\r\ndocutils-0.14/docutils/writers/s5_html/themes/big-black/pretty.css\r\ndocutils-0.14/docutils/writers/s5_html/themes/big-white/\r\ndocutils-0.14/docutils/writers/s5_html/themes/big-white/framing.css\r\n"] -[252.454158, "o", "docutils-0.14/docutils/writers/s5_html/themes/big-white/pretty.css\r\n"] -[252.454195, "o", "docutils-0.14/docutils/writers/s5_html/themes/default/\r\ndocutils-0.14/docutils/writers/s5_html/themes/default/blank.gif\r\n"] -[252.454234, "o", "docutils-0.14/docutils/writers/s5_html/themes/default/framing.css\r\ndocutils-0.14/docutils/writers/s5_html/themes/default/iepngfix.htc\r\n"] -[252.454271, "o", "docutils-0.14/docutils/writers/s5_html/themes/default/opera.css\r\ndocutils-0.14/docutils/writers/s5_html/themes/default/outline.css\r\n"] -[252.454309, "o", "docutils-0.14/docutils/writers/s5_html/themes/default/pretty.css\r\n"] -[252.454346, "o", "docutils-0.14/docutils/writers/s5_html/themes/default/print.css\r\ndocutils-0.14/docutils/writers/s5_html/themes/default/s5-core.css\r\n"] -[252.454384, "o", "docutils-0.14/docutils/writers/s5_html/themes/default/slides.css\r\ndocutils-0.14/docutils/writers/s5_html/themes/default/slides.js\r\n"] -[252.454421, "o", "docutils-0.14/docutils/writers/s5_html/themes/medium-black/\r\n"] -[252.454459, "o", "docutils-0.14/docutils/writers/s5_html/themes/medium-black/__base__\r\ndocutils-0.14/docutils/writers/s5_html/themes/medium-black/pretty.css\r\n"] -[252.454496, "o", "docutils-0.14/docutils/writers/s5_html/themes/medium-white/\r\ndocutils-0.14/docutils/writers/s5_html/themes/medium-white/framing.css\r\n"] -[252.454534, "o", "docutils-0.14/docutils/writers/s5_html/themes/medium-white/pretty.css\r\n"] -[252.454572, "o", "docutils-0.14/docutils/writers/s5_html/themes/README.txt\r\ndocutils-0.14/docutils/writers/s5_html/themes/small-black/\r\n"] -[252.454612, "o", "docutils-0.14/docutils/writers/s5_html/themes/small-black/__base__\r\ndocutils-0.14/docutils/writers/s5_html/themes/small-black/pretty.css\r\n"] -[252.454651, "o", "docutils-0.14/docutils/writers/s5_html/themes/small-white/\r\ndocutils-0.14/docutils/writers/s5_html/themes/small-white/framing.css\r\n"] -[252.454689, "o", "docutils-0.14/docutils/writers/s5_html/themes/small-white/pretty.css\r\ndocutils-0.14/docutils/writers/xetex/\r\n"] -[252.454732, "o", "docutils-0.14/docutils/writers/xetex/__init__.py\r\n"] -[252.454769, "o", "docutils-0.14/FAQ.txt\r\n"] -[252.454831, "o", "docutils-0.14/HISTORY.txt\r\n"] -[252.455504, "o", "docutils-0.14/install.py\r\n"] -[252.455543, "o", "docutils-0.14/licenses/\r\ndocutils-0.14/licenses/BSD-2-Clause.txt\r\n"] -[252.455581, "o", "docutils-0.14/licenses/docutils.conf\r\ndocutils-0.14/licenses/gpl-3-0.txt\r\n"] -[252.455706, "o", "docutils-0.14/licenses/python-2-1-1.txt\r\n"] -[252.455745, "o", "docutils-0.14/MANIFEST.in\r\n"] -[252.455782, "o", "docutils-0.14/PKG-INFO\r\ndocutils-0.14/README.txt\r\n"] -[252.455902, "o", "docutils-0.14/RELEASE-NOTES.txt\r\n"] -[252.45594, "o", "docutils-0.14/setup.cfg\r\n"] -[252.455975, "o", "docutils-0.14/setup.py\r\n"] -[252.456051, "o", "docutils-0.14/test/\r\n"] -[252.456089, "o", "docutils-0.14/test/alltests.py\r\ndocutils-0.14/test/coverage.sh\r\n"] -[252.456127, "o", "docutils-0.14/test/data/\r\n"] -[252.456164, "o", "docutils-0.14/test/data/config_1.txt\r\ndocutils-0.14/test/data/config_2.txt\r\n"] -[252.456202, "o", "docutils-0.14/test/data/config_error_handler.txt\r\ndocutils-0.14/test/data/config_list.txt\r\n"] -[252.45624, "o", "docutils-0.14/test/data/config_list_2.txt\r\ndocutils-0.14/test/data/config_old.txt\r\n"] -[252.456276, "o", "docutils-0.14/test/data/csv_data.txt\r\ndocutils-0.14/test/data/csv_dep.txt\r\n"] -[252.456313, "o", "docutils-0.14/test/data/dependencies.txt\r\ndocutils-0.14/test/data/full-template.txt\r\n"] -[252.45635, "o", "docutils-0.14/test/data/ham.css\r\ndocutils-0.14/test/data/ham.tex\r\n"] -[252.456388, "o", "docutils-0.14/test/data/include.txt\r\n"] -[252.456425, "o", "docutils-0.14/test/data/latin1.txt\r\ndocutils-0.14/test/data/raw.txt\r\n"] -[252.456462, "o", "docutils-0.14/test/data/stylesheet.txt\r\ndocutils-0.14/test/docutils.conf\r\n"] -[252.456499, "o", "docutils-0.14/test/DocutilsTestSupport.py\r\n"] -[252.456536, "o", "docutils-0.14/test/functional/\r\ndocutils-0.14/test/functional/expected/\r\n"] -[252.456573, "o", "docutils-0.14/test/functional/expected/compact_lists.html\r\ndocutils-0.14/test/functional/expected/cyrillic.tex\r\n"] -[252.456612, "o", "docutils-0.14/test/functional/expected/dangerous.html\r\n"] -[252.456657, "o", "docutils-0.14/test/functional/expected/field_name_limit.html\r\ndocutils-0.14/test/functional/expected/footnotes_html5.html\r\ndocutils-0.14/test/functional/expected/latex_babel.tex\r\n"] -[252.456713, "o", "docutils-0.14/test/functional/expected/latex_cornercases.tex\r\ndocutils-0.14/test/functional/expected/latex_docinfo.tex\r\n"] -[252.456761, "o", "docutils-0.14/test/functional/expected/math_output_html.html\r\n"] -[252.45681, "o", "docutils-0.14/test/functional/expected/math_output_latex.html\r\ndocutils-0.14/test/functional/expected/math_output_mathjax.html\r\n"] -[252.456857, "o", "docutils-0.14/test/functional/expected/math_output_mathml.xhtml\r\ndocutils-0.14/test/functional/expected/misc_rst_html4css1.html\r\n"] -[252.456904, "o", "docutils-0.14/test/functional/expected/odt_basic.odt\r\ndocutils-0.14/test/functional/expected/odt_custom_headfoot.odt\r\n"] -[252.456951, "o", "docutils-0.14/test/functional/expected/odt_nested_class.odt\r\ndocutils-0.14/test/functional/expected/odt_no_class.odt\r\n"] -[252.457052, "o", "docutils-0.14/test/functional/expected/odt_tables1.odt\r\n"] -[252.457097, "o", "docutils-0.14/test/functional/expected/odt_unnested_class.odt\r\n"] -[252.457144, "o", "docutils-0.14/test/functional/expected/pep_html.html\r\ndocutils-0.14/test/functional/expected/standalone_rst_docutils_xml.xml\r\n"] -[252.457623, "o", "docutils-0.14/test/functional/expected/standalone_rst_html4css1.html\r\n"] -[252.45795, "o", "docutils-0.14/test/functional/expected/standalone_rst_html5.html\r\n"] -[252.458307, "o", "docutils-0.14/test/functional/expected/standalone_rst_latex.tex\r\n"] -[252.458663, "o", "docutils-0.14/test/functional/expected/standalone_rst_manpage.man\r\n"] -[252.458713, "o", "docutils-0.14/test/functional/expected/standalone_rst_pseudoxml.txt\r\n"] -[252.459129, "o", "docutils-0.14/test/functional/expected/standalone_rst_s5_html_1.html\r\ndocutils-0.14/test/functional/expected/standalone_rst_s5_html_2.html\r\n"] -[252.459327, "o", "docutils-0.14/test/functional/expected/standalone_rst_xetex.tex\r\n"] -[252.459709, "o", "docutils-0.14/test/functional/expected/ui/\r\ndocutils-0.14/test/functional/expected/ui/default/\r\ndocutils-0.14/test/functional/expected/ui/default/blank.gif\r\n"] -[252.459774, "o", "docutils-0.14/test/functional/expected/ui/default/framing.css\r\ndocutils-0.14/test/functional/expected/ui/default/iepngfix.htc\r\ndocutils-0.14/test/functional/expected/ui/default/opera.css\r\ndocutils-0.14/test/functional/expected/ui/default/outline.css\r\ndocutils-0.14/test/functional/expected/ui/default/pretty.css\r\n"] -[252.459822, "o", "docutils-0.14/test/functional/expected/ui/default/print.css\r\ndocutils-0.14/test/functional/expected/ui/default/s5-core.css\r\ndocutils-0.14/test/functional/expected/ui/default/slides.css\r\n"] -[252.459866, "o", "docutils-0.14/test/functional/expected/ui/default/slides.js\r\ndocutils-0.14/test/functional/expected/ui/small-black/\r\n"] -[252.459904, "o", "docutils-0.14/test/functional/expected/ui/small-black/blank.gif\r\ndocutils-0.14/test/functional/expected/ui/small-black/framing.css\r\n"] -[252.45994, "o", "docutils-0.14/test/functional/expected/ui/small-black/iepngfix.htc\r\ndocutils-0.14/test/functional/expected/ui/small-black/opera.css\r\n"] -[252.459974, "o", "docutils-0.14/test/functional/expected/ui/small-black/outline.css\r\ndocutils-0.14/test/functional/expected/ui/small-black/pretty.css\r\n"] -[252.460008, "o", "docutils-0.14/test/functional/expected/ui/small-black/print.css\r\ndocutils-0.14/test/functional/expected/ui/small-black/s5-core.css\r\n"] -[252.460042, "o", "docutils-0.14/test/functional/expected/ui/small-black/slides.css\r\ndocutils-0.14/test/functional/expected/ui/small-black/slides.js\r\n"] -[252.460077, "o", "docutils-0.14/test/functional/expected/xetex-cyrillic.tex\r\n"] -[252.460111, "o", "docutils-0.14/test/functional/input/\r\n"] -[252.460146, "o", "docutils-0.14/test/functional/input/compact_lists.txt\r\ndocutils-0.14/test/functional/input/cyrillic.txt\r\n"] -[252.460181, "o", "docutils-0.14/test/functional/input/dangerous.txt\r\ndocutils-0.14/test/functional/input/data/\r\ndocutils-0.14/test/functional/input/data/classes_latex.txt\r\n"] -[252.460216, "o", "docutils-0.14/test/functional/input/data/custom_roles.txt\r\n"] -[252.460251, "o", "docutils-0.14/test/functional/input/data/custom_roles_latex.txt\r\ndocutils-0.14/test/functional/input/data/errors.txt\r\n"] -[252.460295, "o", "docutils-0.14/test/functional/input/data/header_footer.txt\r\ndocutils-0.14/test/functional/input/data/html4css1.css\r\n"] -[252.460332, "o", "docutils-0.14/test/functional/input/data/hyperlinking.txt\r\ndocutils-0.14/test/functional/input/data/latex-problematic.txt\r\n"] -[252.460366, "o", "docutils-0.14/test/functional/input/data/latex_encoding.txt\r\ndocutils-0.14/test/functional/input/data/list_table.txt\r\n"] -[252.460403, "o", "docutils-0.14/test/functional/input/data/math.css\r\ndocutils-0.14/test/functional/input/data/math.txt\r\ndocutils-0.14/test/functional/input/data/minimal.css\r\n"] -[252.460438, "o", "docutils-0.14/test/functional/input/data/nonalphanumeric.txt\r\n"] -[252.460475, "o", "docutils-0.14/test/functional/input/data/option_lists.txt\r\ndocutils-0.14/test/functional/input/data/plain.css\r\ndocutils-0.14/test/functional/input/data/section_titles.txt\r\n"] -[252.460512, "o", "docutils-0.14/test/functional/input/data/standard.txt\r\n"] -[252.460546, "o", "docutils-0.14/test/functional/input/data/svg_images.txt\r\ndocutils-0.14/test/functional/input/data/swf_images.txt\r\n"] -[252.460582, "o", "docutils-0.14/test/functional/input/data/table_colspan.txt\r\ndocutils-0.14/test/functional/input/data/table_complex.txt\r\n"] -[252.460622, "o", "docutils-0.14/test/functional/input/data/table_rowspan.txt\r\ndocutils-0.14/test/functional/input/data/tables_latex.txt\r\n"] -[252.460657, "o", "docutils-0.14/test/functional/input/data/unicode.txt\r\ndocutils-0.14/test/functional/input/data/urls.txt\r\n"] -[252.460693, "o", "docutils-0.14/test/functional/input/field_list.txt\r\ndocutils-0.14/test/functional/input/footnotes.txt\r\n"] -[252.460727, "o", "docutils-0.14/test/functional/input/latex_babel.txt\r\ndocutils-0.14/test/functional/input/latex_cornercases.txt\r\n"] -[252.460762, "o", "docutils-0.14/test/functional/input/latex_docinfo.txt\r\ndocutils-0.14/test/functional/input/link_in_substitution.txt\r\n"] -[252.460796, "o", "docutils-0.14/test/functional/input/odt_basic.txt\r\ndocutils-0.14/test/functional/input/odt_custom_headfoot.txt\r\n"] -[252.460829, "o", "docutils-0.14/test/functional/input/odt_nested_class.txt\r\ndocutils-0.14/test/functional/input/odt_no_class.txt\r\n"] -[252.460865, "o", "docutils-0.14/test/functional/input/odt_tables1.txt\r\n"] -[252.460901, "o", "docutils-0.14/test/functional/input/odt_unnested_class.txt\r\ndocutils-0.14/test/functional/input/pep_html.txt\r\n"] -[252.460934, "o", "docutils-0.14/test/functional/input/simple.txt\r\ndocutils-0.14/test/functional/input/standalone_rst_docutils_xml.txt\r\n"] -[252.460969, "o", "docutils-0.14/test/functional/input/standalone_rst_html4css1.txt\r\ndocutils-0.14/test/functional/input/standalone_rst_html5.txt\r\n"] -[252.461003, "o", "docutils-0.14/test/functional/input/standalone_rst_latex.txt\r\n"] -[252.461036, "o", "docutils-0.14/test/functional/input/standalone_rst_manpage.txt\r\n"] -[252.461069, "o", "docutils-0.14/test/functional/input/standalone_rst_pseudoxml.txt\r\ndocutils-0.14/test/functional/input/standalone_rst_s5_html.txt\r\n"] -[252.461102, "o", "docutils-0.14/test/functional/input/standalone_rst_xetex.txt\r\ndocutils-0.14/test/functional/output/\r\n"] -[252.461137, "o", "docutils-0.14/test/functional/output/README.txt\r\n"] -[252.46117, "o", "docutils-0.14/test/functional/README.txt\r\n"] -[252.461204, "o", "docutils-0.14/test/functional/tests/\r\ndocutils-0.14/test/functional/tests/_default.py\r\n"] -[252.461238, "o", "docutils-0.14/test/functional/tests/_standalone_rst_defaults.py\r\ndocutils-0.14/test/functional/tests/compact_lists.py\r\n"] -[252.461273, "o", "docutils-0.14/test/functional/tests/dangerous.py\r\ndocutils-0.14/test/functional/tests/field_name_limit.py\r\n"] -[252.461308, "o", "docutils-0.14/test/functional/tests/footnotes_html5.py\r\ndocutils-0.14/test/functional/tests/latex_babel.py\r\ndocutils-0.14/test/functional/tests/latex_cornercases.py\r\n"] -[252.461343, "o", "docutils-0.14/test/functional/tests/latex_cyrillic.py\r\ndocutils-0.14/test/functional/tests/latex_docinfo.py\r\ndocutils-0.14/test/functional/tests/math_output_html.py\r\n"] -[252.461376, "o", "docutils-0.14/test/functional/tests/math_output_latex.py\r\ndocutils-0.14/test/functional/tests/math_output_mathjax.py\r\n"] -[252.461411, "o", "docutils-0.14/test/functional/tests/math_output_mathml.py\r\ndocutils-0.14/test/functional/tests/misc_rst_html4css1.py\r\ndocutils-0.14/test/functional/tests/pep_html.py\r\n"] -[252.461444, "o", "docutils-0.14/test/functional/tests/standalone_rst_docutils_xml.py\r\ndocutils-0.14/test/functional/tests/standalone_rst_html4css1.py\r\n"] -[252.461479, "o", "docutils-0.14/test/functional/tests/standalone_rst_html5.py\r\ndocutils-0.14/test/functional/tests/standalone_rst_latex.py\r\ndocutils-0.14/test/functional/tests/standalone_rst_manpage.py\r\n"] -[252.461514, "o", "docutils-0.14/test/functional/tests/standalone_rst_pseudoxml.py\r\ndocutils-0.14/test/functional/tests/standalone_rst_s5_html_1.py\r\n"] -[252.461548, "o", "docutils-0.14/test/functional/tests/standalone_rst_s5_html_2.py\r\ndocutils-0.14/test/functional/tests/standalone_rst_xetex.py\r\n"] -[252.461582, "o", "docutils-0.14/test/functional/tests/xetex_cyrillic.py\r\ndocutils-0.14/test/local-parser.py\r\n"] -[252.461623, "o", "docutils-0.14/test/local-reader.py\r\n"] -[252.461659, "o", "docutils-0.14/test/local-writer.py\r\ndocutils-0.14/test/local_dummy_lang.py\r\n"] -[252.461693, "o", "docutils-0.14/test/package_unittest.py\r\ndocutils-0.14/test/test__init__.py\r\n"] -[252.461728, "o", "docutils-0.14/test/test_command_line.py\r\ndocutils-0.14/test/test_dependencies.py\r\n"] -[252.461762, "o", "docutils-0.14/test/test_error_reporting.py\r\ndocutils-0.14/test/test_functional.py\r\n"] -[252.461797, "o", "docutils-0.14/test/test_io.py\r\n"] -[252.461833, "o", "docutils-0.14/test/test_language.py\r\ndocutils-0.14/test/test_nodes.py\r\n"] -[252.461941, "o", "docutils-0.14/test/test_parsers/\r\n"] -[252.461977, "o", "docutils-0.14/test/test_parsers/__init__.py\r\n"] -[252.462013, "o", "docutils-0.14/test/test_parsers/test_get_parser_class.py\r\ndocutils-0.14/test/test_parsers/test_parser.py\r\ndocutils-0.14/test/test_parsers/test_rst/\r\n"] -[252.462048, "o", "docutils-0.14/test/test_parsers/test_rst/__init__.py\r\n"] -[252.462083, "o", "docutils-0.14/test/test_parsers/test_rst/includes/\r\ndocutils-0.14/test/test_parsers/test_rst/includes/include9.txt\r\n"] -[252.462117, "o", "docutils-0.14/test/test_parsers/test_rst/test_block_quotes.py\r\n"] -[252.462151, "o", "docutils-0.14/test/test_parsers/test_rst/test_bullet_lists.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_character_level_inline_markup.py\r\n"] -[252.462186, "o", "docutils-0.14/test/test_parsers/test_rst/test_citations.py\r\n"] -[252.462221, "o", "docutils-0.14/test/test_parsers/test_rst/test_comments.py\r\n"] -[252.462257, "o", "docutils-0.14/test/test_parsers/test_rst/test_definition_lists.py\r\n"] -[252.462292, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/\r\n"] -[252.462328, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/__init__.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/empty.txt\r\n"] -[252.462367, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/include 11.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/include1.txt\r\n"] -[252.462402, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/include10.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/include12.txt\r\n"] -[252.462437, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/include13.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/include2.txt\r\n"] -[252.462473, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/include3.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/include8.txt\r\n"] -[252.462509, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/include_literal.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/includes/\r\n"] -[252.462544, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/includes/include14.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/includes/include4.txt\r\n"] -[252.462579, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/includes/include5.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/includes/more/\r\n"] -[252.462622, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/includes/more/include6.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/includes/sibling/\r\n"] -[252.462658, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/includes/sibling/include7.txt\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/raw1.txt\r\n"] -[252.462693, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_admonitions.py\r\n"] -[252.462727, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_block_quotes.py\r\n"] -[252.462761, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_class.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_code.py\r\n"] -[252.462797, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_code_long.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_code_none.py\r\n"] -[252.462832, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_compound.py\r\n"] -[252.462867, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_container.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_contents.py\r\n"] -[252.462944, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_date.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_decorations.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_default_role.py\r\n"] -[252.463026, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_figures.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_images.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_include.py\r\n"] -[252.46308, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_line_blocks.py\r\n"] -[252.463126, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_math.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_meta.py\r\n"] -[252.463139, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_parsed_literals.py\r\n"] -[252.463176, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_raw.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_replace.py\r\n"] -[252.463209, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_replace_fr.py\r\n"] -[252.463266, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_role.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_rubrics.py\r\n"] -[252.463338, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_sectnum.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_sidebars.py\r\n"] -[252.463381, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_tables.py\r\n"] -[252.463422, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_target_notes.py\r\n"] -[252.463464, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_test_directives.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_title.py\r\n"] -[252.463508, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_topics.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/test_unicode.py\r\n"] -[252.463541, "o", "docutils-0.14/test/test_parsers/test_rst/test_directives/test_unknown.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_directives/utf-16.csv\r\n"] -[252.463585, "o", "docutils-0.14/test/test_parsers/test_rst/test_doctest_blocks.py\r\n"] -[252.463634, "o", "docutils-0.14/test/test_parsers/test_rst/test_east_asian_text.py\r\n"] -[252.463675, "o", "docutils-0.14/test/test_parsers/test_rst/test_enumerated_lists.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_field_lists.py\r\n"] -[252.463718, "o", "docutils-0.14/test/test_parsers/test_rst/test_footnotes.py\r\n"] -[252.463762, "o", "docutils-0.14/test/test_parsers/test_rst/test_functions.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_inline_markup.py\r\n"] -[252.463815, "o", "docutils-0.14/test/test_parsers/test_rst/test_interpreted.py\r\n"] -[252.4639, "o", "docutils-0.14/test/test_parsers/test_rst/test_interpreted_fr.py\r\n"] -[252.463944, "o", "docutils-0.14/test/test_parsers/test_rst/test_line_blocks.py\r\n"] -[252.463977, "o", "docutils-0.14/test/test_parsers/test_rst/test_literal_blocks.py\r\ndocutils-0.14/test/test_parsers/test_rst/test_option_lists.py\r\n"] -[252.464015, "o", "docutils-0.14/test/test_parsers/test_rst/test_outdenting.py\r\n"] -[252.464056, "o", "docutils-0.14/test/test_parsers/test_rst/test_paragraphs.py\r\n"] -[252.464094, "o", "docutils-0.14/test/test_parsers/test_rst/test_section_headers.py\r\n"] -[252.464151, "o", "docutils-0.14/test/test_parsers/test_rst/test_SimpleTableParser.py\r\n"] -[252.464195, "o", "docutils-0.14/test/test_parsers/test_rst/test_substitutions.py\r\n"] -[252.46423, "o", "docutils-0.14/test/test_parsers/test_rst/test_TableParser.py\r\n"] -[252.464266, "o", "docutils-0.14/test/test_parsers/test_rst/test_tables.py\r\n"] -[252.464394, "o", "docutils-0.14/test/test_parsers/test_rst/test_targets.py\r\n"] -[252.464436, "o", "docutils-0.14/test/test_parsers/test_rst/test_transitions.py\r\n"] -[252.464481, "o", "docutils-0.14/test/test_pickle.py\r\n"] -[252.464511, "o", "docutils-0.14/test/test_publisher.py\r\n"] -[252.464553, "o", "docutils-0.14/test/test_readers/\r\ndocutils-0.14/test/test_readers/__init__.py\r\n"] -[252.464596, "o", "docutils-0.14/test/test_readers/test_get_reader_class.py\r\ndocutils-0.14/test/test_readers/test_pep/\r\n"] -[252.464616, "o", "docutils-0.14/test/test_readers/test_pep/__init__.py\r\n"] -[252.464679, "o", "docutils-0.14/test/test_readers/test_pep/test_inline_markup.py\r\ndocutils-0.14/test/test_readers/test_pep/test_rfc2822.py\r\n"] -[252.464712, "o", "docutils-0.14/test/test_settings.py\r\n"] -[252.465022, "o", "docutils-0.14/test/test_statemachine.py\r\n"] -[252.465069, "o", "docutils-0.14/test/test_transforms/\r\n"] -[252.465113, "o", "docutils-0.14/test/test_transforms/__init__.py\r\ndocutils-0.14/test/test_transforms/test___init__.py\r\n"] -[252.465156, "o", "docutils-0.14/test/test_transforms/test_class.py\r\n"] -[252.465198, "o", "docutils-0.14/test/test_transforms/test_contents.py\r\ndocutils-0.14/test/test_transforms/test_docinfo.py\r\n"] -[252.465232, "o", "docutils-0.14/test/test_transforms/test_doctitle.py\r\n"] -[252.465267, "o", "docutils-0.14/test/test_transforms/test_expose_internals.py\r\ndocutils-0.14/test/test_transforms/test_filter.py\r\n"] -[252.465299, "o", "docutils-0.14/test/test_transforms/test_footnotes.py\r\n"] -[252.465331, "o", "docutils-0.14/test/test_transforms/test_hyperlinks.py\r\n"] -[252.465369, "o", "docutils-0.14/test/test_transforms/test_messages.py\r\n"] -[252.465404, "o", "docutils-0.14/test/test_transforms/test_peps.py\r\ndocutils-0.14/test/test_transforms/test_sectnum.py\r\n"] -[252.465443, "o", "docutils-0.14/test/test_transforms/test_smartquotes.py\r\n"] -[252.465484, "o", "docutils-0.14/test/test_transforms/test_strip_comments.py\r\n"] -[252.465526, "o", "docutils-0.14/test/test_transforms/test_strip_elements_with_class.py\r\ndocutils-0.14/test/test_transforms/test_substitutions.py\r\n"] -[252.465571, "o", "docutils-0.14/test/test_transforms/test_target_notes.py\r\ndocutils-0.14/test/test_transforms/test_transitions.py\r\n"] -[252.465617, "o", "docutils-0.14/test/test_transforms/test_writer_aux.py\r\ndocutils-0.14/test/test_traversals.py\r\n"] -[252.465661, "o", "docutils-0.14/test/test_utils.py\r\n"] -[252.465704, "o", "docutils-0.14/test/test_viewlist.py\r\ndocutils-0.14/test/test_writers/\r\n"] -[252.465737, "o", "docutils-0.14/test/test_writers/__init__.py\r\ndocutils-0.14/test/test_writers/test_docutils_xml.py\r\n"] -[252.465768, "o", "docutils-0.14/test/test_writers/test_get_writer_class.py\r\n"] -[252.465799, "o", "docutils-0.14/test/test_writers/test_html4css1_misc.py\r\n"] -[252.465833, "o", "docutils-0.14/test/test_writers/test_html4css1_parts.py\r\n"] -[252.465867, "o", "docutils-0.14/test/test_writers/test_html4css1_template.py\r\ndocutils-0.14/test/test_writers/test_html5_polyglot_misc.py\r\n"] -[252.465904, "o", "docutils-0.14/test/test_writers/test_latex2e.py\r\n"] -[252.465952, "o", "docutils-0.14/test/test_writers/test_manpage.py\r\n"] -[252.465996, "o", "docutils-0.14/test/test_writers/test_null.py\r\n"] -[252.466038, "o", "docutils-0.14/test/test_writers/test_odt.py\r\ndocutils-0.14/test/test_writers/test_pseudoxml.py\r\n"] -[252.466077, "o", "docutils-0.14/test/test_writers/test_s5.py\r\n"] -[252.466124, "o", "docutils-0.14/THANKS.txt\r\n"] -[252.466167, "o", "docutils-0.14/tools/\r\n"] -[252.466212, "o", "docutils-0.14/tools/buildhtml.py\r\ndocutils-0.14/tools/dev/\r\n"] -[252.466257, "o", "docutils-0.14/tools/dev/create_unimap.py\r\ndocutils-0.14/tools/dev/generate_punctuation_chars.py\r\n"] -[252.4663, "o", "docutils-0.14/tools/dev/profile_docutils.py\r\n"] -[252.466342, "o", "docutils-0.14/tools/dev/README.txt\r\ndocutils-0.14/tools/dev/unicode2rstsubs.py\r\n"] -[252.466386, "o", "docutils-0.14/tools/docutils.conf\r\ndocutils-0.14/tools/editors/\r\n"] -[252.466429, "o", "docutils-0.14/tools/editors/emacs/\r\ndocutils-0.14/tools/editors/emacs/docutils.conf\r\n"] -[252.466471, "o", "docutils-0.14/tools/editors/emacs/IDEAS.rst\r\ndocutils-0.14/tools/editors/emacs/README.txt\r\n"] -[252.466505, "o", "docutils-0.14/tools/editors/emacs/rst.el\r\n"] -[252.467323, "o", "docutils-0.14/tools/editors/emacs/tests/\r\n"] -[252.46736, "o", "docutils-0.14/tools/editors/emacs/tests/adjust-section.el\r\ndocutils-0.14/tools/editors/emacs/tests/adjust-uc.el\r\n"] -[252.467435, "o", "docutils-0.14/tools/editors/emacs/tests/adjust-uc_doc.rst\r\n"] -[252.467554, "o", "docutils-0.14/tools/editors/emacs/tests/Ado.el\r\n"] -[252.467596, "o", "docutils-0.14/tools/editors/emacs/tests/adornment.el\r\n"] -[252.467776, "o", "docutils-0.14/tools/editors/emacs/tests/apply-block.el\r\ndocutils-0.14/tools/editors/emacs/tests/buffer.el\r\ndocutils-0.14/tools/editors/emacs/tests/comment.el\r\n"] -[252.467842, "o", "docutils-0.14/tools/editors/emacs/tests/ert-buffer.el\r\ndocutils-0.14/tools/editors/emacs/tests/fill.el\r\n"] -[252.467893, "o", "docutils-0.14/tools/editors/emacs/tests/font-lock.el\r\ndocutils-0.14/tools/editors/emacs/tests/Hdr.el\r\n"] -[252.467938, "o", "docutils-0.14/tools/editors/emacs/tests/helpers.el\r\n"] -[252.467977, "o", "docutils-0.14/tools/editors/emacs/tests/imenu.el\r\n"] -[252.468013, "o", "docutils-0.14/tools/editors/emacs/tests/indent.el\r\n"] -[252.468047, "o", "docutils-0.14/tools/editors/emacs/tests/init.el\r\ndocutils-0.14/tools/editors/emacs/tests/items.el\r\n"] -[252.46808, "o", "docutils-0.14/tools/editors/emacs/tests/Makefile\r\n"] -[252.468122, "o", "docutils-0.14/tools/editors/emacs/tests/movement.el\r\ndocutils-0.14/tools/editors/emacs/tests/re.el\r\n"] -[252.468243, "o", "docutils-0.14/tools/editors/emacs/tests/README.txt\r\n"] -[252.468287, "o", "docutils-0.14/tools/editors/emacs/tests/shift.el\r\n"] -[252.468327, "o", "docutils-0.14/tools/editors/emacs/tests/Stn.el\r\n"] -[252.468382, "o", "docutils-0.14/tools/editors/emacs/tests/toc.el\r\n"] -[252.468424, "o", "docutils-0.14/tools/editors/emacs/tests/tree.el\r\ndocutils-0.14/tools/editors/emacs/tests/Ttl.el\r\n"] -[252.468467, "o", "docutils-0.14/tools/editors/README.txt\r\n"] -[252.468511, "o", "docutils-0.14/tools/quicktest.py\r\n"] -[252.468553, "o", "docutils-0.14/tools/rst2html.py\r\ndocutils-0.14/tools/rst2html4.py\r\n"] -[252.468586, "o", "docutils-0.14/tools/rst2html5.py\r\ndocutils-0.14/tools/rst2latex.py\r\n"] -[252.468623, "o", "docutils-0.14/tools/rst2man.py\r\n"] -[252.468662, "o", "docutils-0.14/tools/rst2odt.py\r\ndocutils-0.14/tools/rst2odt_prepstyles.py\r\n"] -[252.468704, "o", "docutils-0.14/tools/rst2pseudoxml.py\r\ndocutils-0.14/tools/rst2s5.py\r\n"] -[252.468747, "o", "docutils-0.14/tools/rst2xetex.py\r\ndocutils-0.14/tools/rst2xml.py\r\n"] -[252.46879, "o", "docutils-0.14/tools/rstpep2html.py\r\ndocutils-0.14/tools/test/\r\n"] -[252.468834, "o", "docutils-0.14/tools/test/test_buildhtml.py\r\n"] -[252.492271, "o", "running install\r\n"] -[252.492583, "o", "running build\r\nrunning build_py\r\n"] -[252.493128, "o", "creating build\r\n"] -[252.493214, "o", "creating build/lib\r\ncreating build/lib/docutils\r\n"] -[252.493343, "o", "copying docutils/core.py -> build/lib/docutils\r\n"] -[252.493436, "o", "copying docutils/frontend.py -> build/lib/docutils\r\n"] -[252.49357, "o", "copying docutils/__init__.py -> build/lib/docutils\r\n"] -[252.493747, "o", "copying docutils/io.py -> build/lib/docutils\r\n"] -[252.493869, "o", "copying docutils/examples.py -> build/lib/docutils\r\n"] -[252.493945, "o", "copying docutils/nodes.py -> build/lib/docutils\r\n"] -[252.494105, "o", "copying docutils/statemachine.py -> build/lib/docutils\r\n"] -[252.494272, "o", "copying docutils/_compat.py -> build/lib/docutils\r\n"] -[252.494582, "o", "creating build/lib/docutils/languages\r\n"] -[252.494705, "o", "copying docutils/languages/nl.py -> build/lib/docutils/languages\r\n"] -[252.494812, "o", "copying docutils/languages/af.py -> build/lib/docutils/languages\r\ncopying docutils/languages/en.py -> build/lib/docutils/languages\r\n"] -[252.494917, "o", "copying docutils/languages/sv.py -> build/lib/docutils/languages\r\n"] -[252.495023, "o", "copying docutils/languages/fi.py -> build/lib/docutils/languages\r\n"] -[252.495121, "o", "copying docutils/languages/__init__.py -> build/lib/docutils/languages\r\n"] -[252.495173, "o", "copying docutils/languages/de.py -> build/lib/docutils/languages\r\n"] -[252.495287, "o", "copying docutils/languages/ru.py -> build/lib/docutils/languages\r\n"] -[252.495409, "o", "copying docutils/languages/it.py -> build/lib/docutils/languages\r\n"] -[252.495507, "o", "copying docutils/languages/sk.py -> build/lib/docutils/languages\r\n"] -[252.495605, "o", "copying docutils/languages/fa.py -> build/lib/docutils/languages\r\n"] -[252.495879, "o", "copying docutils/languages/pl.py -> build/lib/docutils/languages\r\n"] -[252.495922, "o", "copying docutils/languages/fr.py -> build/lib/docutils/languages\r\n"] -[252.495931, "o", "copying docutils/languages/ja.py -> build/lib/docutils/languages\r\n"] -[252.496085, "o", "copying docutils/languages/gl.py -> build/lib/docutils/languages\r\n"] -[252.496143, "o", "copying docutils/languages/da.py -> build/lib/docutils/languages\r\n"] -[252.496227, "o", "copying docutils/languages/lv.py -> build/lib/docutils/languages\r\n"] -[252.496376, "o", "copying docutils/languages/lt.py -> build/lib/docutils/languages\r\n"] -[252.496451, "o", "copying docutils/languages/ca.py -> build/lib/docutils/languages\r\n"] -[252.496488, "o", "copying docutils/languages/cs.py -> build/lib/docutils/languages\r\n"] -[252.496576, "o", "copying docutils/languages/he.py -> build/lib/docutils/languages\r\n"] -[252.496718, "o", "copying docutils/languages/pt_br.py -> build/lib/docutils/languages\r\n"] -[252.4968, "o", "copying docutils/languages/zh_tw.py -> build/lib/docutils/languages\r\n"] -[252.496837, "o", "copying docutils/languages/es.py -> build/lib/docutils/languages\r\n"] -[252.496958, "o", "copying docutils/languages/zh_cn.py -> build/lib/docutils/languages\r\n"] -[252.497027, "o", "copying docutils/languages/eo.py -> build/lib/docutils/languages\r\n"] -[252.497178, "o", "creating build/lib/docutils/parsers\r\n"] -[252.497258, "o", "copying docutils/parsers/__init__.py -> build/lib/docutils/parsers\r\n"] -[252.497339, "o", "copying docutils/parsers/null.py -> build/lib/docutils/parsers\r\n"] -[252.497537, "o", "creating build/lib/docutils/parsers/rst\r\n"] -[252.497568, "o", "copying docutils/parsers/rst/tableparser.py -> build/lib/docutils/parsers/rst\r\n"] -[252.497704, "o", "copying docutils/parsers/rst/__init__.py -> build/lib/docutils/parsers/rst\r\n"] -[252.497796, "o", "copying docutils/parsers/rst/states.py -> build/lib/docutils/parsers/rst\r\n"] -[252.49794, "o", "copying docutils/parsers/rst/roles.py -> build/lib/docutils/parsers/rst\r\n"] -[252.498158, "o", "creating build/lib/docutils/parsers/rst/directives\r\n"] -[252.498251, "o", "copying docutils/parsers/rst/directives/html.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.49832, "o", "copying docutils/parsers/rst/directives/__init__.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.498409, "o", "copying docutils/parsers/rst/directives/admonitions.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.498512, "o", "copying docutils/parsers/rst/directives/tables.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.498658, "o", "copying docutils/parsers/rst/directives/images.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.498776, "o", "copying docutils/parsers/rst/directives/misc.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.498854, "o", "copying docutils/parsers/rst/directives/body.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.498916, "o", "copying docutils/parsers/rst/directives/references.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.499004, "o", "copying docutils/parsers/rst/directives/parts.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[252.49933, "o", "creating build/lib/docutils/parsers/rst/languages\r\n"] -[252.49938, "o", "copying docutils/parsers/rst/languages/nl.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.499488, "o", "copying docutils/parsers/rst/languages/af.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.499582, "o", "copying docutils/parsers/rst/languages/en.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.499741, "o", "copying docutils/parsers/rst/languages/sv.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.499835, "o", "copying docutils/parsers/rst/languages/fi.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.49994, "o", "copying docutils/parsers/rst/languages/__init__.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.50003, "o", "copying docutils/parsers/rst/languages/de.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500099, "o", "copying docutils/parsers/rst/languages/ru.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.50018, "o", "copying docutils/parsers/rst/languages/it.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500285, "o", "copying docutils/parsers/rst/languages/sk.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500377, "o", "copying docutils/parsers/rst/languages/fa.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500468, "o", "copying docutils/parsers/rst/languages/pl.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500561, "o", "copying docutils/parsers/rst/languages/fr.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500692, "o", "copying docutils/parsers/rst/languages/ja.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500727, "o", "copying docutils/parsers/rst/languages/gl.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500816, "o", "copying docutils/parsers/rst/languages/da.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.500919, "o", "copying docutils/parsers/rst/languages/lv.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501007, "o", "copying docutils/parsers/rst/languages/lt.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501107, "o", "copying docutils/parsers/rst/languages/ca.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501238, "o", "copying docutils/parsers/rst/languages/cs.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501276, "o", "copying docutils/parsers/rst/languages/he.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501381, "o", "copying docutils/parsers/rst/languages/pt_br.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501478, "o", "copying docutils/parsers/rst/languages/zh_tw.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501574, "o", "copying docutils/parsers/rst/languages/es.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501676, "o", "copying docutils/parsers/rst/languages/zh_cn.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501768, "o", "copying docutils/parsers/rst/languages/eo.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[252.501932, "o", "creating build/lib/docutils/readers\r\n"] -[252.501977, "o", "copying docutils/readers/__init__.py -> build/lib/docutils/readers\r\n"] -[252.502124, "o", "copying docutils/readers/doctree.py -> build/lib/docutils/readers\r\n"] -[252.502155, "o", "copying docutils/readers/standalone.py -> build/lib/docutils/readers\r\n"] -[252.502304, "o", "copying docutils/readers/pep.py -> build/lib/docutils/readers\r\n"] -[252.502502, "o", "creating build/lib/docutils/transforms\r\ncopying docutils/transforms/components.py -> build/lib/docutils/transforms\r\n"] -[252.502584, "o", "copying docutils/transforms/__init__.py -> build/lib/docutils/transforms\r\n"] -[252.502732, "o", "copying docutils/transforms/writer_aux.py -> build/lib/docutils/transforms\r\n"] -[252.502825, "o", "copying docutils/transforms/peps.py -> build/lib/docutils/transforms\r\ncopying docutils/transforms/frontmatter.py -> build/lib/docutils/transforms\r\n"] -[252.503, "o", "copying docutils/transforms/misc.py -> build/lib/docutils/transforms\r\n"] -[252.503014, "o", "copying docutils/transforms/universal.py -> build/lib/docutils/transforms\r\n"] -[252.503082, "o", "copying docutils/transforms/references.py -> build/lib/docutils/transforms\r\n"] -[252.503217, "o", "copying docutils/transforms/parts.py -> build/lib/docutils/transforms\r\n"] -[252.503411, "o", "creating build/lib/docutils/utils\r\n"] -[252.503483, "o", "copying docutils/utils/error_reporting.py -> build/lib/docutils/utils\r\n"] -[252.503554, "o", "copying docutils/utils/__init__.py -> build/lib/docutils/utils\r\n"] -[252.503717, "o", "copying docutils/utils/roman.py -> build/lib/docutils/utils\r\n"] -[252.503781, "o", "copying docutils/utils/punctuation_chars.py -> build/lib/docutils/utils\r\n"] -[252.50387, "o", "copying docutils/utils/smartquotes.py -> build/lib/docutils/utils\r\n"] -[252.503981, "o", "copying docutils/utils/urischemes.py -> build/lib/docutils/utils\r\n"] -[252.504042, "o", "copying docutils/utils/code_analyzer.py -> build/lib/docutils/utils\r\n"] -[252.50423, "o", "creating build/lib/docutils/utils/math\r\n"] -[252.504272, "o", "copying docutils/utils/math/__init__.py -> build/lib/docutils/utils/math\r\n"] -[252.504378, "o", "copying docutils/utils/math/math2html.py -> build/lib/docutils/utils/math\r\n"] -[252.504578, "o", "copying docutils/utils/math/unichar2tex.py -> build/lib/docutils/utils/math\r\n"] -[252.504775, "o", "copying docutils/utils/math/tex2mathml_extern.py -> build/lib/docutils/utils/math\r\n"] -[252.504848, "o", "copying docutils/utils/math/latex2mathml.py -> build/lib/docutils/utils/math\r\n"] -[252.504917, "o", "copying docutils/utils/math/tex2unichar.py -> build/lib/docutils/utils/math\r\n"] -[252.505113, "o", "creating build/lib/docutils/writers\r\ncopying docutils/writers/manpage.py -> build/lib/docutils/writers\r\n"] -[252.505266, "o", "copying docutils/writers/pseudoxml.py -> build/lib/docutils/writers\r\n"] -[252.505328, "o", "copying docutils/writers/__init__.py -> build/lib/docutils/writers\r\n"] -[252.505421, "o", "copying docutils/writers/null.py -> build/lib/docutils/writers\r\n"] -[252.505495, "o", "copying docutils/writers/docutils_xml.py -> build/lib/docutils/writers\r\n"] -[252.505595, "o", "copying docutils/writers/_html_base.py -> build/lib/docutils/writers\r\n"] -[252.505826, "o", "creating build/lib/docutils/writers/html4css1\r\ncopying docutils/writers/html4css1/__init__.py -> build/lib/docutils/writers/html4css1\r\n"] -[252.506075, "o", "creating build/lib/docutils/writers/html5_polyglot\r\ncopying docutils/writers/html5_polyglot/__init__.py -> build/lib/docutils/writers/html5_polyglot\r\n"] -[252.506279, "o", "creating build/lib/docutils/writers/pep_html\r\ncopying docutils/writers/pep_html/__init__.py -> build/lib/docutils/writers/pep_html\r\n"] -[252.50648, "o", "creating build/lib/docutils/writers/s5_html\r\n"] -[252.506529, "o", "copying docutils/writers/s5_html/__init__.py -> build/lib/docutils/writers/s5_html\r\n"] -[252.50682, "o", "creating build/lib/docutils/writers/latex2e\r\ncopying docutils/writers/latex2e/__init__.py -> build/lib/docutils/writers/latex2e\r\n"] -[252.507105, "o", "creating build/lib/docutils/writers/xetex\r\n"] -[252.507177, "o", "copying docutils/writers/xetex/__init__.py -> build/lib/docutils/writers/xetex\r\n"] -[252.507381, "o", "creating build/lib/docutils/writers/odf_odt\r\n"] -[252.507418, "o", "copying docutils/writers/odf_odt/__init__.py -> build/lib/docutils/writers/odf_odt\r\n"] -[252.507721, "o", "copying docutils/writers/odf_odt/pygmentsformatter.py -> build/lib/docutils/writers/odf_odt\r\n"] -[252.509987, "o", "running build_scripts\r\n"] -[252.510406, "o", "creating build/scripts-2.7\r\ncopying and adjusting tools/rst2html.py -> build/scripts-2.7\r\n"] -[252.510507, "o", "copying and adjusting tools/rst2html4.py -> build/scripts-2.7\r\ncopying and adjusting tools/rst2html5.py -> build/scripts-2.7\r\n"] -[252.510557, "o", "copying and adjusting tools/rst2s5.py -> build/scripts-2.7\r\n"] -[252.510599, "o", "copying and adjusting tools/rst2latex.py -> build/scripts-2.7\r\n"] -[252.510689, "o", "copying and adjusting tools/rst2xetex.py -> build/scripts-2.7\r\n"] -[252.510706, "o", "copying and adjusting tools/rst2man.py -> build/scripts-2.7\r\n"] -[252.510784, "o", "copying and adjusting tools/rst2xml.py -> build/scripts-2.7\r\n"] -[252.510839, "o", "copying and adjusting tools/rst2pseudoxml.py -> build/scripts-2.7\r\ncopying and adjusting tools/rstpep2html.py -> build/scripts-2.7\r\n"] -[252.510895, "o", "copying and adjusting tools/rst2odt.py -> build/scripts-2.7\r\n"] -[252.510939, "o", "copying and adjusting tools/rst2odt_prepstyles.py -> build/scripts-2.7\r\n"] -[252.51098, "o", "changing mode of build/scripts-2.7/rst2html.py from 644 to 755\r\n"] -[252.511023, "o", "changing mode of build/scripts-2.7/rst2html4.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rst2html5.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rst2s5.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rst2latex.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rst2xetex.py from 644 to 755\r\n"] -[252.511065, "o", "changing mode of build/scripts-2.7/rst2man.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rst2xml.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rst2pseudoxml.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rstpep2html.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rst2odt.py from 644 to 755\r\nchanging mode of build/scripts-2.7/rst2odt_prepstyles.py from 644 to 755\r\n"] -[252.511102, "o", "running build_data\r\n"] -[252.511141, "o", "creating build/lib/docutils/parsers/rst/include\r\n"] -[252.511181, "o", "copying docutils/parsers/rst/include/s5defs.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.51123, "o", "copying docutils/parsers/rst/include/isomopf.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511283, "o", "copying docutils/parsers/rst/include/isomfrk-wide.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511337, "o", "copying docutils/parsers/rst/include/isotech.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511401, "o", "copying docutils/parsers/rst/include/isomopf-wide.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511452, "o", "copying docutils/parsers/rst/include/isogrk2.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511506, "o", "copying docutils/parsers/rst/include/isoamsb.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511563, "o", "copying docutils/parsers/rst/include/isoamso.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511619, "o", "copying docutils/parsers/rst/include/isolat2.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511683, "o", "copying docutils/parsers/rst/include/isocyr2.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511735, "o", "copying docutils/parsers/rst/include/isogrk1.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511786, "o", "copying docutils/parsers/rst/include/isodia.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511836, "o", "copying docutils/parsers/rst/include/isoamsr.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.511898, "o", "copying docutils/parsers/rst/include/isomscr-wide.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.51195, "o", "copying docutils/parsers/rst/include/isoamsa.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512005, "o", "copying docutils/parsers/rst/include/README.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512054, "o", "copying docutils/parsers/rst/include/isomscr.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512105, "o", "copying docutils/parsers/rst/include/isoamsn.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512158, "o", "copying docutils/parsers/rst/include/xhtml1-symbol.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512212, "o", "copying docutils/parsers/rst/include/isoamsc.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512261, "o", "copying docutils/parsers/rst/include/isogrk4.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512311, "o", "copying docutils/parsers/rst/include/mmlextra-wide.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512368, "o", "copying docutils/parsers/rst/include/isocyr1.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.51242, "o", "copying docutils/parsers/rst/include/isonum.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.51247, "o", "copying docutils/parsers/rst/include/mmlextra.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512526, "o", "copying docutils/parsers/rst/include/isogrk4-wide.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512575, "o", "copying docutils/parsers/rst/include/isomfrk.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512645, "o", "copying docutils/parsers/rst/include/isolat1.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512701, "o", "copying docutils/parsers/rst/include/xhtml1-special.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512751, "o", "copying docutils/parsers/rst/include/xhtml1-lat1.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512806, "o", "copying docutils/parsers/rst/include/isobox.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512856, "o", "copying docutils/parsers/rst/include/isogrk3.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512908, "o", "copying docutils/parsers/rst/include/mmlalias.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.512985, "o", "copying docutils/parsers/rst/include/isopub.txt -> build/lib/docutils/parsers/rst/include\r\n"] -[252.513051, "o", "copying docutils/writers/html5_polyglot/minimal.css -> build/lib/docutils/writers/html5_polyglot\r\n"] -[252.513107, "o", "copying docutils/writers/html5_polyglot/plain.css -> build/lib/docutils/writers/html5_polyglot\r\n"] -[252.513159, "o", "copying docutils/writers/html5_polyglot/math.css -> build/lib/docutils/writers/html5_polyglot\r\n"] -[252.513211, "o", "copying docutils/writers/html5_polyglot/template.txt -> build/lib/docutils/writers/html5_polyglot\r\n"] -[252.513271, "o", "copying docutils/writers/html4css1/html4css1.css -> build/lib/docutils/writers/html4css1\r\n"] -[252.513326, "o", "copying docutils/writers/html4css1/template.txt -> build/lib/docutils/writers/html4css1\r\n"] -[252.513386, "o", "copying docutils/writers/latex2e/default.tex -> build/lib/docutils/writers/latex2e\r\n"] -[252.513437, "o", "copying docutils/writers/latex2e/titlepage.tex -> build/lib/docutils/writers/latex2e\r\n"] -[252.513487, "o", "copying docutils/writers/latex2e/xelatex.tex -> build/lib/docutils/writers/latex2e\r\n"] -[252.513548, "o", "copying docutils/writers/pep_html/pep.css -> build/lib/docutils/writers/pep_html\r\n"] -[252.513607, "o", "copying docutils/writers/pep_html/template.txt -> build/lib/docutils/writers/pep_html\r\n"] -[252.513677, "o", "creating build/lib/docutils/writers/s5_html/themes\r\n"] -[252.513713, "o", "copying docutils/writers/s5_html/themes/README.txt -> build/lib/docutils/writers/s5_html/themes\r\n"] -[252.513777, "o", "copying docutils/writers/odf_odt/styles.odt -> build/lib/docutils/writers/odf_odt\r\n"] -[252.513849, "o", "creating build/lib/docutils/writers/s5_html/themes/medium-white\r\n"] -[252.513884, "o", "copying docutils/writers/s5_html/themes/medium-white/framing.css -> build/lib/docutils/writers/s5_html/themes/medium-white\r\n"] -[252.513942, "o", "copying docutils/writers/s5_html/themes/medium-white/pretty.css -> build/lib/docutils/writers/s5_html/themes/medium-white\r\n"] -[252.514002, "o", "creating build/lib/docutils/writers/s5_html/themes/big-black\r\n"] -[252.514038, "o", "copying docutils/writers/s5_html/themes/big-black/framing.css -> build/lib/docutils/writers/s5_html/themes/big-black\r\n"] -[252.514091, "o", "copying docutils/writers/s5_html/themes/big-black/pretty.css -> build/lib/docutils/writers/s5_html/themes/big-black\r\n"] -[252.514142, "o", "copying docutils/writers/s5_html/themes/big-black/__base__ -> build/lib/docutils/writers/s5_html/themes/big-black\r\n"] -[252.514204, "o", "creating build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.51424, "o", "copying docutils/writers/s5_html/themes/default/blank.gif -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514298, "o", "copying docutils/writers/s5_html/themes/default/framing.css -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514349, "o", "copying docutils/writers/s5_html/themes/default/slides.js -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.51441, "o", "copying docutils/writers/s5_html/themes/default/pretty.css -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514464, "o", "copying docutils/writers/s5_html/themes/default/opera.css -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514514, "o", "copying docutils/writers/s5_html/themes/default/outline.css -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514565, "o", "copying docutils/writers/s5_html/themes/default/slides.css -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514621, "o", "copying docutils/writers/s5_html/themes/default/iepngfix.htc -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514675, "o", "copying docutils/writers/s5_html/themes/default/s5-core.css -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514725, "o", "copying docutils/writers/s5_html/themes/default/print.css -> build/lib/docutils/writers/s5_html/themes/default\r\n"] -[252.514787, "o", "creating build/lib/docutils/writers/s5_html/themes/small-white\r\n"] -[252.514823, "o", "copying docutils/writers/s5_html/themes/small-white/framing.css -> build/lib/docutils/writers/s5_html/themes/small-white\r\n"] -[252.514878, "o", "copying docutils/writers/s5_html/themes/small-white/pretty.css -> build/lib/docutils/writers/s5_html/themes/small-white\r\n"] -[252.514951, "o", "creating build/lib/docutils/writers/s5_html/themes/small-black\r\n"] -[252.514988, "o", "copying docutils/writers/s5_html/themes/small-black/pretty.css -> build/lib/docutils/writers/s5_html/themes/small-black\r\n"] -[252.515037, "o", "copying docutils/writers/s5_html/themes/small-black/__base__ -> build/lib/docutils/writers/s5_html/themes/small-black\r\n"] -[252.515096, "o", "creating build/lib/docutils/writers/s5_html/themes/medium-black\r\n"] -[252.515131, "o", "copying docutils/writers/s5_html/themes/medium-black/pretty.css -> build/lib/docutils/writers/s5_html/themes/medium-black\r\n"] -[252.51518, "o", "copying docutils/writers/s5_html/themes/medium-black/__base__ -> build/lib/docutils/writers/s5_html/themes/medium-black\r\n"] -[252.515241, "o", "creating build/lib/docutils/writers/s5_html/themes/big-white\r\n"] -[252.515277, "o", "copying docutils/writers/s5_html/themes/big-white/framing.css -> build/lib/docutils/writers/s5_html/themes/big-white\r\n"] -[252.515326, "o", "copying docutils/writers/s5_html/themes/big-white/pretty.css -> build/lib/docutils/writers/s5_html/themes/big-white\r\n"] -[252.515381, "o", "running install_lib\r\n"] -[252.51553, "o", "creating /tmp/SBo/package-docutils/usr\r\n"] -[252.515566, "o", "creating /tmp/SBo/package-docutils/usr/lib64\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7\r\n"] -[252.520152, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\ncopying build/lib/docutils/core.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers\r\ncopying build/lib/docutils/writers/manpage.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot\r\ncopying build/lib/docutils/writers/html5_polyglot/plain.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot\r\ncopying build/lib/docutils/writers/html5_polyglot/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot\r\ncopying build/lib/docutils/writers/html5_polyglot/minimal.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/wri"] -[252.520198, "o", "ters/html5_polyglot\r\ncopying build/lib/docutils/writers/html5_polyglot/math.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot\r\ncopying build/lib/docutils/writers/html5_polyglot/template.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot\r\ncopying build/lib/docutils/writers/pseudoxml.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers\r\ncopying build/lib/docutils/writers/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers\r\ncopying build/lib/docutils/writers/null.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html4css1\r\ncopying build/lib/docutils/writers/html4css1/html4css1.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html4css1\r\ncopying build/lib/docutils/writers/html4css1/__init__.py -> /"] -[252.520239, "o", "tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html4css1\r\ncopying build/lib/docutils/writers/html4css1/template.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html4css1\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/latex2e\r\ncopying build/lib/docutils/writers/latex2e/titlepage.tex -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/latex2e\r\ncopying build/lib/docutils/writers/latex2e/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/latex2e\r\ncopying build/lib/docutils/writers/latex2e/default.tex -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/latex2e\r\ncopying build/lib/docutils/writers/latex2e/xelatex.tex -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/latex2e\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/xetex\r\ncopying build/lib/docu"] -[252.52028, "o", "tils/writers/xetex/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/xetex\r\ncopying build/lib/docutils/writers/docutils_xml.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/pep_html\r\ncopying build/lib/docutils/writers/pep_html/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/pep_html\r\ncopying build/lib/docutils/writers/pep_html/pep.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/pep_html\r\ncopying build/lib/docutils/writers/pep_html/template.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/pep_html\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html\r\ncopying build/lib/docutils/writers/s5_html/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html\r\ncrea"] -[252.520321, "o", "ting /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-white\r\ncopying build/lib/docutils/writers/s5_html/themes/medium-white/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-white\r\ncopying build/lib/docutils/writers/s5_html/themes/medium-white/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-white\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-black\r\ncopying build/lib/docutils/writers/s5_html/themes/big-black/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-black\r\ncopying build/lib/docutils/writers/s5_html/themes/big-black/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_"] -[252.520363, "o", "html/themes/big-black\r\ncopying build/lib/docutils/writers/s5_html/themes/big-black/__base__ -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-black\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/blank.gif -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/slides.js -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutil"] -[252.520402, "o", "s/writers/s5_html/themes/default/opera.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/outline.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/slides.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/iepngfix.htc -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/s5-core.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncopying build/lib/docutils/writers/s5_html/themes/default/print.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default\r\ncreating "] -[252.520441, "o", "/tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-white\r\ncopying build/lib/docutils/writers/s5_html/themes/small-white/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-white\r\ncopying build/lib/docutils/writers/s5_html/themes/small-white/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-white\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-black\r\ncopying build/lib/docutils/writers/s5_html/themes/small-black/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-black\r\ncopying build/lib/docutils/writers/s5_html/themes/small-black/__base__ -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-black\r\ncopying build/lib/docutils/writers/s5_html/themes/README.txt -> /tmp/SBo/package-d"] -[252.520479, "o", "ocutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-black\r\ncopying build/lib/docutils/writers/s5_html/themes/medium-black/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-black\r\ncopying build/lib/docutils/writers/s5_html/themes/medium-black/__base__ -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-black\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-white\r\ncopying build/lib/docutils/writers/s5_html/themes/big-white/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-white\r\ncopying build/lib/docutils/writers/s5_html/themes/big-white/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-white\r\ncre"] -[252.523426, "o", "ating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/odf_odt\r\ncopying build/lib/docutils/writers/odf_odt/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/odf_odt\r\ncopying build/lib/docutils/writers/odf_odt/pygmentsformatter.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/odf_odt\r\ncopying build/lib/docutils/writers/odf_odt/styles.odt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/odf_odt\r\ncopying build/lib/docutils/writers/_html_base.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers\r\ncopying build/lib/docutils/parsers/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers\r\ncopying build/lib/docutils/parsers/null.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers\r\ncreating /tmp/SBo/packa"] -[252.523545, "o", "ge-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/nl.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/af.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/en.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/sv.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/fi.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/pytho"] -[252.523626, "o", "n2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/de.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/ru.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/it.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/sk.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/fa.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/pl.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/fr.py -> /tmp/SBo/packag"] -[252.523665, "o", "e-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/ja.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/gl.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/da.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/lv.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/lt.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/ca.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/language"] -[252.523764, "o", "s/cs.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/he.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/pt_br.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/zh_tw.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/es.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/zh_cn.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying build/lib/docutils/parsers/rst/languages/eo.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages\r\ncopying buil"] -[252.5238, "o", "d/lib/docutils/parsers/rst/tableparser.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst\r\ncopying build/lib/docutils/parsers/rst/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/directives/html.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/directives/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/directives/admonitions.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/directives/tables.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/par"] -[252.523891, "o", "sers/rst/directives/images.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/directives/misc.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/directives/body.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/directives/references.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/directives/parts.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives\r\ncopying build/lib/docutils/parsers/rst/states.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst\r\ncreating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\ncopying build/lib/docutils/parsers/rst/inc"] -[252.523968, "o", "lude/s5defs.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\ncopying build/lib/docutils/parsers/rst/include/isomopf.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\ncopying build/lib/docutils/parsers/rst/include/isomfrk-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\ncopying build/lib/docutils/parsers/rst/include/isotech.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\ncopying build/lib/docutils/parsers/rst/include/isomopf-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524039, "o", "copying build/lib/docutils/parsers/rst/include/isogrk2.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524108, "o", "copying build/lib/docutils/parsers/rst/include/isoamsb.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524163, "o", "copying build/lib/docutils/parsers/rst/include/isoamso.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524222, "o", "copying build/lib/docutils/parsers/rst/include/isolat2.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524279, "o", "copying build/lib/docutils/parsers/rst/include/isocyr2.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524338, "o", "copying build/lib/docutils/parsers/rst/include/isogrk1.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524401, "o", "copying build/lib/docutils/parsers/rst/include/isodia.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524466, "o", "copying build/lib/docutils/parsers/rst/include/isoamsr.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524536, "o", "copying build/lib/docutils/parsers/rst/include/isomscr-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524603, "o", "copying build/lib/docutils/parsers/rst/include/isoamsa.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524719, "o", "copying build/lib/docutils/parsers/rst/include/README.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524778, "o", "copying build/lib/docutils/parsers/rst/include/isomscr.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524825, "o", "copying build/lib/docutils/parsers/rst/include/isoamsn.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524886, "o", "copying build/lib/docutils/parsers/rst/include/xhtml1-symbol.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524945, "o", "copying build/lib/docutils/parsers/rst/include/isoamsc.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.524999, "o", "copying build/lib/docutils/parsers/rst/include/isogrk4.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525054, "o", "copying build/lib/docutils/parsers/rst/include/mmlextra-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525118, "o", "copying build/lib/docutils/parsers/rst/include/isocyr1.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525176, "o", "copying build/lib/docutils/parsers/rst/include/isonum.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.52523, "o", "copying build/lib/docutils/parsers/rst/include/mmlextra.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525286, "o", "copying build/lib/docutils/parsers/rst/include/isogrk4-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525372, "o", "copying build/lib/docutils/parsers/rst/include/isomfrk.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525426, "o", "copying build/lib/docutils/parsers/rst/include/isolat1.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525486, "o", "copying build/lib/docutils/parsers/rst/include/xhtml1-special.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525542, "o", "copying build/lib/docutils/parsers/rst/include/xhtml1-lat1.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525608, "o", "copying build/lib/docutils/parsers/rst/include/isobox.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525667, "o", "copying build/lib/docutils/parsers/rst/include/isogrk3.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525724, "o", "copying build/lib/docutils/parsers/rst/include/mmlalias.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525817, "o", "copying build/lib/docutils/parsers/rst/include/isopub.txt -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/include\r\n"] -[252.525883, "o", "copying build/lib/docutils/parsers/rst/roles.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst\r\n"] -[252.525959, "o", "copying build/lib/docutils/frontend.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\n"] -[252.526096, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526149, "o", "copying build/lib/docutils/languages/nl.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526211, "o", "copying build/lib/docutils/languages/af.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526271, "o", "copying build/lib/docutils/languages/en.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526332, "o", "copying build/lib/docutils/languages/sv.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526393, "o", "copying build/lib/docutils/languages/fi.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526459, "o", "copying build/lib/docutils/languages/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526518, "o", "copying build/lib/docutils/languages/de.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526578, "o", "copying build/lib/docutils/languages/ru.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526663, "o", "copying build/lib/docutils/languages/it.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526723, "o", "copying build/lib/docutils/languages/sk.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526782, "o", "copying build/lib/docutils/languages/fa.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526841, "o", "copying build/lib/docutils/languages/pl.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526899, "o", "copying build/lib/docutils/languages/fr.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.526957, "o", "copying build/lib/docutils/languages/ja.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527015, "o", "copying build/lib/docutils/languages/gl.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527075, "o", "copying build/lib/docutils/languages/da.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527133, "o", "copying build/lib/docutils/languages/lv.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527193, "o", "copying build/lib/docutils/languages/lt.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527251, "o", "copying build/lib/docutils/languages/ca.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527309, "o", "copying build/lib/docutils/languages/cs.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527367, "o", "copying build/lib/docutils/languages/he.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527427, "o", "copying build/lib/docutils/languages/pt_br.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527485, "o", "copying build/lib/docutils/languages/zh_tw.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527544, "o", "copying build/lib/docutils/languages/es.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527608, "o", "copying build/lib/docutils/languages/zh_cn.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.527669, "o", "copying build/lib/docutils/languages/eo.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages\r\n"] -[252.52773, "o", "copying build/lib/docutils/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\n"] -[252.527794, "o", "copying build/lib/docutils/io.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\n"] -[252.527892, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers\r\n"] -[252.527935, "o", "copying build/lib/docutils/readers/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers\r\n"] -[252.527997, "o", "copying build/lib/docutils/readers/doctree.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers\r\n"] -[252.528055, "o", "copying build/lib/docutils/readers/standalone.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers\r\n"] -[252.528114, "o", "copying build/lib/docutils/readers/pep.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers\r\n"] -[252.528195, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils\r\n"] -[252.528258, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math\r\n"] -[252.528304, "o", "copying build/lib/docutils/utils/math/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math\r\n"] -[252.528365, "o", "copying build/lib/docutils/utils/math/math2html.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math\r\n"] -[252.528531, "o", "copying build/lib/docutils/utils/math/unichar2tex.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math\r\n"] -[252.528605, "o", "copying build/lib/docutils/utils/math/tex2mathml_extern.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math\r\n"] -[252.528669, "o", "copying build/lib/docutils/utils/math/latex2mathml.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math\r\n"] -[252.528738, "o", "copying build/lib/docutils/utils/math/tex2unichar.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math\r\n"] -[252.52882, "o", "copying build/lib/docutils/utils/error_reporting.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils\r\n"] -[252.528882, "o", "copying build/lib/docutils/utils/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils\r\n"] -[252.528961, "o", "copying build/lib/docutils/utils/roman.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils\r\n"] -[252.52902, "o", "copying build/lib/docutils/utils/punctuation_chars.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils\r\n"] -[252.529083, "o", "copying build/lib/docutils/utils/smartquotes.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils\r\n"] -[252.529166, "o", "copying build/lib/docutils/utils/urischemes.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils\r\n"] -[252.529229, "o", "copying build/lib/docutils/utils/code_analyzer.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils\r\n"] -[252.529292, "o", "copying build/lib/docutils/examples.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\n"] -[252.529351, "o", "copying build/lib/docutils/nodes.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\n"] -[252.529476, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.529518, "o", "copying build/lib/docutils/transforms/components.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.52958, "o", "copying build/lib/docutils/transforms/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.529664, "o", "copying build/lib/docutils/transforms/writer_aux.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.529725, "o", "copying build/lib/docutils/transforms/peps.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.529791, "o", "copying build/lib/docutils/transforms/frontmatter.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.529859, "o", "copying build/lib/docutils/transforms/misc.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.52992, "o", "copying build/lib/docutils/transforms/universal.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.529983, "o", "copying build/lib/docutils/transforms/references.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.530062, "o", "copying build/lib/docutils/transforms/parts.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms\r\n"] -[252.530125, "o", "copying build/lib/docutils/statemachine.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\n"] -[252.530218, "o", "copying build/lib/docutils/_compat.py -> /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils\r\n"] -[252.53041, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/core.py to core.pyc\r\n"] -[252.533545, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/manpage.py to manpage.pyc\r\n"] -[252.538302, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot/__init__.py to __init__.pyc\r\n"] -[252.539382, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/pseudoxml.py to pseudoxml.pyc\r\n"] -[252.539502, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/__init__.py to __init__.pyc\r\n"] -[252.539968, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/null.py to null.pyc\r\n"] -[252.540104, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/html4css1/__init__.py to __init__.pyc\r\n"] -[252.543251, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/latex2e/__init__.py to __init__.pyc\r\n"] -[252.556914, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/xetex/__init__.py to __init__.pyc\r\n"] -[252.55745, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/docutils_xml.py to docutils_xml.pyc\r\n"] -[252.558245, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/pep_html/__init__.py to __init__.pyc\r\n"] -[252.558695, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/s5_html/__init__.py to __init__.pyc\r\n"] -[252.560077, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/odf_odt/__init__.py to __init__.pyc\r\n"] -[252.57932, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/odf_odt/pygmentsformatter.py to pygmentsformatter.pyc\r\n"] -[252.579871, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/writers/_html_base.py to _html_base.pyc\r\n"] -[252.590996, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/__init__.py to __init__.pyc\r\n"] -[252.591292, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/null.py to null.pyc\r\n"] -[252.591417, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/nl.py to nl.pyc\r\n"] -[252.591775, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/af.py to af.pyc\r\n"] -[252.592096, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/en.py to en.pyc\r\n"] -[252.592395, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/sv.py to sv.pyc\r\n"] -[252.592663, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fi.py to fi.pyc\r\n"] -[252.593012, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/__init__.py to __init__.pyc\r\n"] -[252.593234, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/de.py to de.pyc\r\n"] -[252.593564, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ru.py to ru.pyc\r\n"] -[252.594018, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/it.py to it.pyc\r\n"] -[252.594296, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/sk.py to sk.pyc\r\n"] -[252.594609, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fa.py to fa.pyc\r\n"] -[252.595028, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/pl.py to pl.pyc\r\n"] -[252.595324, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fr.py to fr.pyc\r\n"] -[252.595631, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ja.py to ja.pyc\r\n"] -[252.596067, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/gl.py to gl.pyc\r\n"] -[252.596376, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/da.py to da.pyc\r\n"] -[252.596744, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/lv.py to lv.pyc\r\n"] -[252.597049, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/lt.py to lt.pyc\r\n"] -[252.597397, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ca.py to ca.pyc\r\n"] -[252.597767, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/cs.py to cs.pyc\r\n"] -[252.598114, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/he.py to he.pyc\r\n"] -[252.59846, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/pt_br.py to pt_br.pyc\r\n"] -[252.598792, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/zh_tw.py to zh_tw.pyc\r\n"] -[252.599148, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/es.py to es.pyc\r\n"] -[252.599522, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/zh_cn.py to zh_cn.pyc\r\n"] -[252.599893, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/eo.py to eo.pyc\r\n"] -[252.600248, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/tableparser.py to tableparser.pyc\r\n"] -[252.603184, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/__init__.py to __init__.pyc\r\n"] -[252.604245, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/html.py to html.pyc\r\n"] -[252.604767, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/__init__.py to __init__.pyc\r\n"] -[252.606172, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/admonitions.py to admonitions.pyc\r\n"] -[252.606607, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/tables.py to tables.pyc\r\n"] -[252.609003, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/images.py to images.pyc\r\n"] -[252.609868, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/misc.py to misc.pyc\r\n"] -[252.612314, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/body.py to body.pyc\r\n"] -[252.614299, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/references.py to references.pyc\r\n"] -[252.614465, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/parts.py to parts.pyc\r\n"] -[252.615193, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/states.py to states.pyc\r\n"] -[252.629539, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/parsers/rst/roles.py to roles.pyc\r\n"] -[252.631471, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/frontend.py to frontend.pyc\r\n"] -[252.63484, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/nl.py to nl.pyc\r\n"] -[252.63504, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/af.py to af.pyc\r\n"] -[252.635248, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/en.py to en.pyc\r\n"] -[252.635469, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/sv.py to sv.pyc\r\n"] -[252.635655, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/fi.py to fi.pyc\r\n"] -[252.635877, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/__init__.py to __init__.pyc\r\n"] -[252.636215, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/de.py to de.pyc\r\n"] -[252.636394, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/ru.py to ru.pyc\r\n"] -[252.636621, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/it.py to it.pyc\r\n"] -[252.636886, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/sk.py to sk.pyc\r\n"] -[252.637029, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/fa.py to fa.pyc\r\n"] -[252.637306, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/pl.py to pl.pyc\r\n"] -[252.637507, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/fr.py to fr.pyc\r\n"] -[252.637739, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/ja.py to ja.pyc\r\n"] -[252.637942, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/gl.py to gl.pyc\r\n"] -[252.638121, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/da.py to da.pyc\r\n"] -[252.638358, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/lv.py to lv.pyc\r\n"] -[252.638507, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/lt.py to lt.pyc\r\n"] -[252.638775, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/ca.py to ca.pyc\r\n"] -[252.638932, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/cs.py to cs.pyc\r\n"] -[252.639131, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/he.py to he.pyc\r\n"] -[252.639332, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/pt_br.py to pt_br.pyc\r\n"] -[252.639489, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/zh_tw.py to zh_tw.pyc\r\n"] -[252.639733, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/es.py to es.pyc\r\n"] -[252.639931, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/zh_cn.py to zh_cn.pyc\r\n"] -[252.640115, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/languages/eo.py to eo.pyc\r\n"] -[252.640364, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/__init__.py to __init__.pyc\r\n"] -[252.640723, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/io.py to io.pyc\r\n"] -[252.642395, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers/__init__.py to __init__.pyc\r\n"] -[252.642967, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers/doctree.py to doctree.pyc\r\n"] -[252.643219, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers/standalone.py to standalone.pyc\r\n"] -[252.643476, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/readers/pep.py to pep.pyc\r\n"] -[252.643797, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math/__init__.py to __init__.pyc\r\n"] -[252.643892, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math/math2html.py to math2html.pyc\r\n"] -[252.675462, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math/unichar2tex.py to unichar2tex.pyc\r\n"] -[252.677581, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math/tex2mathml_extern.py to tex2mathml_extern.pyc\r\n"] -[252.678246, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math/latex2mathml.py to latex2mathml.pyc\r\n"] -[252.680573, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/math/tex2unichar.py to tex2unichar.pyc\r\n"] -[252.682514, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/error_reporting.py to error_reporting.pyc\r\n"] -[252.683311, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/__init__.py to __init__.pyc\r\n"] -[252.685961, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/roman.py to roman.pyc\r\n"] -[252.686384, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/punctuation_chars.py to punctuation_chars.pyc\r\n"] -[252.68666, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/smartquotes.py to smartquotes.pyc\r\n"] -[252.689199, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/urischemes.py to urischemes.pyc\r\n"] -[252.689592, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/utils/code_analyzer.py to code_analyzer.pyc\r\n"] -[252.69018, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/examples.py to examples.pyc\r\n"] -[252.690607, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/nodes.py to nodes.pyc\r\n"] -[252.697655, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/components.py to components.pyc\r\n"] -[252.697856, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/__init__.py to __init__.pyc\r\n"] -[252.698474, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/writer_aux.py to writer_aux.pyc\r\n"] -[252.69879, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/peps.py to peps.pyc\r\n"] -[252.700161, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/frontmatter.py to frontmatter.pyc\r\n"] -[252.701529, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/misc.py to misc.pyc\r\n"] -[252.702059, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/universal.py to universal.pyc\r\n"] -[252.703164, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/references.py to references.pyc\r\n"] -[252.706888, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/transforms/parts.py to parts.pyc\r\n"] -[252.707728, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/statemachine.py to statemachine.pyc\r\n"] -[252.711958, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils/_compat.py to _compat.pyc\r\n"] -[252.712142, "o", "running install_scripts\r\n"] -[252.712276, "o", "creating /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.712341, "o", "copying build/scripts-2.7/rst2s5.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.712437, "o", "copying build/scripts-2.7/rst2pseudoxml.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.712519, "o", "copying build/scripts-2.7/rst2html4.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.712596, "o", "copying build/scripts-2.7/rst2man.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.712678, "o", "copying build/scripts-2.7/rst2xetex.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.712754, "o", "copying build/scripts-2.7/rst2html5.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.712834, "o", "copying build/scripts-2.7/rstpep2html.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.712919, "o", "copying build/scripts-2.7/rst2odt.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.71301, "o", "copying build/scripts-2.7/rst2latex.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.713086, "o", "copying build/scripts-2.7/rst2html.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.713163, "o", "copying build/scripts-2.7/rst2xml.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.713239, "o", "copying build/scripts-2.7/rst2odt_prepstyles.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[252.713297, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2s5.py to 755\r\n"] -[252.713345, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2pseudoxml.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2html4.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2man.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2xetex.py to 755\r\n"] -[252.713396, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2html5.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rstpep2html.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2odt.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2latex.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2html.py to 755\r\n"] -[252.713448, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2xml.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2odt_prepstyles.py to 755\r\nrunning install_data\r\n"] -[252.714699, "o", "running install_egg_info\r\n"] -[252.717912, "o", "Writing /tmp/SBo/package-docutils/usr/lib64/python2.7/site-packages/docutils-0.14-py2.7.egg-info\r\n"] -[252.778036, "o", "RefactoringTool: Skipping optional fixer: buffer\r\n"] -[252.793109, "o", "RefactoringTool: Skipping optional fixer: idioms\r\n"] -[252.829821, "o", "RefactoringTool: Skipping optional fixer: set_literal\r\n"] -[252.854098, "o", "RefactoringTool: Skipping optional fixer: ws_comma\r\n"] -[252.911957, "o", "RefactoringTool: Refactored docutils/__init__.py\r\n"] -[252.92189, "o", "RefactoringTool: Refactored docutils/_compat.py\r\n"] -[253.034214, "o", "RefactoringTool: Refactored docutils/core.py\r\n"] -[253.046116, "o", "RefactoringTool: No changes to docutils/examples.py\r\n"] -[253.256955, "o", "RefactoringTool: Refactored docutils/frontend.py\r\n"] -[253.34737, "o", "RefactoringTool: Refactored docutils/io.py\r\n"] -[253.897178, "o", "RefactoringTool: Refactored docutils/nodes.py\r\n"] -[254.270856, "o", "RefactoringTool: Refactored docutils/statemachine.py\r\n"] -[254.282023, "o", "RefactoringTool: No changes to docutils/languages/__init__.py\r\n"] -[254.29134, "o", "RefactoringTool: No changes to docutils/languages/af.py\r\n"] -[254.301598, "o", "RefactoringTool: Refactored docutils/languages/ca.py\r\n"] -[254.310564, "o", "RefactoringTool: Refactored docutils/languages/cs.py\r\n"] -[254.320783, "o", "RefactoringTool: Refactored docutils/languages/da.py\r\n"] -[254.332057, "o", "RefactoringTool: No changes to docutils/languages/de.py\r\n"] -[254.34034, "o", "RefactoringTool: No changes to docutils/languages/en.py\r\n"] -[254.350135, "o", "RefactoringTool: Refactored docutils/languages/eo.py\r\n"] -[254.358819, "o", "RefactoringTool: Refactored docutils/languages/es.py\r\n"] -[254.36986, "o", "RefactoringTool: Refactored docutils/languages/fa.py\r\n"] -[254.380434, "o", "RefactoringTool: Refactored docutils/languages/fi.py\r\n"] -[254.389682, "o", "RefactoringTool: Refactored docutils/languages/fr.py\r\n"] -[254.404145, "o", "RefactoringTool: Refactored docutils/languages/gl.py\r\n"] -[254.416804, "o", "RefactoringTool: Refactored docutils/languages/he.py\r\n"] -[254.428219, "o", "RefactoringTool: No changes to docutils/languages/it.py\r\n"] -[254.44487, "o", "RefactoringTool: Refactored docutils/languages/ja.py\r\n"] -[254.456361, "o", "RefactoringTool: Refactored docutils/languages/lt.py\r\n"] -[254.467297, "o", "RefactoringTool: No changes to docutils/languages/lv.py\r\n"] -[254.480527, "o", "RefactoringTool: No changes to docutils/languages/nl.py\r\n"] -[254.49184, "o", "RefactoringTool: Refactored docutils/languages/pl.py\r\n"] -[254.50204, "o", "RefactoringTool: Refactored docutils/languages/pt_br.py\r\n"] -[254.511654, "o", "RefactoringTool: Refactored docutils/languages/ru.py\r\n"] -[254.522031, "o", "RefactoringTool: Refactored docutils/languages/sk.py\r\n"] -[254.531907, "o", "RefactoringTool: Refactored docutils/languages/sv.py\r\n"] -[254.540977, "o", "RefactoringTool: Refactored docutils/languages/zh_cn.py\r\n"] -[254.551558, "o", "RefactoringTool: Refactored docutils/languages/zh_tw.py\r\n"] -[254.565321, "o", "RefactoringTool: No changes to docutils/parsers/__init__.py\r\n"] -[254.568704, "o", "RefactoringTool: No changes to docutils/parsers/null.py\r\n"] -[254.625597, "o", "RefactoringTool: No changes to docutils/parsers/rst/__init__.py\r\n"] -[254.691013, "o", "RefactoringTool: Refactored docutils/parsers/rst/roles.py\r\n"] -[255.835752, "o", "RefactoringTool: Refactored docutils/parsers/rst/states.py\r\n"] -[255.937814, "o", "RefactoringTool: Refactored docutils/parsers/rst/tableparser.py\r\n"] -[256.010648, "o", "RefactoringTool: Refactored docutils/parsers/rst/directives/__init__.py\r\n"] -[256.029977, "o", "RefactoringTool: No changes to docutils/parsers/rst/directives/admonitions.py\r\n"] -[256.0963, "o", "RefactoringTool: Refactored docutils/parsers/rst/directives/body.py\r\n"] -[256.120792, "o", "RefactoringTool: Refactored docutils/parsers/rst/directives/html.py\r\n"] -[256.172443, "o", "RefactoringTool: Refactored docutils/parsers/rst/directives/images.py\r\n"] -[256.40521, "o", "RefactoringTool: Refactored docutils/parsers/rst/directives/misc.py\r\n"] -[256.435102, "o", "RefactoringTool: No changes to docutils/parsers/rst/directives/parts.py\r\n"] -[256.443696, "o", "RefactoringTool: No changes to docutils/parsers/rst/directives/references.py\r\n"] -[256.600452, "o", "RefactoringTool: Refactored docutils/parsers/rst/directives/tables.py\r\n"] -[256.610445, "o", "RefactoringTool: No changes to docutils/parsers/rst/languages/__init__.py\r\n"] -[256.628927, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/af.py\r\n"] -[256.662125, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/ca.py\r\n"] -[256.687101, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/cs.py\r\n"] -[256.714586, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/da.py\r\n"] -[256.735216, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/de.py\r\n"] -[256.754589, "o", "RefactoringTool: No changes to docutils/parsers/rst/languages/en.py\r\n"] -[256.779992, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/eo.py\r\n"] -[256.808202, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/es.py\r\n"] -[256.829881, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/fa.py\r\n"] -[256.851824, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/fi.py\r\n"] -[256.872837, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/fr.py\r\n"] -[256.894449, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/gl.py\r\n"] -[256.913717, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/he.py\r\n"] -[256.93058, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/it.py\r\n"] -[256.955223, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/ja.py\r\n"] -[256.975865, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/lt.py\r\n"] -[256.994462, "o", "RefactoringTool: No changes to docutils/parsers/rst/languages/lv.py\r\n"] -[257.014265, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/nl.py\r\n"] -[257.033846, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/pl.py\r\n"] -[257.053867, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/pt_br.py\r\n"] -[257.073139, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/ru.py\r\n"] -[257.090472, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/sk.py\r\n"] -[257.108082, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/sv.py\r\n"] -[257.127261, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/zh_cn.py\r\n"] -[257.146209, "o", "RefactoringTool: Refactored docutils/parsers/rst/languages/zh_tw.py\r\n"] -[257.170231, "o", "RefactoringTool: No changes to docutils/readers/__init__.py\r\n"] -[257.176141, "o", "RefactoringTool: No changes to docutils/readers/doctree.py\r\n"] -[257.187963, "o", "RefactoringTool: No changes to docutils/readers/pep.py\r\n"] -[257.201535, "o", "RefactoringTool: No changes to docutils/readers/standalone.py\r\n"] -[257.227496, "o", "RefactoringTool: No changes to docutils/transforms/__init__.py\r\n"] -[257.239633, "o", "RefactoringTool: No changes to docutils/transforms/components.py\r\n"] -[257.313741, "o", "RefactoringTool: Refactored docutils/transforms/frontmatter.py\r\n"] -[257.339411, "o", "RefactoringTool: No changes to docutils/transforms/misc.py\r\n"] -[257.384955, "o", "RefactoringTool: Refactored docutils/transforms/parts.py\r\n"] -[257.512831, "o", "RefactoringTool: No changes to docutils/transforms/peps.py\r\n"] -[257.722348, "o", "RefactoringTool: Refactored docutils/transforms/references.py\r\n"] -[257.781191, "o", "RefactoringTool: No changes to docutils/transforms/universal.py\r\n"] -[257.792681, "o", "RefactoringTool: No changes to docutils/transforms/writer_aux.py\r\n"] -[257.922464, "o", "RefactoringTool: Refactored docutils/utils/__init__.py\r\n"] -[257.945956, "o", "RefactoringTool: Refactored docutils/utils/code_analyzer.py\r\n"] -[257.988404, "o", "RefactoringTool: Refactored docutils/utils/error_reporting.py\r\n"] -[257.999026, "o", "RefactoringTool: Refactored docutils/utils/punctuation_chars.py\r\n"] -[258.01052, "o", "RefactoringTool: Refactored docutils/utils/roman.py\r\n"] -[258.126813, "o", "RefactoringTool: Refactored docutils/utils/smartquotes.py\r\n"] -[258.164111, "o", "RefactoringTool: No changes to docutils/utils/urischemes.py\r\n"] -[258.168394, "o", "RefactoringTool: No changes to docutils/utils/math/__init__.py\r\n"] -[258.363237, "o", "RefactoringTool: Refactored docutils/utils/math/latex2mathml.py\r\n"] -[261.025972, "o", "RefactoringTool: Refactored docutils/utils/math/math2html.py\r\n"] -[261.058289, "o", "RefactoringTool: Refactored docutils/utils/math/tex2mathml_extern.py\r\n"] -[261.387824, "o", "RefactoringTool: Refactored docutils/utils/math/tex2unichar.py\r\n"] -[262.542825, "o", "RefactoringTool: Refactored docutils/utils/math/unichar2tex.py\r\n"] -[262.566533, "o", "RefactoringTool: No changes to docutils/writers/__init__.py\r\n"] -[266.995489, "o", "RefactoringTool: Refactored docutils/writers/_html_base.py\r\n"] -[267.04364, "o", "RefactoringTool: Refactored docutils/writers/docutils_xml.py\r\n"] -[270.978007, "o", "RefactoringTool: Refactored docutils/writers/manpage.py\r\n"] -[270.983781, "o", "RefactoringTool: No changes to docutils/writers/null.py\r\n"] -[270.99198, "o", "RefactoringTool: No changes to docutils/writers/pseudoxml.py\r\n"] -[271.443628, "o", "RefactoringTool: Refactored docutils/writers/html4css1/__init__.py\r\n"] -[271.484718, "o", "RefactoringTool: No changes to docutils/writers/html5_polyglot/__init__.py\r\n"] -[276.709089, "o", "RefactoringTool: Refactored docutils/writers/latex2e/__init__.py\r\n"] -[284.422081, "o", "RefactoringTool: Refactored docutils/writers/odf_odt/__init__.py\r\n"] -[284.447382, "o", "RefactoringTool: No changes to docutils/writers/odf_odt/pygmentsformatter.py\r\n"] -[284.478887, "o", "RefactoringTool: No changes to docutils/writers/pep_html/__init__.py\r\n"] -[284.64375, "o", "RefactoringTool: Refactored docutils/writers/s5_html/__init__.py\r\n"] -[284.672563, "o", "RefactoringTool: Refactored docutils/writers/xetex/__init__.py\r\n"] -[284.672856, "o", "RefactoringTool: Files that were modified:\r\nRefactoringTool: docutils/__init__.py\r\nRefactoringTool: docutils/_compat.py\r\n"] -[284.672946, "o", "RefactoringTool: docutils/core.py\r\nRefactoringTool: docutils/examples.py\r\nRefactoringTool: docutils/frontend.py\r\nRefactoringTool: docutils/io.py\r\nRefactoringTool: docutils/nodes.py\r\nRefactoringTool: docutils/statemachine.py\r\n"] -[284.673048, "o", "RefactoringTool: docutils/languages/__init__.py\r\nRefactoringTool: docutils/languages/af.py\r\nRefactoringTool: docutils/languages/ca.py\r\nRefactoringTool: docutils/languages/cs.py\r\n"] -[284.673139, "o", "RefactoringTool: docutils/languages/da.py\r\nRefactoringTool: docutils/languages/de.py\r\nRefactoringTool: docutils/languages/en.py\r\nRefactoringTool: docutils/languages/eo.py\r\n"] -[284.673225, "o", "RefactoringTool: docutils/languages/es.py\r\nRefactoringTool: docutils/languages/fa.py\r\nRefactoringTool: docutils/languages/fi.py\r\nRefactoringTool: docutils/languages/fr.py\r\n"] -[284.673272, "o", "RefactoringTool: docutils/languages/gl.py\r\nRefactoringTool: docutils/languages/he.py\r\nRefactoringTool: docutils/languages/it.py\r\n"] -[284.673304, "o", "RefactoringTool: docutils/languages/ja.py\r\n"] -[284.673336, "o", "RefactoringTool: docutils/languages/lt.py\r\n"] -[284.673366, "o", "RefactoringTool: docutils/languages/lv.py\r\nRefactoringTool: docutils/languages/nl.py\r\n"] -[284.673394, "o", "RefactoringTool: docutils/languages/pl.py\r\n"] -[284.673422, "o", "RefactoringTool: docutils/languages/pt_br.py\r\n"] -[284.673451, "o", "RefactoringTool: docutils/languages/ru.py\r\nRefactoringTool: docutils/languages/sk.py\r\n"] -[284.673477, "o", "RefactoringTool: docutils/languages/sv.py\r\n"] -[284.673503, "o", "RefactoringTool: docutils/languages/zh_cn.py\r\n"] -[284.673529, "o", "RefactoringTool: docutils/languages/zh_tw.py\r\n"] -[284.673559, "o", "RefactoringTool: docutils/parsers/__init__.py\r\nRefactoringTool: docutils/parsers/null.py\r\n"] -[284.673588, "o", "RefactoringTool: docutils/parsers/rst/__init__.py\r\n"] -[284.673625, "o", "RefactoringTool: docutils/parsers/rst/roles.py\r\n"] -[284.673658, "o", "RefactoringTool: docutils/parsers/rst/states.py\r\nRefactoringTool: docutils/parsers/rst/tableparser.py\r\n"] -[284.673692, "o", "RefactoringTool: docutils/parsers/rst/directives/__init__.py\r\n"] -[284.67372, "o", "RefactoringTool: docutils/parsers/rst/directives/admonitions.py\r\nRefactoringTool: docutils/parsers/rst/directives/body.py\r\n"] -[284.673751, "o", "RefactoringTool: docutils/parsers/rst/directives/html.py\r\n"] -[284.67378, "o", "RefactoringTool: docutils/parsers/rst/directives/images.py\r\n"] -[284.673808, "o", "RefactoringTool: docutils/parsers/rst/directives/misc.py\r\n"] -[284.673837, "o", "RefactoringTool: docutils/parsers/rst/directives/parts.py\r\nRefactoringTool: docutils/parsers/rst/directives/references.py\r\n"] -[284.673868, "o", "RefactoringTool: docutils/parsers/rst/directives/tables.py\r\n"] -[284.673896, "o", "RefactoringTool: docutils/parsers/rst/languages/__init__.py\r\n"] -[284.673923, "o", "RefactoringTool: docutils/parsers/rst/languages/af.py\r\nRefactoringTool: docutils/parsers/rst/languages/ca.py\r\n"] -[284.673954, "o", "RefactoringTool: docutils/parsers/rst/languages/cs.py\r\n"] -[284.673984, "o", "RefactoringTool: docutils/parsers/rst/languages/da.py\r\n"] -[284.674014, "o", "RefactoringTool: docutils/parsers/rst/languages/de.py\r\nRefactoringTool: docutils/parsers/rst/languages/en.py\r\n"] -[284.674043, "o", "RefactoringTool: docutils/parsers/rst/languages/eo.py\r\n"] -[284.674071, "o", "RefactoringTool: docutils/parsers/rst/languages/es.py\r\n"] -[284.674099, "o", "RefactoringTool: docutils/parsers/rst/languages/fa.py\r\nRefactoringTool: docutils/parsers/rst/languages/fi.py\r\n"] -[284.674129, "o", "RefactoringTool: docutils/parsers/rst/languages/fr.py\r\n"] -[284.674156, "o", "RefactoringTool: docutils/parsers/rst/languages/gl.py\r\n"] -[284.674184, "o", "RefactoringTool: docutils/parsers/rst/languages/he.py\r\nRefactoringTool: docutils/parsers/rst/languages/it.py\r\n"] -[284.674214, "o", "RefactoringTool: docutils/parsers/rst/languages/ja.py\r\n"] -[284.674241, "o", "RefactoringTool: docutils/parsers/rst/languages/lt.py\r\n"] -[284.674271, "o", "RefactoringTool: docutils/parsers/rst/languages/lv.py\r\nRefactoringTool: docutils/parsers/rst/languages/nl.py\r\n"] -[284.674297, "o", "RefactoringTool: docutils/parsers/rst/languages/pl.py\r\n"] -[284.674323, "o", "RefactoringTool: docutils/parsers/rst/languages/pt_br.py\r\n"] -[284.674352, "o", "RefactoringTool: docutils/parsers/rst/languages/ru.py\r\n"] -[284.674381, "o", "RefactoringTool: docutils/parsers/rst/languages/sk.py\r\nRefactoringTool: docutils/parsers/rst/languages/sv.py\r\n"] -[284.674407, "o", "RefactoringTool: docutils/parsers/rst/languages/zh_cn.py\r\n"] -[284.674432, "o", "RefactoringTool: docutils/parsers/rst/languages/zh_tw.py\r\n"] -[284.674457, "o", "RefactoringTool: docutils/readers/__init__.py\r\n"] -[284.674484, "o", "RefactoringTool: docutils/readers/doctree.py\r\n"] -[284.674513, "o", "RefactoringTool: docutils/readers/pep.py\r\nRefactoringTool: docutils/readers/standalone.py\r\n"] -[284.674539, "o", "RefactoringTool: docutils/transforms/__init__.py\r\n"] -[284.674567, "o", "RefactoringTool: docutils/transforms/components.py\r\n"] -[284.674594, "o", "RefactoringTool: docutils/transforms/frontmatter.py\r\n"] -[284.67463, "o", "RefactoringTool: docutils/transforms/misc.py\r\nRefactoringTool: docutils/transforms/parts.py\r\n"] -[284.674656, "o", "RefactoringTool: docutils/transforms/peps.py\r\n"] -[284.674681, "o", "RefactoringTool: docutils/transforms/references.py\r\n"] -[284.674706, "o", "RefactoringTool: docutils/transforms/universal.py\r\n"] -[284.67473, "o", "RefactoringTool: docutils/transforms/writer_aux.py\r\n"] -[284.674755, "o", "RefactoringTool: docutils/utils/__init__.py\r\n"] -[284.674783, "o", "RefactoringTool: docutils/utils/code_analyzer.py\r\n"] -[284.67481, "o", "RefactoringTool: docutils/utils/error_reporting.py\r\nRefactoringTool: docutils/utils/punctuation_chars.py\r\n"] -[284.674839, "o", "RefactoringTool: docutils/utils/roman.py\r\n"] -[284.674866, "o", "RefactoringTool: docutils/utils/smartquotes.py\r\n"] -[284.674893, "o", "RefactoringTool: docutils/utils/urischemes.py\r\n"] -[284.674921, "o", "RefactoringTool: docutils/utils/math/__init__.py\r\nRefactoringTool: docutils/utils/math/latex2mathml.py\r\n"] -[284.674946, "o", "RefactoringTool: docutils/utils/math/math2html.py\r\n"] -[284.674972, "o", "RefactoringTool: docutils/utils/math/tex2mathml_extern.py\r\n"] -[284.674996, "o", "RefactoringTool: docutils/utils/math/tex2unichar.py\r\n"] -[284.675025, "o", "RefactoringTool: docutils/utils/math/unichar2tex.py\r\n"] -[284.675051, "o", "RefactoringTool: docutils/writers/__init__.py\r\nRefactoringTool: docutils/writers/_html_base.py\r\n"] -[284.675078, "o", "RefactoringTool: docutils/writers/docutils_xml.py\r\n"] -[284.675108, "o", "RefactoringTool: docutils/writers/manpage.py\r\n"] -[284.675135, "o", "RefactoringTool: docutils/writers/null.py\r\n"] -[284.675164, "o", "RefactoringTool: docutils/writers/pseudoxml.py\r\nRefactoringTool: docutils/writers/html4css1/__init__.py\r\n"] -[284.67519, "o", "RefactoringTool: docutils/writers/html5_polyglot/__init__.py\r\n"] -[284.675215, "o", "RefactoringTool: docutils/writers/latex2e/__init__.py\r\n"] -[284.67524, "o", "RefactoringTool: docutils/writers/odf_odt/__init__.py\r\n"] -[284.675265, "o", "RefactoringTool: docutils/writers/odf_odt/pygmentsformatter.py\r\n"] -[284.675292, "o", "RefactoringTool: docutils/writers/pep_html/__init__.py\r\n"] -[284.675318, "o", "RefactoringTool: docutils/writers/s5_html/__init__.py\r\nRefactoringTool: docutils/writers/xetex/__init__.py\r\n"] -[284.738587, "o", "running install\r\n"] -[284.739267, "o", "running build\r\nrunning build_py\r\n"] -[284.739841, "o", "build_py_2to3\r\ncopying docutils/core.py -> build/lib/docutils\r\n"] -[284.740015, "o", "copying docutils/frontend.py -> build/lib/docutils\r\n"] -[284.740161, "o", "copying docutils/__init__.py -> build/lib/docutils\r\n"] -[284.740263, "o", "copying docutils/io.py -> build/lib/docutils\r\n"] -[284.740465, "o", "copying docutils/nodes.py -> build/lib/docutils\r\n"] -[284.740607, "o", "copying docutils/statemachine.py -> build/lib/docutils\r\n"] -[284.74085, "o", "copying docutils/_compat.py -> build/lib/docutils\r\n"] -[284.74143, "o", "copying docutils/languages/sv.py -> build/lib/docutils/languages\r\n"] -[284.741528, "o", "copying docutils/languages/fi.py -> build/lib/docutils/languages\r\n"] -[284.741773, "o", "copying docutils/languages/ru.py -> build/lib/docutils/languages\r\n"] -[284.741873, "o", "copying docutils/languages/sk.py -> build/lib/docutils/languages\r\n"] -[284.742067, "o", "copying docutils/languages/fa.py -> build/lib/docutils/languages\r\n"] -[284.742186, "o", "copying docutils/languages/pl.py -> build/lib/docutils/languages\r\n"] -[284.742282, "o", "copying docutils/languages/fr.py -> build/lib/docutils/languages\r\n"] -[284.742439, "o", "copying docutils/languages/ja.py -> build/lib/docutils/languages\r\n"] -[284.742517, "o", "copying docutils/languages/gl.py -> build/lib/docutils/languages\r\n"] -[284.74261, "o", "copying docutils/languages/da.py -> build/lib/docutils/languages\r\n"] -[284.742798, "o", "copying docutils/languages/lt.py -> build/lib/docutils/languages\r\n"] -[284.742912, "o", "copying docutils/languages/ca.py -> build/lib/docutils/languages\r\n"] -[284.743068, "o", "copying docutils/languages/cs.py -> build/lib/docutils/languages\r\n"] -[284.743148, "o", "copying docutils/languages/he.py -> build/lib/docutils/languages\r\n"] -[284.743228, "o", "copying docutils/languages/pt_br.py -> build/lib/docutils/languages\r\n"] -[284.74335, "o", "copying docutils/languages/zh_tw.py -> build/lib/docutils/languages\r\n"] -[284.74347, "o", "copying docutils/languages/es.py -> build/lib/docutils/languages\r\n"] -[284.743589, "o", "copying docutils/languages/zh_cn.py -> build/lib/docutils/languages\r\n"] -[284.743782, "o", "copying docutils/languages/eo.py -> build/lib/docutils/languages\r\n"] -[284.744124, "o", "copying docutils/parsers/rst/tableparser.py -> build/lib/docutils/parsers/rst\r\n"] -[284.744339, "o", "copying docutils/parsers/rst/states.py -> build/lib/docutils/parsers/rst\r\n"] -[284.744516, "o", "copying docutils/parsers/rst/roles.py -> build/lib/docutils/parsers/rst\r\n"] -[284.744827, "o", "copying docutils/parsers/rst/directives/html.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[284.744944, "o", "copying docutils/parsers/rst/directives/__init__.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[284.745111, "o", "copying docutils/parsers/rst/directives/tables.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[284.745286, "o", "copying docutils/parsers/rst/directives/images.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[284.74538, "o", "copying docutils/parsers/rst/directives/misc.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[284.745471, "o", "copying docutils/parsers/rst/directives/body.py -> build/lib/docutils/parsers/rst/directives\r\n"] -[284.746042, "o", "copying docutils/parsers/rst/languages/nl.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.746182, "o", "copying docutils/parsers/rst/languages/af.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.746406, "o", "copying docutils/parsers/rst/languages/sv.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.746505, "o", "copying docutils/parsers/rst/languages/fi.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.746612, "o", "copying docutils/parsers/rst/languages/de.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.746812, "o", "copying docutils/parsers/rst/languages/ru.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.746896, "o", "copying docutils/parsers/rst/languages/it.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.746987, "o", "copying docutils/parsers/rst/languages/sk.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.747105, "o", "copying docutils/parsers/rst/languages/fa.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.747229, "o", "copying docutils/parsers/rst/languages/pl.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.747387, "o", "copying docutils/parsers/rst/languages/fr.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.747511, "o", "copying docutils/parsers/rst/languages/ja.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.747593, "o", "copying docutils/parsers/rst/languages/gl.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.747754, "o", "copying docutils/parsers/rst/languages/da.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.747906, "o", "copying docutils/parsers/rst/languages/lt.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.74799, "o", "copying docutils/parsers/rst/languages/ca.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.748116, "o", "copying docutils/parsers/rst/languages/cs.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.748242, "o", "copying docutils/parsers/rst/languages/he.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.748365, "o", "copying docutils/parsers/rst/languages/pt_br.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.748488, "o", "copying docutils/parsers/rst/languages/zh_tw.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.748617, "o", "copying docutils/parsers/rst/languages/es.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.748744, "o", "copying docutils/parsers/rst/languages/zh_cn.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.748868, "o", "copying docutils/parsers/rst/languages/eo.py -> build/lib/docutils/parsers/rst/languages\r\n"] -[284.749537, "o", "copying docutils/transforms/frontmatter.py -> build/lib/docutils/transforms\r\n"] -[284.749762, "o", "copying docutils/transforms/references.py -> build/lib/docutils/transforms\r\n"] -[284.749916, "o", "copying docutils/transforms/parts.py -> build/lib/docutils/transforms\r\n"] -[284.750178, "o", "copying docutils/utils/error_reporting.py -> build/lib/docutils/utils\r\n"] -[284.750361, "o", "copying docutils/utils/__init__.py -> build/lib/docutils/utils\r\n"] -[284.750445, "o", "copying docutils/utils/roman.py -> build/lib/docutils/utils\r\n"] -[284.750536, "o", "copying docutils/utils/punctuation_chars.py -> build/lib/docutils/utils\r\n"] -[284.750738, "o", "copying docutils/utils/smartquotes.py -> build/lib/docutils/utils\r\n"] -[284.750892, "o", "copying docutils/utils/code_analyzer.py -> build/lib/docutils/utils\r\n"] -[284.751135, "o", "copying docutils/utils/math/math2html.py -> build/lib/docutils/utils/math\r\n"] -[284.751413, "o", "copying docutils/utils/math/unichar2tex.py -> build/lib/docutils/utils/math\r\n"] -[284.751505, "o", "copying docutils/utils/math/tex2mathml_extern.py -> build/lib/docutils/utils/math\r\n"] -[284.751711, "o", "copying docutils/utils/math/latex2mathml.py -> build/lib/docutils/utils/math\r\n"] -[284.751815, "o", "copying docutils/utils/math/tex2unichar.py -> build/lib/docutils/utils/math\r\n"] -[284.752074, "o", "copying docutils/writers/manpage.py -> build/lib/docutils/writers\r\n"] -[284.752314, "o", "copying docutils/writers/docutils_xml.py -> build/lib/docutils/writers\r\n"] -[284.752406, "o", "copying docutils/writers/_html_base.py -> build/lib/docutils/writers\r\n"] -[284.752678, "o", "copying docutils/writers/html4css1/__init__.py -> build/lib/docutils/writers/html4css1\r\n"] -[284.753081, "o", "copying docutils/writers/s5_html/__init__.py -> build/lib/docutils/writers/s5_html\r\n"] -[284.753284, "o", "copying docutils/writers/latex2e/__init__.py -> build/lib/docutils/writers/latex2e\r\n"] -[284.753524, "o", "copying docutils/writers/xetex/__init__.py -> build/lib/docutils/writers/xetex\r\n"] -[284.753773, "o", "copying docutils/writers/odf_odt/__init__.py -> build/lib/docutils/writers/odf_odt\r\n"] -[284.779321, "o", "Skipping optional fixer: buffer\r\n"] -[284.798001, "o", "Skipping optional fixer: idioms\r\n"] -[284.855446, "o", "Skipping optional fixer: set_literal\r\n"] -[284.892077, "o", "Skipping optional fixer: ws_comma\r\n"] -[284.974737, "o", "Can't parse build/lib/docutils/core.py: ParseError: bad input: type=22, value='=', context=('', (246, 49))\r\n"] -[285.21054, "o", "Can't parse build/lib/docutils/io.py: ParseError: bad input: type=22, value='=', context=('', (349, 67))\r\n"] -[285.700466, "o", "Can't parse build/lib/docutils/statemachine.py: ParseError: bad input: type=22, value='=', context=('', (218, 74))\r\n"] -[314.387065, "o", "copy/convert test suite\r\nrunning build_scripts\r\n"] -[314.387772, "o", "creating build/scripts-3.7\r\n"] -[314.387915, "o", "copying and adjusting tools/rst2html.py -> build/scripts-3.7\r\n"] -[314.387945, "o", "copying and adjusting tools/rst2html4.py -> build/scripts-3.7\r\n"] -[314.388057, "o", "copying and adjusting tools/rst2html5.py -> build/scripts-3.7\r\n"] -[314.388212, "o", "copying and adjusting tools/rst2s5.py -> build/scripts-3.7\r\n"] -[314.38828, "o", "copying and adjusting tools/rst2latex.py -> build/scripts-3.7\r\n"] -[314.388326, "o", "copying and adjusting tools/rst2xetex.py -> build/scripts-3.7\r\n"] -[314.388392, "o", "copying and adjusting tools/rst2man.py -> build/scripts-3.7\r\n"] -[314.38846, "o", "copying and adjusting tools/rst2xml.py -> build/scripts-3.7\r\n"] -[314.388512, "o", "copying and adjusting tools/rst2pseudoxml.py -> build/scripts-3.7\r\n"] -[314.38859, "o", "copying and adjusting tools/rstpep2html.py -> build/scripts-3.7\r\n"] -[314.388676, "o", "copying and adjusting tools/rst2odt.py -> build/scripts-3.7\r\n"] -[314.388762, "o", "copying and adjusting tools/rst2odt_prepstyles.py -> build/scripts-3.7\r\n"] -[314.388826, "o", "changing mode of build/scripts-3.7/rst2html.py from 644 to 755\r\n"] -[314.388861, "o", "changing mode of build/scripts-3.7/rst2html4.py from 644 to 755\r\nchanging mode of build/scripts-3.7/rst2html5.py from 644 to 755\r\n"] -[314.388897, "o", "changing mode of build/scripts-3.7/rst2s5.py from 644 to 755\r\nchanging mode of build/scripts-3.7/rst2latex.py from 644 to 755\r\nchanging mode of build/scripts-3.7/rst2xetex.py from 644 to 755\r\n"] -[314.388933, "o", "changing mode of build/scripts-3.7/rst2man.py from 644 to 755\r\nchanging mode of build/scripts-3.7/rst2xml.py from 644 to 755\r\nchanging mode of build/scripts-3.7/rst2pseudoxml.py from 644 to 755\r\n"] -[314.388982, "o", "changing mode of build/scripts-3.7/rstpep2html.py from 644 to 755\r\nchanging mode of build/scripts-3.7/rst2odt.py from 644 to 755\r\nchanging mode of build/scripts-3.7/rst2odt_prepstyles.py from 644 to 755\r\n"] -[314.389031, "o", "running build_data\r\n"] -[314.39058, "o", "running install_lib\r\n"] -[314.390871, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7\r\n"] -[314.390913, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages\r\n"] -[314.391038, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.391114, "o", "copying build/lib/docutils/core.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.391291, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers\r\n"] -[314.391404, "o", "copying build/lib/docutils/writers/manpage.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers\r\n"] -[314.391448, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot\r\n"] -[314.391509, "o", "copying build/lib/docutils/writers/html5_polyglot/plain.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot\r\n"] -[314.39158, "o", "copying build/lib/docutils/writers/html5_polyglot/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot\r\n"] -[314.391682, "o", "copying build/lib/docutils/writers/html5_polyglot/minimal.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot\r\n"] -[314.391771, "o", "copying build/lib/docutils/writers/html5_polyglot/math.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot\r\n"] -[314.39186, "o", "copying build/lib/docutils/writers/html5_polyglot/template.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot\r\n"] -[314.391949, "o", "copying build/lib/docutils/writers/pseudoxml.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers\r\n"] -[314.392036, "o", "copying build/lib/docutils/writers/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers\r\n"] -[314.392126, "o", "copying build/lib/docutils/writers/null.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers\r\n"] -[314.392235, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html4css1\r\n"] -[314.392292, "o", "copying build/lib/docutils/writers/html4css1/html4css1.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html4css1\r\n"] -[314.392385, "o", "copying build/lib/docutils/writers/html4css1/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html4css1\r\n"] -[314.392493, "o", "copying build/lib/docutils/writers/html4css1/template.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html4css1\r\n"] -[314.392607, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/latex2e\r\n"] -[314.392664, "o", "copying build/lib/docutils/writers/latex2e/titlepage.tex -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/latex2e\r\n"] -[314.392801, "o", "copying build/lib/docutils/writers/latex2e/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/latex2e\r\n"] -[314.392908, "o", "copying build/lib/docutils/writers/latex2e/default.tex -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/latex2e\r\n"] -[314.392992, "o", "copying build/lib/docutils/writers/latex2e/xelatex.tex -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/latex2e\r\n"] -[314.393087, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/xetex\r\n"] -[314.393129, "o", "copying build/lib/docutils/writers/xetex/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/xetex\r\n"] -[314.393215, "o", "copying build/lib/docutils/writers/docutils_xml.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers\r\n"] -[314.393308, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/pep_html\r\n"] -[314.393351, "o", "copying build/lib/docutils/writers/pep_html/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/pep_html\r\n"] -[314.393437, "o", "copying build/lib/docutils/writers/pep_html/pep.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/pep_html\r\n"] -[314.393517, "o", "copying build/lib/docutils/writers/pep_html/template.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/pep_html\r\n"] -[314.393623, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html\r\n"] -[314.393668, "o", "copying build/lib/docutils/writers/s5_html/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html\r\n"] -[314.393779, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes\r\n"] -[314.393844, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-white\r\n"] -[314.393887, "o", "copying build/lib/docutils/writers/s5_html/themes/medium-white/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-white\r\n"] -[314.39397, "o", "copying build/lib/docutils/writers/s5_html/themes/medium-white/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-white\r\n"] -[314.394069, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-black\r\n"] -[314.394112, "o", "copying build/lib/docutils/writers/s5_html/themes/big-black/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-black\r\n"] -[314.394193, "o", "copying build/lib/docutils/writers/s5_html/themes/big-black/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-black\r\n"] -[314.39427, "o", "copying build/lib/docutils/writers/s5_html/themes/big-black/__base__ -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-black\r\n"] -[314.39437, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.394413, "o", "copying build/lib/docutils/writers/s5_html/themes/default/blank.gif -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.394494, "o", "copying build/lib/docutils/writers/s5_html/themes/default/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.394569, "o", "copying build/lib/docutils/writers/s5_html/themes/default/slides.js -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.394661, "o", "copying build/lib/docutils/writers/s5_html/themes/default/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.394739, "o", "copying build/lib/docutils/writers/s5_html/themes/default/opera.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.394817, "o", "copying build/lib/docutils/writers/s5_html/themes/default/outline.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.3949, "o", "copying build/lib/docutils/writers/s5_html/themes/default/slides.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.394972, "o", "copying build/lib/docutils/writers/s5_html/themes/default/iepngfix.htc -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.395047, "o", "copying build/lib/docutils/writers/s5_html/themes/default/s5-core.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.395125, "o", "copying build/lib/docutils/writers/s5_html/themes/default/print.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default\r\n"] -[314.395223, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-white\r\n"] -[314.395269, "o", "copying build/lib/docutils/writers/s5_html/themes/small-white/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-white\r\n"] -[314.395349, "o", "copying build/lib/docutils/writers/s5_html/themes/small-white/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-white\r\n"] -[314.395444, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-black\r\n"] -[314.395488, "o", "copying build/lib/docutils/writers/s5_html/themes/small-black/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-black\r\n"] -[314.395566, "o", "copying build/lib/docutils/writers/s5_html/themes/small-black/__base__ -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-black\r\n"] -[314.395651, "o", "copying build/lib/docutils/writers/s5_html/themes/README.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes\r\n"] -[314.395755, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-black\r\n"] -[314.395797, "o", "copying build/lib/docutils/writers/s5_html/themes/medium-black/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-black\r\n"] -[314.395879, "o", "copying build/lib/docutils/writers/s5_html/themes/medium-black/__base__ -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-black\r\n"] -[314.395976, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-white\r\n"] -[314.396021, "o", "copying build/lib/docutils/writers/s5_html/themes/big-white/framing.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-white\r\n"] -[314.396099, "o", "copying build/lib/docutils/writers/s5_html/themes/big-white/pretty.css -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-white\r\n"] -[314.396201, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/odf_odt\r\n"] -[314.396244, "o", "copying build/lib/docutils/writers/odf_odt/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/odf_odt\r\n"] -[314.396406, "o", "copying build/lib/docutils/writers/odf_odt/pygmentsformatter.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/odf_odt\r\n"] -[314.396487, "o", "copying build/lib/docutils/writers/odf_odt/styles.odt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/odf_odt\r\n"] -[314.396577, "o", "copying build/lib/docutils/writers/_html_base.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers\r\n"] -[314.396764, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers\r\n"] -[314.3968, "o", "copying build/lib/docutils/parsers/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers\r\n"] -[314.396851, "o", "copying build/lib/docutils/parsers/null.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers\r\n"] -[314.397026, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst\r\n"] -[314.397052, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.397125, "o", "copying build/lib/docutils/parsers/rst/languages/nl.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.397217, "o", "copying build/lib/docutils/parsers/rst/languages/af.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.39726, "o", "copying build/lib/docutils/parsers/rst/languages/en.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.397347, "o", "copying build/lib/docutils/parsers/rst/languages/sv.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.397416, "o", "copying build/lib/docutils/parsers/rst/languages/fi.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.39749, "o", "copying build/lib/docutils/parsers/rst/languages/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.397568, "o", "copying build/lib/docutils/parsers/rst/languages/de.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.39765, "o", "copying build/lib/docutils/parsers/rst/languages/ru.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.397741, "o", "copying build/lib/docutils/parsers/rst/languages/it.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.397849, "o", "copying build/lib/docutils/parsers/rst/languages/sk.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.397961, "o", "copying build/lib/docutils/parsers/rst/languages/fa.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.398071, "o", "copying build/lib/docutils/parsers/rst/languages/pl.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.398266, "o", "copying build/lib/docutils/parsers/rst/languages/fr.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.398435, "o", "copying build/lib/docutils/parsers/rst/languages/ja.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.39852, "o", "copying build/lib/docutils/parsers/rst/languages/gl.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.398618, "o", "copying build/lib/docutils/parsers/rst/languages/da.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.398751, "o", "copying build/lib/docutils/parsers/rst/languages/lv.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.398844, "o", "copying build/lib/docutils/parsers/rst/languages/lt.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.398942, "o", "copying build/lib/docutils/parsers/rst/languages/ca.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.399062, "o", "copying build/lib/docutils/parsers/rst/languages/cs.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.399175, "o", "copying build/lib/docutils/parsers/rst/languages/he.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.399255, "o", "copying build/lib/docutils/parsers/rst/languages/pt_br.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.399364, "o", "copying build/lib/docutils/parsers/rst/languages/zh_tw.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.399435, "o", "copying build/lib/docutils/parsers/rst/languages/es.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.399492, "o", "copying build/lib/docutils/parsers/rst/languages/zh_cn.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.399567, "o", "copying build/lib/docutils/parsers/rst/languages/eo.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages\r\n"] -[314.39965, "o", "copying build/lib/docutils/parsers/rst/tableparser.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst\r\n"] -[314.399741, "o", "copying build/lib/docutils/parsers/rst/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst\r\n"] -[314.399853, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.399913, "o", "copying build/lib/docutils/parsers/rst/directives/html.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.399978, "o", "copying build/lib/docutils/parsers/rst/directives/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.400061, "o", "copying build/lib/docutils/parsers/rst/directives/admonitions.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.400136, "o", "copying build/lib/docutils/parsers/rst/directives/tables.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.400227, "o", "copying build/lib/docutils/parsers/rst/directives/images.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.400305, "o", "copying build/lib/docutils/parsers/rst/directives/misc.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.400394, "o", "copying build/lib/docutils/parsers/rst/directives/body.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.400474, "o", "copying build/lib/docutils/parsers/rst/directives/references.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.400548, "o", "copying build/lib/docutils/parsers/rst/directives/parts.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives\r\n"] -[314.400636, "o", "copying build/lib/docutils/parsers/rst/states.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst\r\n"] -[314.400842, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.400905, "o", "copying build/lib/docutils/parsers/rst/include/s5defs.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.400971, "o", "copying build/lib/docutils/parsers/rst/include/isomopf.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401045, "o", "copying build/lib/docutils/parsers/rst/include/isomfrk-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401122, "o", "copying build/lib/docutils/parsers/rst/include/isotech.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401208, "o", "copying build/lib/docutils/parsers/rst/include/isomopf-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401285, "o", "copying build/lib/docutils/parsers/rst/include/isogrk2.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.40136, "o", "copying build/lib/docutils/parsers/rst/include/isoamsb.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401438, "o", "copying build/lib/docutils/parsers/rst/include/isoamso.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401513, "o", "copying build/lib/docutils/parsers/rst/include/isolat2.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401595, "o", "copying build/lib/docutils/parsers/rst/include/isocyr2.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401686, "o", "copying build/lib/docutils/parsers/rst/include/isogrk1.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401762, "o", "copying build/lib/docutils/parsers/rst/include/isodia.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401837, "o", "copying build/lib/docutils/parsers/rst/include/isoamsr.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.40192, "o", "copying build/lib/docutils/parsers/rst/include/isomscr-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.401997, "o", "copying build/lib/docutils/parsers/rst/include/isoamsa.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402077, "o", "copying build/lib/docutils/parsers/rst/include/README.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402152, "o", "copying build/lib/docutils/parsers/rst/include/isomscr.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402228, "o", "copying build/lib/docutils/parsers/rst/include/isoamsn.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402307, "o", "copying build/lib/docutils/parsers/rst/include/xhtml1-symbol.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402387, "o", "copying build/lib/docutils/parsers/rst/include/isoamsc.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402464, "o", "copying build/lib/docutils/parsers/rst/include/isogrk4.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.40254, "o", "copying build/lib/docutils/parsers/rst/include/mmlextra-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402682, "o", "copying build/lib/docutils/parsers/rst/include/isocyr1.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402728, "o", "copying build/lib/docutils/parsers/rst/include/isonum.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402785, "o", "copying build/lib/docutils/parsers/rst/include/mmlextra.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402862, "o", "copying build/lib/docutils/parsers/rst/include/isogrk4-wide.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.402937, "o", "copying build/lib/docutils/parsers/rst/include/isomfrk.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.403018, "o", "copying build/lib/docutils/parsers/rst/include/isolat1.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.403097, "o", "copying build/lib/docutils/parsers/rst/include/xhtml1-special.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.403174, "o", "copying build/lib/docutils/parsers/rst/include/xhtml1-lat1.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.403252, "o", "copying build/lib/docutils/parsers/rst/include/isobox.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.403328, "o", "copying build/lib/docutils/parsers/rst/include/isogrk3.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.403403, "o", "copying build/lib/docutils/parsers/rst/include/mmlalias.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.403508, "o", "copying build/lib/docutils/parsers/rst/include/isopub.txt -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/include\r\n"] -[314.403595, "o", "copying build/lib/docutils/parsers/rst/roles.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst\r\n"] -[314.403684, "o", "copying build/lib/docutils/frontend.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.403816, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.403888, "o", "copying build/lib/docutils/languages/nl.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.403954, "o", "copying build/lib/docutils/languages/af.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404055, "o", "copying build/lib/docutils/languages/en.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404089, "o", "copying build/lib/docutils/languages/sv.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404165, "o", "copying build/lib/docutils/languages/fi.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.40424, "o", "copying build/lib/docutils/languages/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404315, "o", "copying build/lib/docutils/languages/de.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404388, "o", "copying build/lib/docutils/languages/ru.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404462, "o", "copying build/lib/docutils/languages/it.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404537, "o", "copying build/lib/docutils/languages/sk.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404618, "o", "copying build/lib/docutils/languages/fa.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404693, "o", "copying build/lib/docutils/languages/pl.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404767, "o", "copying build/lib/docutils/languages/fr.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.40484, "o", "copying build/lib/docutils/languages/ja.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404914, "o", "copying build/lib/docutils/languages/gl.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.404987, "o", "copying build/lib/docutils/languages/da.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405061, "o", "copying build/lib/docutils/languages/lv.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405136, "o", "copying build/lib/docutils/languages/lt.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.40521, "o", "copying build/lib/docutils/languages/ca.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405285, "o", "copying build/lib/docutils/languages/cs.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405359, "o", "copying build/lib/docutils/languages/he.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405434, "o", "copying build/lib/docutils/languages/pt_br.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405509, "o", "copying build/lib/docutils/languages/zh_tw.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405584, "o", "copying build/lib/docutils/languages/es.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405667, "o", "copying build/lib/docutils/languages/zh_cn.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405746, "o", "copying build/lib/docutils/languages/eo.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages\r\n"] -[314.405822, "o", "copying build/lib/docutils/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.405914, "o", "copying build/lib/docutils/io.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.406023, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers\r\n"] -[314.406069, "o", "copying build/lib/docutils/readers/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers\r\n"] -[314.406147, "o", "copying build/lib/docutils/readers/doctree.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers\r\n"] -[314.406222, "o", "copying build/lib/docutils/readers/standalone.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers\r\n"] -[314.406296, "o", "copying build/lib/docutils/readers/pep.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers\r\n"] -[314.406395, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils\r\n"] -[314.406461, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math\r\n"] -[314.406506, "o", "copying build/lib/docutils/utils/math/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math\r\n"] -[314.406583, "o", "copying build/lib/docutils/utils/math/math2html.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math\r\n"] -[314.406796, "o", "copying build/lib/docutils/utils/math/unichar2tex.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math\r\n"] -[314.406887, "o", "copying build/lib/docutils/utils/math/tex2mathml_extern.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math\r\n"] -[314.406968, "o", "copying build/lib/docutils/utils/math/latex2mathml.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math\r\n"] -[314.407061, "o", "copying build/lib/docutils/utils/math/tex2unichar.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math\r\n"] -[314.407164, "o", "copying build/lib/docutils/utils/error_reporting.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils\r\n"] -[314.407245, "o", "copying build/lib/docutils/utils/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils\r\n"] -[314.407338, "o", "copying build/lib/docutils/utils/roman.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils\r\n"] -[314.407415, "o", "copying build/lib/docutils/utils/punctuation_chars.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils\r\n"] -[314.407495, "o", "copying build/lib/docutils/utils/smartquotes.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils\r\n"] -[314.407595, "o", "copying build/lib/docutils/utils/urischemes.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils\r\n"] -[314.40768, "o", "copying build/lib/docutils/utils/code_analyzer.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils\r\n"] -[314.40776, "o", "copying build/lib/docutils/examples.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.407835, "o", "copying build/lib/docutils/nodes.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.407983, "o", "creating /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408028, "o", "copying build/lib/docutils/transforms/components.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408112, "o", "copying build/lib/docutils/transforms/__init__.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408195, "o", "copying build/lib/docutils/transforms/writer_aux.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408273, "o", "copying build/lib/docutils/transforms/peps.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408354, "o", "copying build/lib/docutils/transforms/frontmatter.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408443, "o", "copying build/lib/docutils/transforms/misc.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.40853, "o", "copying build/lib/docutils/transforms/universal.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408616, "o", "copying build/lib/docutils/transforms/references.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408716, "o", "copying build/lib/docutils/transforms/parts.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms\r\n"] -[314.408801, "o", "copying build/lib/docutils/statemachine.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.40891, "o", "copying build/lib/docutils/_compat.py -> /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils\r\n"] -[314.411747, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/core.py to core.cpython-37.pyc\r\n"] -[314.415921, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/manpage.py to manpage.cpython-37.pyc\r\n"] -[314.421309, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.4222, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/pseudoxml.py to pseudoxml.cpython-37.pyc\r\n"] -[314.422471, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.422996, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/null.py to null.cpython-37.pyc\r\n"] -[314.423273, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/html4css1/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.426676, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/latex2e/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.439829, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/xetex/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.440404, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/docutils_xml.py to docutils_xml.cpython-37.pyc\r\n"] -[314.441271, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/pep_html/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.441843, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/s5_html/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.443245, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/odf_odt/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.459664, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/odf_odt/pygmentsformatter.py to pygmentsformatter.cpython-37.pyc\r\n"] -[314.460263, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/writers/_html_base.py to _html_base.cpython-37.pyc\r\n"] -[314.468896, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.469306, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/null.py to null.cpython-37.pyc\r\n"] -[314.469506, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/nl.py to nl.cpython-37.pyc\r\n"] -[314.469921, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/af.py to af.cpython-37.pyc\r\n"] -[314.470274, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/en.py to en.cpython-37.pyc\r\n"] -[314.470597, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/sv.py to sv.cpython-37.pyc\r\n"] -[314.470967, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/fi.py to fi.cpython-37.pyc\r\n"] -[314.471306, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.471545, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/de.py to de.cpython-37.pyc\r\n"] -[314.471937, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/ru.py to ru.cpython-37.pyc\r\n"] -[314.472285, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/it.py to it.cpython-37.pyc\r\n"] -[314.472571, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/sk.py to sk.cpython-37.pyc\r\n"] -[314.472909, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/fa.py to fa.cpython-37.pyc\r\n"] -[314.473255, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/pl.py to pl.cpython-37.pyc\r\n"] -[314.473564, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/fr.py to fr.cpython-37.pyc\r\n"] -[314.473985, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/ja.py to ja.cpython-37.pyc\r\n"] -[314.474345, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/gl.py to gl.cpython-37.pyc\r\n"] -[314.474656, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/da.py to da.cpython-37.pyc\r\n"] -[314.475008, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/lv.py to lv.cpython-37.pyc\r\n"] -[314.475361, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/lt.py to lt.cpython-37.pyc\r\n"] -[314.475774, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/ca.py to ca.cpython-37.pyc\r\n"] -[314.476163, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/cs.py to cs.cpython-37.pyc\r\n"] -[314.476606, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/he.py to he.cpython-37.pyc\r\n"] -[314.477112, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/pt_br.py to pt_br.cpython-37.pyc\r\n"] -[314.477512, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/zh_tw.py to zh_tw.cpython-37.pyc\r\n"] -[314.477936, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/es.py to es.cpython-37.pyc\r\n"] -[314.478333, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/zh_cn.py to zh_cn.cpython-37.pyc\r\n"] -[314.478627, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/eo.py to eo.cpython-37.pyc\r\n"] -[314.478988, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/tableparser.py to tableparser.cpython-37.pyc\r\n"] -[314.481478, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.482553, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/html.py to html.cpython-37.pyc\r\n"] -[314.483185, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.484504, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/admonitions.py to admonitions.cpython-37.pyc\r\n"] -[314.485018, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/tables.py to tables.cpython-37.pyc\r\n"] -[314.487387, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/images.py to images.cpython-37.pyc\r\n"] -[314.488305, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/misc.py to misc.cpython-37.pyc\r\n"] -[314.490525, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/body.py to body.cpython-37.pyc\r\n"] -[314.491864, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/references.py to references.cpython-37.pyc\r\n"] -[314.492066, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/parts.py to parts.cpython-37.pyc\r\n"] -[314.492678, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/states.py to states.cpython-37.pyc\r\n"] -[314.505956, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/parsers/rst/roles.py to roles.cpython-37.pyc\r\n"] -[314.507292, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/frontend.py to frontend.cpython-37.pyc\r\n"] -[314.511261, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/nl.py to nl.cpython-37.pyc\r\n"] -[314.511446, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/af.py to af.cpython-37.pyc\r\n"] -[314.511734, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/en.py to en.cpython-37.pyc\r\n"] -[314.511873, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/sv.py to sv.cpython-37.pyc\r\n"] -[314.512103, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/fi.py to fi.cpython-37.pyc\r\n"] -[314.512337, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.512745, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/de.py to de.cpython-37.pyc\r\n"] -[314.512976, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/ru.py to ru.cpython-37.pyc\r\n"] -[314.513103, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/it.py to it.cpython-37.pyc\r\n"] -[314.513329, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/sk.py to sk.cpython-37.pyc\r\n"] -[314.513556, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/fa.py to fa.cpython-37.pyc\r\n"] -[314.513877, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/pl.py to pl.cpython-37.pyc\r\n"] -[314.514149, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/fr.py to fr.cpython-37.pyc\r\n"] -[314.51437, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/ja.py to ja.cpython-37.pyc\r\n"] -[314.514494, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/gl.py to gl.cpython-37.pyc\r\n"] -[314.514726, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/da.py to da.cpython-37.pyc\r\n"] -[314.514956, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/lv.py to lv.cpython-37.pyc\r\n"] -[314.515309, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/lt.py to lt.cpython-37.pyc\r\n"] -[314.515455, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/ca.py to ca.cpython-37.pyc\r\n"] -[314.515766, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/cs.py to cs.cpython-37.pyc\r\n"] -[314.515887, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/he.py to he.cpython-37.pyc\r\n"] -[314.516119, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/pt_br.py to pt_br.cpython-37.pyc\r\n"] -[314.516388, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/zh_tw.py to zh_tw.cpython-37.pyc\r\n"] -[314.516587, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/es.py to es.cpython-37.pyc\r\n"] -[314.516823, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/zh_cn.py to zh_cn.cpython-37.pyc\r\n"] -[314.517114, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/languages/eo.py to eo.cpython-37.pyc\r\n"] -[314.517325, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.517784, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/io.py to io.cpython-37.pyc\r\n"] -[314.519344, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.519819, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers/doctree.py to doctree.cpython-37.pyc\r\n"] -[314.520045, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers/standalone.py to standalone.cpython-37.pyc\r\n"] -[314.520283, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/readers/pep.py to pep.cpython-37.pyc\r\n"] -[314.520557, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.520903, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math/math2html.py to math2html.cpython-37.pyc\r\n"] -[314.545718, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math/unichar2tex.py to unichar2tex.cpython-37.pyc\r\n"] -[314.547483, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math/tex2mathml_extern.py to tex2mathml_extern.cpython-37.pyc\r\n"] -[314.548186, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math/latex2mathml.py to latex2mathml.cpython-37.pyc\r\n"] -[314.550427, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/math/tex2unichar.py to tex2unichar.cpython-37.pyc\r\n"] -[314.552219, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/error_reporting.py to error_reporting.cpython-37.pyc\r\n"] -[314.55298, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.555926, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/roman.py to roman.cpython-37.pyc\r\n"] -[314.556329, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/punctuation_chars.py to punctuation_chars.cpython-37.pyc\r\n"] -[314.556586, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/smartquotes.py to smartquotes.cpython-37.pyc\r\n"] -[314.558607, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/urischemes.py to urischemes.cpython-37.pyc\r\n"] -[314.559022, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/utils/code_analyzer.py to code_analyzer.cpython-37.pyc\r\n"] -[314.559581, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/examples.py to examples.cpython-37.pyc\r\n"] -[314.55997, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/nodes.py to nodes.cpython-37.pyc\r\n"] -[314.567048, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/components.py to components.cpython-37.pyc\r\n"] -[314.567274, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/__init__.py to __init__.cpython-37.pyc\r\n"] -[314.567951, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/writer_aux.py to writer_aux.cpython-37.pyc\r\n"] -[314.568292, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/peps.py to peps.cpython-37.pyc\r\n"] -[314.56971, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/frontmatter.py to frontmatter.cpython-37.pyc\r\n"] -[314.571318, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/misc.py to misc.cpython-37.pyc\r\n"] -[314.572067, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/universal.py to universal.cpython-37.pyc\r\n"] -[314.573242, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/references.py to references.cpython-37.pyc\r\n"] -[314.576311, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/transforms/parts.py to parts.cpython-37.pyc\r\n"] -[314.577168, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/statemachine.py to statemachine.cpython-37.pyc\r\n"] -[314.581454, "o", "byte-compiling /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils/_compat.py to _compat.cpython-37.pyc\r\n"] -[314.581671, "o", "running install_scripts\r\n"] -[314.581918, "o", "copying build/scripts-3.7/rst2s5.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.582007, "o", "copying build/scripts-3.7/rst2pseudoxml.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.582181, "o", "copying build/scripts-3.7/rst2html4.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.582293, "o", "copying build/scripts-3.7/rst2man.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.58247, "o", "copying build/scripts-3.7/rst2xetex.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.582534, "o", "copying build/scripts-3.7/rst2html5.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.582719, "o", "copying build/scripts-3.7/rstpep2html.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.5828, "o", "copying build/scripts-3.7/rst2odt.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.582967, "o", "copying build/scripts-3.7/rst2latex.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.583063, "o", "copying build/scripts-3.7/rst2html.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.583141, "o", "copying build/scripts-3.7/rst2xml.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.583258, "o", "copying build/scripts-3.7/rst2odt_prepstyles.py -> /tmp/SBo/package-docutils/usr/bin\r\n"] -[314.583384, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2s5.py to 755\r\n"] -[314.583428, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2pseudoxml.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2html4.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2man.py to 755\r\n"] -[314.583473, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2xetex.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2html5.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rstpep2html.py to 755\r\n"] -[314.583514, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2odt.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2latex.py to 755\r\n"] -[314.583556, "o", "changing mode of /tmp/SBo/package-docutils/usr/bin/rst2html.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2xml.py to 755\r\nchanging mode of /tmp/SBo/package-docutils/usr/bin/rst2odt_prepstyles.py to 755\r\n"] -[314.583596, "o", "running install_data\r\n"] -[314.585618, "o", "running install_egg_info\r\n"] -[314.586992, "o", "Writing /tmp/SBo/package-docutils/usr/lib64/python3.7/site-packages/docutils-0.14-py3.7.egg-info\r\n"] -[315.716664, "o", "\r\nSlackware package maker, version 3.141593.\r\n\r\nSearching for symbolic links:\r\n"] -[315.721859, "o", "\r\n"] -[315.723583, "o", "No symbolic links were found, so we won't make an installation script.\r\nYou can make your own later in ./install/doinst.sh and rebuild the\r\npackage if you like.\r\n"] -[315.725256, "o", "\r\nThis next step is optional - you can set the directories in your package\r\nto some sane permissions. If any of the directories in your package have\r\nspecial permissions, then DO NOT reset them here!\r\n\r\nWould you like to reset all directory permissions to 755 (drwxr-xr-x) and\r\ndirectory ownerships to root.root ([y]es, [n]o)? "] -[315.725388, "o", "n\r\n\r\n"] -[315.728454, "o", "Creating Slackware package: /tmp/docutils-0.14-x86_64-1_SBo.tgz\r\n\r\n"] -[315.739244, "o", "./\r\nusr/\r\nusr/doc/\r\nusr/doc/docutils-0.14/\r\nusr/doc/docutils-0.14/docutils.SlackBuild\r\nusr/doc/docutils-0.14/RELEASE-NOTES.txt\r\nusr/doc/docutils-0.14/THANKS.txt\r\nusr/doc/docutils-0.14/HISTORY.txt\r\n"] -[315.7423, "o", "usr/doc/docutils-0.14/README.txt\r\nusr/doc/docutils-0.14/FAQ.txt\r\n"] -[315.746785, "o", "usr/doc/docutils-0.14/COPYING.txt\r\nusr/doc/docutils-0.14/BUGS.txt\r\nusr/doc/docutils-0.14/PKG-INFO\r\n"] -[315.74692, "o", "usr/bin/\r\nusr/bin/rst2s5.py\r\nusr/bin/rst2pseudoxml.py\r\nusr/bin/rst2html4.py\r\nusr/bin/rst2man.py\r\nusr/bin/rst2xetex.py\r\nusr/bin/rst2html5.py\r\n"] -[315.748819, "o", "usr/bin/rstpep2html.py\r\nusr/bin/rst2odt.py\r\nusr/bin/rst2latex.py\r\nusr/bin/rst2html.py\r\n"] -[315.748838, "o", "usr/bin/rst2xml.py\r\nusr/bin/rst2odt_prepstyles.py\r\n"] -[315.748972, "o", "usr/lib64/\r\nusr/lib64/python3.7/\r\nusr/lib64/python3.7/site-packages/\r\nusr/lib64/python3.7/site-packages/docutils-0.14-py3.7.egg-info\r\nusr/lib64/python3.7/site-packages/docutils/\r\nusr/lib64/python3.7/site-packages/docutils/core.py\r\n"] -[315.750535, "o", "usr/lib64/python3.7/site-packages/docutils/writers/\r\nusr/lib64/python3.7/site-packages/docutils/writers/manpage.py\r\n"] -[315.752888, "o", "usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/\r\nusr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/plain.css\r\n"] -[315.752909, "o", "usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/__pycache__/\r\n"] -[315.75299, "o", "usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/__init__.py\r\n"] -[315.754211, "o", "usr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/minimal.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/math.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/html5_polyglot/template.txt\r\n"] -[315.75423, "o", "usr/lib64/python3.7/site-packages/docutils/writers/__pycache__/\r\n"] -[315.754243, "o", "usr/lib64/python3.7/site-packages/docutils/writers/__pycache__/null.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/writers/__pycache__/docutils_xml.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/writers/__pycache__/manpage.cpython-37.pyc\r\n"] -[315.761118, "o", "usr/lib64/python3.7/site-packages/docutils/writers/__pycache__/_html_base.cpython-37.pyc\r\n"] -[315.767908, "o", "usr/lib64/python3.7/site-packages/docutils/writers/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/writers/__pycache__/pseudoxml.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/writers/pseudoxml.py\r\nusr/lib64/python3.7/site-packages/docutils/writers/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/writers/null.py\r\nusr/lib64/python3.7/site-packages/docutils/writers/html4css1/\r\n"] -[315.768027, "o", "usr/lib64/python3.7/site-packages/docutils/writers/html4css1/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/writers/html4css1/__pycache__/__init__.cpython-37.pyc\r\n"] -[315.774382, "o", "usr/lib64/python3.7/site-packages/docutils/writers/html4css1/html4css1.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/html4css1/__init__.py\r\n"] -[315.778793, "o", "usr/lib64/python3.7/site-packages/docutils/writers/html4css1/template.txt\r\nusr/lib64/python3.7/site-packages/docutils/writers/latex2e/\r\nusr/lib64/python3.7/site-packages/docutils/writers/latex2e/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/writers/latex2e/__pycache__/__init__.cpython-37.pyc\r\n"] -[315.791128, "o", "usr/lib64/python3.7/site-packages/docutils/writers/latex2e/titlepage.tex\r\n"] -[315.791163, "o", "usr/lib64/python3.7/site-packages/docutils/writers/latex2e/__init__.py\r\n"] -[315.805874, "o", "usr/lib64/python3.7/site-packages/docutils/writers/latex2e/default.tex\r\nusr/lib64/python3.7/site-packages/docutils/writers/latex2e/xelatex.tex\r\nusr/lib64/python3.7/site-packages/docutils/writers/xetex/\r\nusr/lib64/python3.7/site-packages/docutils/writers/xetex/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/writers/xetex/__pycache__/__init__.cpython-37.pyc\r\n"] -[315.81084, "o", "usr/lib64/python3.7/site-packages/docutils/writers/xetex/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/writers/docutils_xml.py\r\nusr/lib64/python3.7/site-packages/docutils/writers/pep_html/\r\nusr/lib64/python3.7/site-packages/docutils/writers/pep_html/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/writers/pep_html/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/writers/pep_html/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/writers/pep_html/pep.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/pep_html/template.txt\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/\r\n"] -[315.810919, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/__pycache__/__init__.cpython-37.pyc\r\n"] -[315.814742, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/\r\n"] -[315.814763, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-white/\r\n"] -[315.814875, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-white/framing.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-white/pretty.css\r\n"] -[315.818553, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-black/\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-black/framing.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-black/pretty.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-black/__base__\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/\r\n"] -[315.818698, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/blank.gif\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/framing.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/slides.js\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/pretty.css\r\n"] -[315.821664, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/opera.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/outline.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/slides.css\r\n"] -[315.821685, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/iepngfix.htc\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/s5-core.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/default/print.css\r\n"] -[315.821817, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-white/\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-white/framing.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-white/pretty.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-black/\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-black/pretty.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/small-black/__base__\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/README.txt\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-black/\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-black/pretty.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/medium-black/__base__\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-white/\r\n"] -[315.824591, "o", "usr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-white/framing.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/s5_html/themes/big-white/pretty.css\r\nusr/lib64/python3.7/site-packages/docutils/writers/odf_odt/\r\nusr/lib64/python3.7/site-packages/docutils/writers/odf_odt/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/writers/odf_odt/__pycache__/pygmentsformatter.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/writers/odf_odt/__pycache__/__init__.cpython-37.pyc\r\n"] -[315.830665, "o", "usr/lib64/python3.7/site-packages/docutils/writers/odf_odt/__init__.py\r\n"] -[315.844799, "o", "usr/lib64/python3.7/site-packages/docutils/writers/odf_odt/pygmentsformatter.py\r\nusr/lib64/python3.7/site-packages/docutils/writers/odf_odt/styles.odt\r\n"] -[315.847437, "o", "usr/lib64/python3.7/site-packages/docutils/writers/_html_base.py\r\n"] -[315.853888, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/\r\nusr/lib64/python3.7/site-packages/docutils/parsers/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/parsers/__pycache__/null.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/__init__.py\r\n"] -[315.853918, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/null.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/\r\n"] -[315.85403, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/nl.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/af.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/en.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/pt_br.cpython-37.pyc\r\n"] -[315.85606, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/pl.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/fr.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/sv.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/gl.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/ru.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/fi.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/zh_tw.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/lt.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/de.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/eo.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/langua"] -[315.856085, "o", "ges/__pycache__/ca.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/he.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/lv.cpython-37.pyc\r\n"] -[315.860038, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/zh_cn.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/es.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/en.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/cs.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/af.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/sk.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/it.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/ja.cpython-37.pyc\r\n"] -[315.862273, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/nl.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/da.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__pycache__/fa.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/sv.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/fi.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/de.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/ru.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/it.py\r\n"] -[315.863792, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/sk.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/fa.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/pl.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/fr.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/ja.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/gl.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/da.py\r\n"] -[315.865527, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/lv.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/lt.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/ca.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/cs.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/he.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/pt_br.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/zh_tw.py\r\n"] -[315.867128, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/es.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/zh_cn.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/languages/eo.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/__pycache__/tableparser.cpython-37.pyc\r\n"] -[315.867156, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/__pycache__/__init__.cpython-37.pyc\r\n"] -[315.868917, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/__pycache__/roles.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/__pycache__/states.cpython-37.pyc\r\n"] -[315.877351, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/tableparser.py\r\n"] -[315.881932, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/__init__.py\r\n"] -[315.882057, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/\r\n"] -[315.882087, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/misc.cpython-37.pyc\r\n"] -[315.886261, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/body.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/parts.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/admonitions.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/html.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/images.cpython-37.pyc\r\n"] -[315.891752, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/tables.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/__init__.cpython-37.pyc\r\n"] -[315.894573, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__pycache__/references.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/html.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/admonitions.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/tables.py\r\n"] -[315.900038, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/images.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/misc.py\r\n"] -[315.905963, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/body.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/references.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/directives/parts.py\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/states.py\r\n"] -[315.923673, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/include/\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/s5defs.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isomopf.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isomfrk-wide.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isotech.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isomopf-wide.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isogrk2.txt\r\n"] -[315.923877, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isoamsb.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isoamso.txt\r\n"] -[315.928628, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isolat2.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isocyr2.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isogrk1.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isodia.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isoamsr.txt\r\n"] -[315.932253, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isomscr-wide.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isoamsa.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/README.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isomscr.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isoamsn.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/xhtml1-symbol.txt\r\n"] -[315.93468, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isoamsc.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isogrk4.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/mmlextra-wide.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isocyr1.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isonum.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/mmlextra.txt\r\n"] -[315.937517, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isogrk4-wide.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isomfrk.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isolat1.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/xhtml1-special.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/xhtml1-lat1.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isobox.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isogrk3.txt\r\n"] -[315.94144, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/include/mmlalias.txt\r\n"] -[315.944721, "o", "usr/lib64/python3.7/site-packages/docutils/parsers/rst/include/isopub.txt\r\nusr/lib64/python3.7/site-packages/docutils/parsers/rst/roles.py\r\nusr/lib64/python3.7/site-packages/docutils/frontend.py\r\n"] -[315.949593, "o", "usr/lib64/python3.7/site-packages/docutils/languages/\r\nusr/lib64/python3.7/site-packages/docutils/languages/nl.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/af.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/en.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/\r\n"] -[315.949736, "o", "usr/lib64/python3.7/site-packages/docutils/languages/__pycache__/pt_br.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/pl.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/fr.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/sv.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/gl.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/ru.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/fi.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/zh_tw.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/lt.cpython-37.pyc\r\n"] -[315.952815, "o", "usr/lib64/python3.7/site-packages/docutils/languages/__pycache__/de.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/eo.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/ca.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/he.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/lv.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/zh_cn.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/es.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/en.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/cs.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/af.cpython-37.pyc\r\n"] -[315.952838, "o", "usr/lib64/python3.7/site-packages/docutils/languages/__pycache__/sk.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/it.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/ja.cpython-37.pyc\r\n"] -[315.952852, "o", "usr/lib64/python3.7/site-packages/docutils/languages/__pycache__/nl.cpython-37.pyc\r\n"] -[315.955441, "o", "usr/lib64/python3.7/site-packages/docutils/languages/__pycache__/da.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/__pycache__/fa.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/languages/sv.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/fi.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/de.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/ru.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/it.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/sk.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/fa.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/pl.py\r\n"] -[315.955465, "o", "usr/lib64/python3.7/site-packages/docutils/languages/fr.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/ja.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/gl.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/da.py\r\n"] -[315.955476, "o", "usr/lib64/python3.7/site-packages/docutils/languages/lv.py\r\n"] -[315.958144, "o", "usr/lib64/python3.7/site-packages/docutils/languages/lt.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/ca.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/cs.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/he.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/pt_br.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/zh_tw.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/es.py\r\n"] -[315.958347, "o", "usr/lib64/python3.7/site-packages/docutils/languages/zh_cn.py\r\nusr/lib64/python3.7/site-packages/docutils/languages/eo.py\r\nusr/lib64/python3.7/site-packages/docutils/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/__pycache__/nodes.cpython-37.pyc\r\n"] -[315.961424, "o", "usr/lib64/python3.7/site-packages/docutils/__pycache__/_compat.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/__pycache__/frontend.cpython-37.pyc\r\n"] -[315.966775, "o", "usr/lib64/python3.7/site-packages/docutils/__pycache__/io.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/__pycache__/examples.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/__pycache__/core.cpython-37.pyc\r\n"] -[315.970249, "o", "usr/lib64/python3.7/site-packages/docutils/__pycache__/statemachine.cpython-37.pyc\r\n"] -[315.980771, "o", "usr/lib64/python3.7/site-packages/docutils/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/io.py\r\n"] -[315.985226, "o", "usr/lib64/python3.7/site-packages/docutils/readers/\r\nusr/lib64/python3.7/site-packages/docutils/readers/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/readers/__pycache__/standalone.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/readers/__pycache__/pep.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/readers/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/readers/__pycache__/doctree.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/readers/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/readers/doctree.py\r\nusr/lib64/python3.7/site-packages/docutils/readers/standalone.py\r\n"] -[315.985253, "o", "usr/lib64/python3.7/site-packages/docutils/readers/pep.py\r\nusr/lib64/python3.7/site-packages/docutils/utils/\r\n"] -[315.985367, "o", "usr/lib64/python3.7/site-packages/docutils/utils/math/\r\nusr/lib64/python3.7/site-packages/docutils/utils/math/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/utils/math/__pycache__/unichar2tex.cpython-37.pyc\r\n"] -[315.988847, "o", "usr/lib64/python3.7/site-packages/docutils/utils/math/__pycache__/latex2mathml.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/utils/math/__pycache__/tex2mathml_extern.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/utils/math/__pycache__/math2html.cpython-37.pyc\r\n"] -[316.0091, "o", "usr/lib64/python3.7/site-packages/docutils/utils/math/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/utils/math/__pycache__/tex2unichar.cpython-37.pyc\r\n"] -[316.014659, "o", "usr/lib64/python3.7/site-packages/docutils/utils/math/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/utils/math/math2html.py\r\n"] -[316.039813, "o", "usr/lib64/python3.7/site-packages/docutils/utils/math/unichar2tex.py\r\nusr/lib64/python3.7/site-packages/docutils/utils/math/tex2mathml_extern.py\r\nusr/lib64/python3.7/site-packages/docutils/utils/math/latex2mathml.py\r\n"] -[316.043243, "o", "usr/lib64/python3.7/site-packages/docutils/utils/math/tex2unichar.py\r\n"] -[316.046607, "o", "usr/lib64/python3.7/site-packages/docutils/utils/error_reporting.py\r\nusr/lib64/python3.7/site-packages/docutils/utils/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/utils/__pycache__/code_analyzer.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/utils/__pycache__/roman.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/utils/__pycache__/error_reporting.cpython-37.pyc\r\n"] -[316.049824, "o", "usr/lib64/python3.7/site-packages/docutils/utils/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/utils/__pycache__/punctuation_chars.cpython-37.pyc\r\n"] -[316.053764, "o", "usr/lib64/python3.7/site-packages/docutils/utils/__pycache__/urischemes.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/utils/__pycache__/smartquotes.cpython-37.pyc\r\n"] -[316.056866, "o", "usr/lib64/python3.7/site-packages/docutils/utils/__init__.py\r\n"] -[316.062177, "o", "usr/lib64/python3.7/site-packages/docutils/utils/roman.py\r\nusr/lib64/python3.7/site-packages/docutils/utils/punctuation_chars.py\r\nusr/lib64/python3.7/site-packages/docutils/utils/smartquotes.py\r\n"] -[316.064911, "o", "usr/lib64/python3.7/site-packages/docutils/utils/urischemes.py\r\n"] -[316.065018, "o", "usr/lib64/python3.7/site-packages/docutils/utils/code_analyzer.py\r\n"] -[316.068178, "o", "usr/lib64/python3.7/site-packages/docutils/examples.py\r\nusr/lib64/python3.7/site-packages/docutils/nodes.py\r\n"] -[316.074872, "o", "usr/lib64/python3.7/site-packages/docutils/transforms/\r\nusr/lib64/python3.7/site-packages/docutils/transforms/components.py\r\nusr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/\r\nusr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/writer_aux.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/misc.cpython-37.pyc\r\n"] -[316.078667, "o", "usr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/parts.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/peps.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/universal.cpython-37.pyc\r\n"] -[316.082915, "o", "usr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/frontmatter.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/references.cpython-37.pyc\r\n"] -[316.086145, "o", "usr/lib64/python3.7/site-packages/docutils/transforms/__pycache__/components.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/docutils/transforms/__init__.py\r\nusr/lib64/python3.7/site-packages/docutils/transforms/writer_aux.py\r\nusr/lib64/python3.7/site-packages/docutils/transforms/peps.py\r\nusr/lib64/python3.7/site-packages/docutils/transforms/frontmatter.py\r\n"] -[316.091944, "o", "usr/lib64/python3.7/site-packages/docutils/transforms/misc.py\r\nusr/lib64/python3.7/site-packages/docutils/transforms/universal.py\r\n"] -[316.096642, "o", "usr/lib64/python3.7/site-packages/docutils/transforms/references.py\r\n"] -[316.100284, "o", "usr/lib64/python3.7/site-packages/docutils/transforms/parts.py\r\nusr/lib64/python3.7/site-packages/docutils/statemachine.py\r\n"] -[316.107909, "o", "usr/lib64/python3.7/site-packages/docutils/_compat.py\r\nusr/lib64/python2.7/\r\nusr/lib64/python2.7/site-packages/\r\nusr/lib64/python2.7/site-packages/docutils-0.14-py2.7.egg-info\r\nusr/lib64/python2.7/site-packages/docutils/\r\n"] -[316.108084, "o", "usr/lib64/python2.7/site-packages/docutils/core.py\r\n"] -[316.112005, "o", "usr/lib64/python2.7/site-packages/docutils/writers/\r\nusr/lib64/python2.7/site-packages/docutils/writers/manpage.py\r\n"] -[316.115912, "o", "usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot/\r\nusr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot/plain.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot/__init__.py\r\n"] -[316.119771, "o", "usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot/minimal.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot/math.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot/__init__.pyc\r\n"] -[316.123257, "o", "usr/lib64/python2.7/site-packages/docutils/writers/html5_polyglot/template.txt\r\nusr/lib64/python2.7/site-packages/docutils/writers/pseudoxml.py\r\nusr/lib64/python2.7/site-packages/docutils/writers/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/writers/null.py\r\nusr/lib64/python2.7/site-packages/docutils/writers/html4css1/\r\nusr/lib64/python2.7/site-packages/docutils/writers/html4css1/html4css1.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/html4css1/__init__.py\r\n"] -[316.126931, "o", "usr/lib64/python2.7/site-packages/docutils/writers/html4css1/__init__.pyc\r\n"] -[316.12925, "o", "usr/lib64/python2.7/site-packages/docutils/writers/html4css1/template.txt\r\nusr/lib64/python2.7/site-packages/docutils/writers/manpage.pyc\r\n"] -[316.134747, "o", "usr/lib64/python2.7/site-packages/docutils/writers/_html_base.pyc\r\n"] -[316.14507, "o", "usr/lib64/python2.7/site-packages/docutils/writers/latex2e/\r\nusr/lib64/python2.7/site-packages/docutils/writers/latex2e/titlepage.tex\r\nusr/lib64/python2.7/site-packages/docutils/writers/latex2e/__init__.py\r\n"] -[316.164771, "o", "usr/lib64/python2.7/site-packages/docutils/writers/latex2e/default.tex\r\nusr/lib64/python2.7/site-packages/docutils/writers/latex2e/__init__.pyc\r\n"] -[316.180251, "o", "usr/lib64/python2.7/site-packages/docutils/writers/latex2e/xelatex.tex\r\nusr/lib64/python2.7/site-packages/docutils/writers/xetex/\r\nusr/lib64/python2.7/site-packages/docutils/writers/xetex/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/writers/xetex/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/writers/docutils_xml.pyc\r\nusr/lib64/python2.7/site-packages/docutils/writers/docutils_xml.py\r\n"] -[316.184051, "o", "usr/lib64/python2.7/site-packages/docutils/writers/pep_html/\r\nusr/lib64/python2.7/site-packages/docutils/writers/pep_html/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/writers/pep_html/pep.css\r\n"] -[316.184075, "o", "usr/lib64/python2.7/site-packages/docutils/writers/pep_html/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/writers/pep_html/template.txt\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/\r\n"] -[316.184091, "o", "usr/lib64/python2.7/site-packages/docutils/writers/s5_html/__init__.py\r\n"] -[316.184152, "o", "usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-white/\r\n"] -[316.184264, "o", "usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-white/framing.css\r\n"] -[316.189661, "o", "usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-white/pretty.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-black/\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-black/framing.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-black/pretty.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-black/__base__\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/\r\n"] -[316.189731, "o", "usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/blank.gif\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/framing.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/slides.js\r\n"] -[316.195617, "o", "usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/pretty.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/opera.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/outline.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/slides.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/iepngfix.htc\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/s5-core.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/default/print.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-white/\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-white/framing.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-white/pretty.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-black/\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-black/p"] -[316.195682, "o", "retty.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/small-black/__base__\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/README.txt\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-black/\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-black/pretty.css\r\n"] -[316.197659, "o", "usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/medium-black/__base__\r\n"] -[316.197753, "o", "usr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-white/\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-white/framing.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/themes/big-white/pretty.css\r\nusr/lib64/python2.7/site-packages/docutils/writers/s5_html/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/writers/odf_odt/\r\nusr/lib64/python2.7/site-packages/docutils/writers/odf_odt/pygmentsformatter.pyc\r\nusr/lib64/python2.7/site-packages/docutils/writers/odf_odt/__init__.py\r\n"] -[316.209331, "o", "usr/lib64/python2.7/site-packages/docutils/writers/odf_odt/pygmentsformatter.py\r\nusr/lib64/python2.7/site-packages/docutils/writers/odf_odt/styles.odt\r\nusr/lib64/python2.7/site-packages/docutils/writers/odf_odt/__init__.pyc\r\n"] -[316.223091, "o", "usr/lib64/python2.7/site-packages/docutils/writers/pseudoxml.pyc\r\nusr/lib64/python2.7/site-packages/docutils/writers/null.pyc\r\nusr/lib64/python2.7/site-packages/docutils/writers/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/writers/_html_base.py\r\n"] -[316.231847, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/\r\nusr/lib64/python2.7/site-packages/docutils/parsers/__init__.py\r\n"] -[316.237789, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/null.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/tableparser.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/\r\n"] -[316.237852, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/nl.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fi.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/af.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/it.pyc\r\n"] -[316.237863, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/zh_tw.pyc\r\n"] -[316.240767, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/en.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/sv.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fi.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/pl.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ru.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/nl.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/sv.pyc\r\n"] -[316.244712, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/de.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/pt_br.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/de.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fa.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/zh_cn.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ru.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/sk.pyc\r\n"] -[316.249403, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/es.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/lv.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/it.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ca.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/sk.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/af.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/eo.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fa.py\r\n"] -[316.251633, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/pl.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/gl.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fr.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ja.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/gl.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/da.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/lv.py\r\n"] -[316.256056, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/lt.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ca.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/cs.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/fr.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/en.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/he.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/lt.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/da.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/cs.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/ja.pyc\r\n"] -[316.258924, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/he.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/pt_br.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/zh_tw.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/es.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/zh_cn.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/languages/eo.py\r\n"] -[316.261555, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/tableparser.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/__init__.py\r\n"] -[316.263901, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/parts.pyc\r\n"] -[316.264064, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/html.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/__init__.py\r\n"] -[316.266644, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/admonitions.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/tables.py\r\n"] -[316.269704, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/tables.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/html.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/images.py\r\n"] -[316.269853, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/misc.pyc\r\n"] -[316.272776, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/body.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/misc.py\r\n"] -[316.275892, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/body.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/references.py\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/admonitions.pyc\r\n"] -[316.279966, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/references.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/images.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/directives/parts.py\r\n"] -[316.286155, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/states.py\r\n"] -[316.302574, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/states.pyc\r\n"] -[316.314606, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/roles.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/__init__.pyc\r\n"] -[316.31935, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/include/\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/s5defs.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isomopf.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isomfrk-wide.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isotech.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isomopf-wide.txt\r\n"] -[316.325336, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isogrk2.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isoamsb.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isoamso.txt\r\n"] -[316.325949, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isolat2.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isocyr2.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isogrk1.txt\r\n"] -[316.331283, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isodia.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isoamsr.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isomscr-wide.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isoamsa.txt\r\n"] -[316.334565, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/include/README.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isomscr.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isoamsn.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/xhtml1-symbol.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isoamsc.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isogrk4.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/mmlextra-wide.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isocyr1.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isonum.txt\r\n"] -[316.337146, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/include/mmlextra.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isogrk4-wide.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isomfrk.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isolat1.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/xhtml1-special.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/xhtml1-lat1.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isobox.txt\r\n"] -[316.340749, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isogrk3.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/include/mmlalias.txt\r\n"] -[316.344059, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/rst/include/isopub.txt\r\nusr/lib64/python2.7/site-packages/docutils/parsers/rst/roles.py\r\n"] -[316.346716, "o", "usr/lib64/python2.7/site-packages/docutils/parsers/null.pyc\r\nusr/lib64/python2.7/site-packages/docutils/parsers/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/frontend.py\r\n"] -[316.350289, "o", "usr/lib64/python2.7/site-packages/docutils/languages/\r\nusr/lib64/python2.7/site-packages/docutils/languages/nl.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/fi.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/af.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/it.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/zh_tw.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/en.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/sv.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/fi.py\r\n"] -[316.354322, "o", "usr/lib64/python2.7/site-packages/docutils/languages/pl.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/ru.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/nl.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/sv.pyc\r\n"] -[316.354641, "o", "usr/lib64/python2.7/site-packages/docutils/languages/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/de.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/pt_br.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/de.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/fa.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/zh_cn.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/ru.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/sk.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/es.pyc\r\n"] -[316.359057, "o", "usr/lib64/python2.7/site-packages/docutils/languages/lv.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/it.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/ca.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/sk.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/af.pyc\r\n"] -[316.359176, "o", "usr/lib64/python2.7/site-packages/docutils/languages/eo.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/fa.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/pl.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/gl.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/fr.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/ja.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/gl.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/da.py\r\n"] -[316.362567, "o", "usr/lib64/python2.7/site-packages/docutils/languages/lv.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/lt.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/ca.py\r\n"] -[316.362665, "o", "usr/lib64/python2.7/site-packages/docutils/languages/cs.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/fr.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/en.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/he.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/lt.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/da.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/cs.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/ja.pyc\r\nusr/lib64/python2.7/site-packages/docutils/languages/he.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/__init__.pyc\r\n"] -[316.365808, "o", "usr/lib64/python2.7/site-packages/docutils/languages/pt_br.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/zh_tw.py\r\n"] -[316.365861, "o", "usr/lib64/python2.7/site-packages/docutils/languages/es.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/zh_cn.py\r\nusr/lib64/python2.7/site-packages/docutils/languages/eo.py\r\nusr/lib64/python2.7/site-packages/docutils/_compat.pyc\r\nusr/lib64/python2.7/site-packages/docutils/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/examples.pyc\r\n"] -[316.367785, "o", "usr/lib64/python2.7/site-packages/docutils/io.py\r\n"] -[316.367842, "o", "usr/lib64/python2.7/site-packages/docutils/statemachine.pyc\r\n"] -[316.372803, "o", "usr/lib64/python2.7/site-packages/docutils/readers/\r\n"] -[316.372921, "o", "usr/lib64/python2.7/site-packages/docutils/readers/standalone.pyc\r\nusr/lib64/python2.7/site-packages/docutils/readers/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/readers/pep.pyc\r\nusr/lib64/python2.7/site-packages/docutils/readers/doctree.py\r\nusr/lib64/python2.7/site-packages/docutils/readers/standalone.py\r\nusr/lib64/python2.7/site-packages/docutils/readers/pep.py\r\nusr/lib64/python2.7/site-packages/docutils/readers/doctree.pyc\r\nusr/lib64/python2.7/site-packages/docutils/readers/__init__.pyc\r\n"] -[316.376833, "o", "usr/lib64/python2.7/site-packages/docutils/utils/\r\n"] -[316.376913, "o", "usr/lib64/python2.7/site-packages/docutils/utils/math/\r\nusr/lib64/python2.7/site-packages/docutils/utils/math/latex2mathml.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/math/math2html.pyc\r\n"] -[316.421218, "o", "usr/lib64/python2.7/site-packages/docutils/utils/math/tex2mathml_extern.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/math/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/utils/math/math2html.py\r\n"] -[316.448869, "o", "usr/lib64/python2.7/site-packages/docutils/utils/math/tex2unichar.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/math/unichar2tex.py\r\n"] -[316.452004, "o", "usr/lib64/python2.7/site-packages/docutils/utils/math/tex2mathml_extern.py\r\nusr/lib64/python2.7/site-packages/docutils/utils/math/unichar2tex.pyc\r\n"] -[316.455441, "o", "usr/lib64/python2.7/site-packages/docutils/utils/math/latex2mathml.py\r\n"] -[316.458101, "o", "usr/lib64/python2.7/site-packages/docutils/utils/math/tex2unichar.py\r\nusr/lib64/python2.7/site-packages/docutils/utils/math/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/error_reporting.py\r\n"] -[316.461465, "o", "usr/lib64/python2.7/site-packages/docutils/utils/__init__.py\r\n"] -[316.463876, "o", "usr/lib64/python2.7/site-packages/docutils/utils/error_reporting.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/punctuation_chars.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/roman.py\r\nusr/lib64/python2.7/site-packages/docutils/utils/smartquotes.pyc\r\n"] -[316.466959, "o", "usr/lib64/python2.7/site-packages/docutils/utils/code_analyzer.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/punctuation_chars.py\r\n"] -[316.469858, "o", "usr/lib64/python2.7/site-packages/docutils/utils/roman.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/smartquotes.py\r\n"] -[316.473445, "o", "usr/lib64/python2.7/site-packages/docutils/utils/urischemes.pyc\r\nusr/lib64/python2.7/site-packages/docutils/utils/urischemes.py\r\nusr/lib64/python2.7/site-packages/docutils/utils/__init__.pyc\r\n"] -[316.476495, "o", "usr/lib64/python2.7/site-packages/docutils/utils/code_analyzer.py\r\nusr/lib64/python2.7/site-packages/docutils/examples.py\r\n"] -[316.479586, "o", "usr/lib64/python2.7/site-packages/docutils/nodes.py\r\n"] -[316.487448, "o", "usr/lib64/python2.7/site-packages/docutils/transforms/\r\nusr/lib64/python2.7/site-packages/docutils/transforms/frontmatter.pyc\r\n"] -[316.490625, "o", "usr/lib64/python2.7/site-packages/docutils/transforms/components.py\r\nusr/lib64/python2.7/site-packages/docutils/transforms/parts.pyc\r\nusr/lib64/python2.7/site-packages/docutils/transforms/__init__.py\r\nusr/lib64/python2.7/site-packages/docutils/transforms/writer_aux.py\r\nusr/lib64/python2.7/site-packages/docutils/transforms/peps.py\r\n"] -[316.494651, "o", "usr/lib64/python2.7/site-packages/docutils/transforms/frontmatter.py\r\nusr/lib64/python2.7/site-packages/docutils/transforms/peps.pyc\r\n"] -[316.498239, "o", "usr/lib64/python2.7/site-packages/docutils/transforms/writer_aux.pyc\r\nusr/lib64/python2.7/site-packages/docutils/transforms/misc.pyc\r\nusr/lib64/python2.7/site-packages/docutils/transforms/misc.py\r\nusr/lib64/python2.7/site-packages/docutils/transforms/universal.py\r\nusr/lib64/python2.7/site-packages/docutils/transforms/references.py\r\n"] -[316.505356, "o", "usr/lib64/python2.7/site-packages/docutils/transforms/components.pyc\r\nusr/lib64/python2.7/site-packages/docutils/transforms/universal.pyc\r\nusr/lib64/python2.7/site-packages/docutils/transforms/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/transforms/references.pyc\r\n"] -[316.508677, "o", "usr/lib64/python2.7/site-packages/docutils/transforms/parts.py\r\nusr/lib64/python2.7/site-packages/docutils/statemachine.py\r\n"] -[316.517857, "o", "usr/lib64/python2.7/site-packages/docutils/core.pyc\r\n"] -[316.522501, "o", "usr/lib64/python2.7/site-packages/docutils/_compat.py\r\nusr/lib64/python2.7/site-packages/docutils/__init__.pyc\r\nusr/lib64/python2.7/site-packages/docutils/io.pyc\r\n"] -[316.525906, "o", "usr/lib64/python2.7/site-packages/docutils/nodes.pyc\r\n"] -[316.534115, "o", "usr/lib64/python2.7/site-packages/docutils/frontend.pyc\r\n"] -[316.545122, "o", "install/\r\ninstall/slack-desc\r\n"] -[316.565464, "o", "\r\nSlackware package /tmp/docutils-0.14-x86_64-1_SBo.tgz created.\r\n\r\n"] -[316.56616, "o", "Total build time for the package docutils : 1 Min 07 Sec\r\n\r\n"] -[316.590683, "o", "\u001b[?2004h"] -[316.696083, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[316.69613, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[321.757821, "o", "\u001b[H\u001b[2J"] -[321.862635, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[322.141963, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[322.142351, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[322.142421, "o", "\u001b[38;5;240mlpkg -n docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[322.237337, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -n docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[322.237473, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[322.281478, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -n docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C"] -[322.281912, "o", "\u001b[47C \r\u001b[79C\r\u001b[32C"] -[322.44129, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -n docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[322.441401, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[322.518749, "o", "\u001b[38;5;196mg\u001b[38;5;240m -n docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[322.518893, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C"] -[322.519292, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -n docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[322.740674, "o", "\u001b[K\u001b[45C \r\u001b[79C\r\u001b[34C\r\n\u001b[30m\u001b(B\u001b[m"] -[322.741075, "o", "\u001b[?2004l"] -[322.741575, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[323.069416, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[323.069556, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[323.083115, "o", "\u001b[?2004h"] -[323.183576, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K"] -[323.183661, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[325.834813, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[325.834956, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[325.835014, "o", "\u001b[38;5;240mlpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[325.981222, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[326.039911, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[326.198171, "o", "\u001b[38;5;196mk\u001b[38;5;240mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[326.198291, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[326.305958, "o", "\u001b[38;5;196mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[326.3061, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C"] -[326.306542, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[327.423659, "o", "\u001b[38;5;26m \u001b[44C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[327.424003, "o", "\u001b[44C \r\u001b[79C\r\u001b[35C"] -[327.424097, "o", "\b \u001b[44C \r\u001b[79C\r\u001b[35C\u001b[38;5;240m-n docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[327.514944, "o", "-\u001b[38;5;240mn docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[327.515337, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[327.515662, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mn docutils\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[327.695378, "o", "\u001b[38;5;39mp\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[327.696056, "o", "\u001b[38;5;240m sbo slpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[328.734595, "o", "\u001b[38;5;39m \u001b[38;5;240msbo slpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C\u001b[41C \r\u001b[79C\r\u001b[38C"] -[328.735179, "o", "\b \u001b[38;5;240msbo slpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[328.983776, "o", "s\u001b[38;5;240mbo slpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[328.9839, "o", "\u001b[40C \r\u001b[79C\r\u001b[39C"] -[328.984358, "o", "\b\u001b[38;5;39m\u001b[4ms\u001b[38;5;240m\u001b[24mbo slpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[329.382409, "o", "\u001b[38;5;39m\u001b[4mb\u001b[38;5;240m\u001b[24mo slpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[329.382569, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[329.3827, "o", "\b\b\u001b[38;5;39msb\u001b[38;5;240mo slpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[329.454098, "o", "\u001b[38;5;39mo\u001b[38;5;240m slpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C\u001b[38C \r\u001b[79C\r\u001b[41C"] -[329.626971, "o", "\u001b[38;5;39m \u001b[38;5;240mslpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C\u001b[37C \r\u001b[79C\r\u001b[42C"] -[329.627477, "o", "\b \u001b[38;5;240mslpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[330.039595, "o", "s\u001b[38;5;240mlpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C\u001b[36C \r\u001b[79C\r\u001b[43C"] -[330.04007, "o", "\b\u001b[38;5;39m\u001b[4ms\u001b[38;5;240m\u001b[24mlpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[330.120267, "o", "\u001b[38;5;39m\u001b[4ml\u001b[38;5;240m\u001b[24mpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[330.120392, "o", "\u001b[35C \r\u001b[79C\r\u001b[44C"] -[330.162664, "o", "\u001b[38;5;39m\u001b[4mp\u001b[38;5;240m\u001b[24mkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[330.16278, "o", "\u001b[34C \r\u001b[79C\r\u001b[45C"] -[330.310433, "o", "\u001b[38;5;39m\u001b[4mk\u001b[38;5;240m\u001b[24mg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C\u001b[33C \r\u001b[79C\r\u001b[46C"] -[330.424885, "o", "\u001b[38;5;39m\u001b[4mg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[330.425007, "o", "\u001b[32C \r\u001b[79C\r\u001b[47C"] -[330.550011, "o", "\u001b[32C \r\u001b[79C\r\u001b[47C\r\n\u001b[30m\u001b(B\u001b[m"] -[330.550402, "o", "\u001b[?2004l"] -[330.550859, "o", "\u001b]0;slpkg /home/dslackw\u0007"] -[330.550976, "o", "\u001b[30m\u001b(B\u001b[m\r"] -[330.845455, "o", "\r\n"] -[330.884561, "o", "slpkg (Slackware Packaging Tool)\u001b[0m\r\n\r\n"] -[330.898334, "o", "\u001b[?2004h"] -[330.995684, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K"] -[330.995762, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[332.125396, "o", "slpkg -p sbo slpkg\u001b[32C \r\u001b[79C\r\u001b[47C"] -[332.126278, "o", "\u001b[18D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-p\u001b[30m\u001b(B\u001b[m \u001b[38;5;39msbo\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m\u001b[4mslpkg\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[332.439481, "o", "\b\u001b[K\u001b[33C \r\u001b[79C\r\u001b[46C"] -[332.571622, "o", "\b\u001b[K\u001b[34C \r\u001b[79C\r\u001b[45C"] -[332.697471, "o", "\b\u001b[K\u001b[35C \r\u001b[79C\r\u001b[44C"] -[332.832083, "o", "\b\u001b[K\u001b[36C \r\u001b[79C\r\u001b[43C"] -[332.977047, "o", "\b\u001b[K\u001b[37C \r\u001b[79C\r\u001b[42C"] -[333.386009, "o", "c\u001b[36C \r\u001b[79C\r\u001b[43C"] -[333.386123, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C"] -[333.386452, "o", "\u001b[38;5;240molored\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[333.386659, "o", "\b\u001b[38;5;39mc\u001b[38;5;240molored\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[333.505738, "o", "\u001b[38;5;39mo\u001b[38;5;240mlored\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[333.50611, "o", "\u001b[35C \r\u001b[79C\r\u001b[44C"] -[333.644301, "o", "\u001b[38;5;39ml\u001b[38;5;240mored\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C\u001b[34C \r\u001b[79C\r\u001b[45C"] -[333.792501, "o", "\u001b[38;5;39mo\u001b[38;5;240mred\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C"] -[333.79291, "o", "\u001b[33C \r\u001b[79C\r\u001b[46C"] -[333.903247, "o", "\u001b[38;5;39mr\u001b[38;5;240med\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C\u001b[32C \r\u001b[79C\r\u001b[47C"] -[334.071274, "o", "\u001b[38;5;39me\u001b[38;5;240md\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C"] -[334.071422, "o", "\u001b[31C \r\u001b[79C\r\u001b[48C"] -[334.350419, "o", "\u001b[38;5;39md\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[49C\u001b[30C \r\u001b[79C\r\u001b[49C"] -[334.53643, "o", "\u001b[30C \r\u001b[79C\r\u001b[49C\r\n\u001b[30m\u001b(B\u001b[m"] -[334.536855, "o", "\u001b[?2004l"] -[334.537556, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[334.841013, "o", "\r\n"] -[334.874398, "o", "colored (python color library)\u001b[0m\r\n\r\n"] -[334.888683, "o", "\u001b[?2004h"] -[334.989796, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[339.750689, "o", "slpkg -p sbo colored\u001b[30C \r\u001b[79C\r\u001b[49C"] -[339.751443, "o", "\u001b[20D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-p\u001b[30m\u001b(B\u001b[m \u001b[38;5;39msbo\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mcolored\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[49C"] -[340.251149, "o", "\u001b[38;5;39m \u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[50C\u001b[29C \r\u001b[79C\r\u001b[50C"] -[340.251639, "o", "\b \u001b[29C \r\u001b[79C\r\u001b[50C"] -[340.446404, "o", "-\u001b[28C \r\u001b[79C\r\u001b[51C"] -[340.44655, "o", "\u001b[28C \r\u001b[79C\r\u001b[51C"] -[340.447111, "o", "\b\u001b[38;5;39m-\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[51C"] -[340.46279, "o", "\u001b[38;5;240m-autobuild \u001b[17C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[51C"] -[340.537037, "o", "\u001b[38;5;39m-\u001b[38;5;240mautobuild \u001b[17C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[52C"] -[340.537475, "o", "\u001b[27C \r\u001b[79C\r\u001b[52C"] -[341.630083, "o", "\u001b[38;5;39mc\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[26C \r\u001b[79C\r\u001b[53C"] -[341.630495, "o", "\u001b[26C \r\u001b[79C\r\u001b[53C"] -[341.644482, "o", "\u001b[38;5;240mheck \u001b[21C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[53C"] -[341.694484, "o", "\u001b[38;5;39mo\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[25C \r\u001b[79C\r\u001b[54C"] -[341.694904, "o", "\u001b[25C \r\u001b[79C\r\u001b[54C"] -[341.703249, "o", "\u001b[38;5;240mnfig \u001b[20C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[54C"] -[341.840574, "o", "\u001b[38;5;39ml\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[24C \r\u001b[79C\r\u001b[55C"] -[341.841013, "o", "\u001b[24C \r\u001b[79C\r\u001b[55C"] -[341.989312, "o", "\u001b[38;5;39mo\u001b[23C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[56C"] -[341.989433, "o", "\u001b[23C \r\u001b[79C\r\u001b[56C"] -[342.236591, "o", "\u001b[38;5;39mr\u001b[22C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[57C"] -[342.236648, "o", "\u001b[22C \r\u001b[79C\r\u001b[57C"] -[342.861264, "o", "\u001b[38;5;39m=\u001b[21C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[58C"] -[342.861396, "o", "\u001b[21C \r\u001b[79C\r\u001b[58C"] -[342.875686, "o", "\u001b[38;5;240mDesktop/\u001b[13C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[58C"] -[343.124146, "o", "\u001b[38;5;39mr\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[20C \r\u001b[79C\r\u001b[59C"] -[343.124557, "o", "\u001b[20C \r\u001b[79C\r\u001b[59C"] -[343.202625, "o", "\u001b[38;5;39me\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[60C"] -[343.202692, "o", "\u001b[19C \r\u001b[79C\r\u001b[60C"] -[343.389416, "o", "\u001b[38;5;39md\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[61C"] -[343.389735, "o", "\u001b[18C \r\u001b[79C\r\u001b[61C"] -[343.55931, "o", "\u001b[18C \r\u001b[79C\r\u001b[61C\r\n\u001b[30m\u001b(B\u001b[m"] -[343.559435, "o", "\u001b[?2004l"] -[343.560009, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[343.855197, "o", "\r\n"] -[343.888608, "o", "\u001b[31mcolored (python color library)\u001b[0m\r\n\r\n"] -[343.904027, "o", "\u001b[?2004h"] -[344.007381, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[344.561199, "o", "slpkg -p sbo colored --color=red\u001b[18C \r\u001b[79C\r\u001b[61C"] -[344.56197, "o", "\u001b[32D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-p\u001b[30m\u001b(B\u001b[m \u001b[38;5;39msbo\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mcolored\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--color=red\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[61C"] -[344.804658, "o", "\u001b[18C \r\u001b[79C\r\u001b[60C"] -[344.946666, "o", "\u001b[19C \r\u001b[79C\r\u001b[59C"] -[345.445836, "o", "\u001b[20C \r\u001b[79C\r\u001b[58C"] -[345.495951, "o", "\u001b[21C \r\u001b[79C\r\u001b[57C"] -[345.547207, "o", "\u001b[22C \r\u001b[79C\r\u001b[56C"] -[345.598006, "o", "\u001b[23C \r\u001b[79C\r\u001b[55C"] -[345.648665, "o", "\u001b[24C \r\u001b[79C\r\u001b[54C"] -[345.699553, "o", "\u001b[25C \r\u001b[79C\r\u001b[53C"] -[345.750336, "o", "\u001b[26C \r\u001b[79C\r\u001b[52C"] -[345.800855, "o", "\u001b[27C \r\u001b[79C\r\u001b[51C"] -[345.851867, "o", "\u001b[28C \r\u001b[79C\r\u001b[50C"] -[346.168844, "o", "\u001b[29C \r\u001b[79C\r\u001b[49C"] -[346.479237, "o", "\b\u001b[38;5;39m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-color=red\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[19C \r\u001b[79C\r\u001b[48C"] -[346.479648, "o", " \u001b[38;5;39m--color=red\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C"] -[346.603873, "o", "\b\u001b[38;5;39m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-color=red\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[20C \r\u001b[79C\r\u001b[47C"] -[346.604224, "o", " \u001b[38;5;39m--color=red\u001b[20C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[346.729996, "o", "\b\u001b[38;5;39m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-color=red\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[21C \r\u001b[79C\r\u001b[46C"] -[346.73067, "o", " \u001b[38;5;39m--color=red\u001b[21C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C"] -[346.862942, "o", "\b\u001b[38;5;39m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-color=red\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[22C \r\u001b[79C\r\u001b[45C"] -[346.863493, "o", " \u001b[38;5;39m--color=red\u001b[22C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[347.002901, "o", "\b\u001b[38;5;39m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-color=red\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[23C \r\u001b[79C\r\u001b[44C"] -[347.003617, "o", " \u001b[38;5;39m--color=red\u001b[23C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[347.15056, "o", "\b\u001b[38;5;39m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-color=red\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[24C \r\u001b[79C\r\u001b[43C"] -[347.151168, "o", " \u001b[38;5;39m--color=red\u001b[24C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[347.297377, "o", "\b\u001b[38;5;39m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-color=red\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[25C \r\u001b[79C\r\u001b[42C"] -[347.297538, "o", " \u001b[38;5;39m--color=red\u001b[25C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[347.831654, "o", "F\u001b[38;5;39m --color=red\u001b[24C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[347.83178, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C"] -[347.832179, "o", "\b\u001b[38;5;39mF\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--color=red\u001b[24C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[348.288062, "o", "l\u001b[38;5;39m --color=red\u001b[23C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[348.288421, "o", "\u001b[35C \r\u001b[79C\r\u001b[44C"] -[348.288664, "o", "\b\u001b[38;5;39ml\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--color=red\u001b[23C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[348.380361, "o", "a\u001b[38;5;39m --color=red\u001b[22C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C\u001b[34C \r\u001b[79C\r\u001b[45C"] -[348.380563, "o", "\b\u001b[38;5;39ma\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--color=red\u001b[22C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[348.596059, "o", "s\u001b[38;5;39m --color=red\u001b[21C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C\u001b[33C \r\u001b[79C\r\u001b[46C"] -[348.596633, "o", "\b\u001b[38;5;39ms\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--color=red\u001b[21C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C"] -[348.687562, "o", "k\u001b[38;5;39m --color=red\u001b[20C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[348.687735, "o", "\u001b[32C \r\u001b[79C\r\u001b[47C"] -[348.688116, "o", "\b\u001b[38;5;39mk\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--color=red\u001b[20C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[349.387466, "o", "\u001b[32C \r\u001b[79C\r\u001b[59C"] -[349.930158, "o", "\b\u001b[K\u001b[21C \r\u001b[79C\r\u001b[58C"] -[350.055553, "o", "\b\u001b[K\u001b[22C \r\u001b[79C\r\u001b[57C"] -[350.415533, "o", "\b\u001b[K\u001b[23C \r\u001b[79C\r\u001b[56C"] -[350.824889, "o", "\u001b[38;5;39mg\u001b[22C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[57C"] -[350.825023, "o", "\u001b[22C \r\u001b[79C\r\u001b[57C"] -[350.838242, "o", "\b\u001b[38;5;39mG\u001b[38;5;240mitlab/\u001b[16C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[57C"] -[350.991054, "o", "\b\u001b[38;5;39mgr\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[21C \r\u001b[79C\r\u001b[58C"] -[350.991401, "o", "\u001b[21C \r\u001b[79C\r\u001b[58C"] -[351.174241, "o", "\u001b[38;5;39me\u001b[20C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[59C"] -[351.174371, "o", "\u001b[20C \r\u001b[79C\r\u001b[59C"] -[351.300308, "o", "\u001b[38;5;39me\u001b[19C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[60C"] -[351.300748, "o", "\u001b[19C \r\u001b[79C\r\u001b[60C"] -[351.39879, "o", "\u001b[38;5;39mn\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[61C\u001b[18C \r\u001b[79C\r\u001b[61C"] -[351.744335, "o", "\u001b[18C \r\u001b[79C\r\u001b[61C\r\n\u001b[30m\u001b(B\u001b[m"] -[351.744813, "o", "\u001b[?2004l"] -[351.745311, "o", "\u001b]0;slpkg /home/ds"] -[351.74564, "o", "lackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[352.039196, "o", "\r\n"] -[352.072978, "o", "\u001b[32mFlask (Microframework for Python)\u001b[0m\r\n\r\n"] -[352.088273, "o", "\u001b[?2004h"] -[352.192091, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[352.192257, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[353.969077, "o", "\u001b[H\u001b[2J"] -[354.113435, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[354.726371, "o", "slpkg -p sbo Flask --color=green\u001b[18C \r\u001b[79C\r\u001b[61C"] -[354.726916, "o", "\u001b[32D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-p\u001b[30m\u001b(B\u001b[m \u001b[38;5;39msbo\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mFlask\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--color=green\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[61C"] -[355.165791, "o", "\b\u001b[K\u001b[19C \r\u001b[79C\r\u001b[60C"] -[355.665282, "o", "\b\u001b[K\u001b[20C \r\u001b[79C\r\u001b[59C"] -[355.715719, "o", "\b\u001b[K\u001b[21C \r\u001b[79C\r\u001b[58C"] -[355.766068, "o", "\b\u001b[K\u001b[22C \r\u001b[79C\r\u001b[57C"] -[355.816169, "o", "\b\u001b[K\u001b[23C \r\u001b[79C\r\u001b[56C"] -[355.866402, "o", "\b\u001b[K\u001b[24C \r\u001b[79C\r\u001b[55C"] -[355.915732, "o", "\b\u001b[K\u001b[25C \r\u001b[79C\r\u001b[54C"] -[355.96587, "o", "\b\u001b[K\u001b[26C \r\u001b[79C\r\u001b[53C"] -[356.016749, "o", "\b\u001b[K\u001b[27C \r\u001b[79C\r\u001b[52C"] -[356.067305, "o", "\b\u001b[K\u001b[28C \r\u001b[79C\r\u001b[51C"] -[356.117044, "o", "\b\u001b[K\u001b[29C \r\u001b[79C\r\u001b[50C"] -[356.167131, "o", "\b\u001b[K\u001b[30C \r\u001b[79C\r\u001b[49C"] -[356.217321, "o", "\b\u001b[K\u001b[31C \r\u001b[79C\r\u001b[48C"] -[356.267309, "o", "\b\u001b[K\u001b[32C \r\u001b[79C\r\u001b[47C"] -[356.318109, "o", "\b\u001b[K\u001b[33C \r\u001b[79C\r\u001b[46C"] -[356.368697, "o", "\b\u001b[K\u001b[34C \r\u001b[79C\r\u001b[45C"] -[356.418692, "o", "\b\u001b[K\u001b[35C \r\u001b[79C\r\u001b[44C"] -[356.469009, "o", "\b\u001b[K\u001b[36C \r\u001b[79C\r\u001b[43C"] -[356.87605, "o", "\b\u001b[K\u001b[37C \r\u001b[79C\r\u001b[42C"] -[357.376515, "o", "\b\u001b[K\u001b[38C \r\u001b[79C\r\u001b[41C"] -[357.426454, "o", "\b\u001b[K\u001b[39C \r\u001b[79C\r\u001b[40C"] -[357.476003, "o", "\b\u001b[K\u001b[40C \r\u001b[79C\r\u001b[39C"] -[357.476501, "o", "\b\u001b[38;5;39m\u001b[4ms\u001b[40C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[357.52706, "o", "\b\u001b[K\u001b[41C \r\u001b[79C\r\u001b[38C"] -[357.577549, "o", "\b\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[357.627414, "o", "\b\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C"] -[357.929199, "o", "\b\u001b[K\u001b[44C \r\u001b[79C\r\u001b[35C"] -[358.791927, "o", "\b\u001b[K\u001b[45C \r\u001b[79C\r\u001b[34C"] -[358.983675, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C\r\n\u001b[30m\u001b(B\u001b[m"] -[358.983807, "o", "\u001b[?2004l"] -[358.984497, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[358.984855, "o", "\r"] -[359.265624, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[359.265785, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[359.279078, "o", "\u001b[?2004h"] -[359.391453, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[359.391595, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[363.666181, "o", "\u001b[H\u001b[2J"] -[363.78191, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[364.018959, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C"] -[364.019329, "o", "\u001b[49C \r\u001b[79C\r\u001b[30C"] -[364.019719, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[364.076346, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[364.142776, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[364.28737, "o", "\u001b[38;5;196mk\u001b[38;5;240mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[364.38887, "o", "\u001b[38;5;196mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[364.389294, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[364.820419, "o", "\u001b[38;5;26m \u001b[44C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[364.820549, "o", "\b \u001b[44C \r\u001b[79C\r\u001b[35C"] -[364.821026, "o", "\u001b[38;5;240m-p sbo Flask --color=green\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[364.997262, "o", "-\u001b[38;5;240mp sbo Flask --color=green\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[364.997685, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[364.998022, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mp sbo Flask --color=green\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[365.25418, "o", "\u001b[38;5;39mc\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C"] -[365.254589, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[365.254942, "o", "\u001b[38;5;240m slack --upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[365.941454, "o", "\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C\r\n\u001b[30m\u001b(B\u001b[m"] -[365.941835, "o", "\u001b[?2004l"] -[365.942128, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[365.942403, "o", "\r"] -[366.235938, "o", "\r\n+==============================================================================\r\n| Repository Status\r\n+==============================================================================\r\n"] -[366.647392, "o", " slack No changes in ChangeLog.txt\r\n"] -[367.443685, "o", " sbo No changes in ChangeLog.txt\r\n"] -[368.204271, "o", " alien No changes in ChangeLog.txt\r\n\r\nSummary\r\n===============================================================================\r\n\u001b[38;5;247mFrom 3 repositories need 0 updating. All repositories are updated.\u001b[0m\r\n\r\n"] -[368.222592, "o", "\u001b[?2004h"] -[368.329682, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[368.329728, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[369.9323, "o", "slpkg -c\u001b[42C \r\u001b[79C\r\u001b[37C"] -[369.93259, "o", "\b\b\b\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-c\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[370.69325, "o", "\u001b[38;5;39m \u001b[41C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C\u001b[41C \r\u001b[79C\r\u001b[38C"] -[370.694025, "o", "\b \u001b[41C \r\u001b[79C\r\u001b[38C"] -[371.406288, "o", "s\u001b[40C \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[371.406821, "o", "\b\u001b[38;5;39m\u001b[4ms\u001b[40C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[371.407135, "o", "\u001b[38;5;240mlack --upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[371.536282, "o", "\u001b[38;5;39m\u001b[4ml\u001b[38;5;240m\u001b[24mack --upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C\u001b[39C \r\u001b[79C\r\u001b[40C"] -[371.60519, "o", "\u001b[38;5;39m\u001b[4ma\u001b[38;5;240m\u001b[24mck --upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[371.605659, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[371.83197, "o", "\u001b[38;5;39m\u001b[4mc\u001b[38;5;240m\u001b[24mk --upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[371.832387, "o", "\u001b[37C \r\u001b[79C\r\u001b[42C"] -[371.922274, "o", "\u001b[38;5;39m\u001b[4mk\u001b[38;5;240m\u001b[24m --upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C"] -[371.922399, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C"] -[373.374019, "o", "\u001b[38;5;39m\u001b[4m \u001b[38;5;240m\u001b[24m--upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[373.374148, "o", "\u001b[35C \r\u001b[79C\r\u001b[44C"] -[373.374542, "o", "\b \u001b[38;5;240m--upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C"] -[373.494396, "o", "-\u001b[38;5;240m-upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[373.49452, "o", "\u001b[34C \r\u001b[79C\r\u001b[45C"] -[373.494964, "o", "\b\b\b\b\b\b\b\u001b[38;5;39mslack\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-\u001b[38;5;240m-upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[373.602903, "o", "\u001b[38;5;39m-\u001b[38;5;240mupgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C\u001b[33C \r\u001b[79C\r\u001b[46C"] -[373.922034, "o", "\u001b[38;5;39mu\u001b[38;5;240mpgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[373.922161, "o", "\u001b[32C \r\u001b[79C\r\u001b[47C"] -[374.159276, "o", "\u001b[38;5;39mp\u001b[38;5;240mgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C\u001b[31C \r\u001b[79C\r\u001b[48C"] -[375.199204, "o", "\u001b[38;5;39mg\u001b[38;5;240mrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[49C\u001b[30C \r\u001b[79C\r\u001b[49C"] -[375.407841, "o", "\u001b[38;5;39mr\u001b[38;5;240made\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[50C"] -[375.408131, "o", "\u001b[29C \r\u001b[79C\r\u001b[50C"] -[375.517467, "o", "\u001b[38;5;39ma\u001b[38;5;240mde\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[51C\u001b[28C \r\u001b[79C\r\u001b[51C"] -[375.696831, "o", "\u001b[38;5;39md\u001b[38;5;240me\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[52C\u001b[27C \r\u001b[79C\r\u001b[52C"] -[375.837153, "o", "\u001b[38;5;39me\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[53C\u001b[26C \r\u001b[79C\r\u001b[53C"] -[376.001191, "o", "\u001b[26C \r\u001b[79C\r\u001b[53C\r\n\u001b[30m\u001b(B\u001b[m"] -[376.001637, "o", "\u001b[?2004l"] -[376.001987, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[376.2775, "o", "\u001b[38;5;247mChecking...\u001b[0m "] -[376.784756, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n"] -[376.784875, "o", "\r\nSlackware64 'stable' v14.2 distribution is up to date!\r\n\r\n"] -[376.817731, "o", "\u001b[?2004h"] -[376.922903, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[379.021277, "o", "slpkg -c slack --upgrade\u001b[26C \r\u001b[79C\r\u001b[53C"] -[379.021942, "o", "\u001b[24D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m-c\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mslack\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--upgrade\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[53C"] -[379.247262, "o", "\u001b[26C \r\u001b[79C\r\u001b[52C"] -[379.746759, "o", "\u001b[27C \r\u001b[79C\r\u001b[51C"] -[379.797483, "o", "\u001b[28C \r\u001b[79C\r\u001b[50C"] -[379.848099, "o", "\u001b[29C \r\u001b[79C\r\u001b[49C"] -[379.898898, "o", "\u001b[30C \r\u001b[79C\r\u001b[48C"] -[379.949056, "o", "\u001b[31C \r\u001b[79C\r\u001b[47C"] -[380.000235, "o", "\u001b[32C \r\u001b[79C\r\u001b[46C"] -[380.05101, "o", "\u001b[33C \r\u001b[79C\r\u001b[45C"] -[380.101726, "o", "\u001b[34C \r\u001b[79C\r\u001b[44C"] -[380.808394, "o", "\u001b[35C \r\u001b[79C\r\u001b[43C"] -[381.101482, "o", "\b\u001b[38;5;39m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-upgrade\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[27C \r\u001b[79C\r\u001b[42C"] -[381.102112, "o", "\b\b\b\b\u001b[38;5;39m\u001b[4mslac\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--upgrade\u001b[27C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[381.242288, "o", "\b\u001b[38;5;39m\u001b[4m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-upgrade\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[28C \r\u001b[79C\r\u001b[41C"] -[381.242867, "o", " \u001b[38;5;39m--upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[381.375421, "o", "\b\u001b[38;5;39m\u001b[4m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-upgrade\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[29C \r\u001b[79C\r\u001b[40C"] -[381.376059, "o", " \u001b[38;5;39m--upgrade\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[381.499386, "o", "\b\u001b[38;5;39m\u001b[4m \u001b[30m\u001b(B\u001b[m-\u001b[38;5;39m-upgrade\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[30C \r\u001b[79C\r\u001b[39C"] -[381.500102, "o", " \u001b[38;5;39m--upgrade\u001b[30C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[382.138546, "o", "b\u001b[38;5;39m --upgrade\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[382.138976, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[382.139297, "o", "\b\b\u001b[38;5;39msb\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--upgrade\u001b[29C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[382.209554, "o", "o\u001b[38;5;39m --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[382.20973, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[382.210151, "o", "\b\u001b[38;5;39mo\u001b[30m\u001b(B\u001b[m \u001b[38;5;39m--upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[382.214573, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[382.497708, "o", "\u001b[38C \r\u001b[79C\r\u001b[51C\r\n\u001b[30m\u001b(B"] -[382.498202, "o", "\u001b[m\u001b[?2004l"] -[382.498583, "o", "\u001b]0;slpkg /home/dslackw\u0007"] -[382.498911, "o", "\u001b[30m\u001b(B\u001b[m\r"] -[382.800401, "o", "\u001b[38;5;247mChecking...\u001b[0m "] -[386.989769, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n"] -[386.99006, "o", "\u001b[38;5;247mReading package lists...\u001b[0m "] -[391.113694, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n\u001b[38;5;247mResolving dependencies...\u001b[0m "] -[392.140103, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n\r\nThe following packages will be automatically installed or upgraded \r\nwith new version:\r\n\r\n+==============================================================================\r\n| Package New version Arch Build Repos Size\r\n+==============================================================================\r\nUpgrading:\r\n"] -[392.159233, "o", " \u001b[33mcolored-1.4.0\u001b[0m 1.4.1 x86_64 SBo\r\n"] -[392.17875, "o", " \u001b[33myoutube-dl-2019.09.28\u001b[0m 2019.11.22 x86_64 SBo\r\n"] -[392.198204, "o", " \u001b[33mscreenfetch-3.8.0\u001b[0m 3.9.0 x86_64 SBo\r\n"] -[392.216902, "o", " \u001b[33mpelican-4.0.1\u001b[0m 4.2.0 x86_64 SBo\r\n"] -[392.235321, "o", " \u001b[33mpostgresql-10.2\u001b[0m 10.10 x86_64 SBo\r\n"] -[392.253568, "o", " \u001b[33mx265-2.9\u001b[0m 3.2.1 x86_64 SBo\r\n"] -[392.272088, "o", " \u001b[33mpython-scandir-1.8\u001b[0m 1.10.0 x86_64 SBo\r\n"] -[392.290239, "o", " \u001b[33mflashplayer-plugin-32.0.0.192\u001b[0m 32.0.0.293 x86_64 SBo\r\n"] -[392.308474, "o", " \u001b[33mgoogler-3.8\u001b[0m 3.9 x86_64 SBo\r\n"] -[392.330931, "o", " \u001b[33mlibwebp-1.0.1\u001b[0m 1.0.3 x86_64 SBo\r\n"] -[392.353737, "o", " \u001b[33mvscode-bin-1.40.1\u001b[0m 1.40.2 x86_64 SBo\r\n"] -[392.381034, "o", " \u001b[33mjdk-8u202\u001b[0m 8u231 x86_64 SBo\r\n"] -[392.400646, "o", " \u001b[33mZafiro-icons-0.7.7\u001b[0m 1.0 x86_64 SBo\r\nInstalling for dependencies:\r\n"] -[392.420145, "o", " \u001b[32msetuptools-scm-3.3.3\u001b[0m 3.3.3 x86_64 SBo\r\n"] -[392.439461, "o", " \u001b[32msix-1.12.0\u001b[0m 1.12.0 x86_64 SBo\r\n"] -[392.460807, "o", " \u001b[32mpython3\u001b[0m 3.7.2 x86_64 SBo\r\n"] -[392.482079, "o", " \u001b[32mMarkupSafe-1.1.1\u001b[0m 1.1.1 x86_64 SBo\r\n"] -[392.502394, "o", " \u001b[32mfeedgenerator-1.9\u001b[0m 1.9 x86_64 SBo\r\n"] -[392.521964, "o", " \u001b[32mJinja2-2.10.3\u001b[0m 2.10.3 x86_64 SBo\r\n"] -[392.541317, "o", " \u001b[32mUnidecode-0.04.21\u001b[0m 0.04.21 x86_64 SBo\r\n"] -[392.560519, "o", " \u001b[32mblinker-1.4\u001b[0m 1.4 x86_64 SBo\r\n"] -[392.578907, "o", " \u001b[32mpytz-2018.3\u001b[0m 2018.3 x86_64 SBo\r\n"] -[392.597285, "o", " \u001b[32mdocutils-0.14\u001b[0m 0.14 x86_64 SBo\r\n"] -[392.617683, "o", " \u001b[32mPygments-2.4.2\u001b[0m 2.4.2 x86_64 SBo\r\n"] -[392.637332, "o", " \u001b[33mpython-dateutil-2.7.5\u001b[0m 2.8.0 x86_64 SBo\r\n"] -[392.657274, "o", " \u001b[33mMarkdown-2.6.6\u001b[0m 2.6.11 x86_64 SBo\r\n\r\nInstalling summary\r\n===============================================================================\r\n\u001b[38;5;247mTotal 26 packages.\r\n0 package will be installed, 11 already installed and 15 packages\r\nwill be upgraded.\u001b[0m\r\n\r\n"] -[392.657352, "o", "Would you like to continue [y/N]? "] -[398.736375, "o", "\r\n"] -[398.773997, "o", "\u001b[?2004h"] -[398.879247, "o", "\u001b]0;fish"] -[398.879502, "o", " /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[402.28774, "o", "\u001b[H\u001b[2J"] -[402.408352, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[402.4084, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[402.640052, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[402.640172, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[402.640626, "o", "\u001b[38;5;240mlpkg -c sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[402.682953, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -c sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[402.683047, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[402.752657, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -c sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[402.91332, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -c sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[403.016333, "o", "\u001b[38;5;196mg\u001b[38;5;240m -c sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[403.016457, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C"] -[403.016909, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -c sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[403.928561, "o", "\u001b[38;5;26m \u001b[38;5;240m-c sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[403.929012, "o", "\b \u001b[38;5;240m-c sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[403.985179, "o", "-\u001b[38;5;240mc sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C\u001b[43C \r\u001b[79C\r\u001b[36C"] -[403.985828, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mc sbo --upgrade\u001b[28C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[404.206383, "o", "\u001b[38;5;39mt\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[404.206809, "o", "\u001b[38;5;240m sbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[405.570562, "o", "\u001b[38;5;39m \u001b[38;5;240msbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[405.570954, "o", "\u001b[41C \r\u001b[79C\r\u001b[38C"] -[405.571319, "o", "\b \u001b[38;5;240msbo Flask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[405.739202, "o", "sbo Flask\u001b[32C \r\u001b[79C\r\u001b[47C"] -[405.739932, "o", "\u001b[9D\u001b[38;5;39msbo\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mFlask\u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C"] -[406.349461, "o", "\u001b[38;5;39m \u001b[31C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C\u001b[31C \r\u001b[79C\r\u001b[48C"] -[406.349731, "o", "\u001b[38;5;240m--graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C\b \u001b[38;5;240m--graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C"] -[406.474997, "o", "-\u001b[38;5;240m-graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[49C"] -[406.475221, "o", "\u001b[30C \r\u001b[79C\r\u001b[49C"] -[406.475336, "o", "\b\u001b[38;5;39m-\u001b[38;5;240m-graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[49C"] -[406.583714, "o", "\u001b[38;5;39m-\u001b[38;5;240mgraph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[50C"] -[406.58384, "o", "\u001b[29C \r\u001b[79C\r\u001b[50C"] -[407.988368, "o", "\u001b[38;5;39mg\u001b[38;5;240mraph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[51C"] -[407.988812, "o", "\u001b[28C \r\u001b[79C\r\u001b[51C"] -[408.164432, "o", "\u001b[38;5;39mr\u001b[38;5;240maph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[52C"] -[408.164558, "o", "\u001b[27C \r\u001b[79C\r\u001b[52C"] -[408.250334, "o", "\u001b[38;5;39ma\u001b[38;5;240mph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[53C"] -[408.250682, "o", "\u001b[26C \r\u001b[79C\r\u001b[53C"] -[408.615654, "o", "\u001b[38;5;39mp\u001b[38;5;240mh=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[54C\u001b[25C \r\u001b[79C\r\u001b[54C"] -[408.857215, "o", "\u001b[38;5;39mh\u001b[38;5;240m=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[55C"] -[408.857528, "o", "\u001b[24C \r\u001b[79C\r\u001b[55C"] -[410.21602, "o", "\u001b[38;5;39m=\u001b[38;5;240mascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[56C"] -[410.21643, "o", "\u001b[23C \r\u001b[79C\r\u001b[56C"] -[410.416087, "o", "\u001b[38;5;39ma\u001b[38;5;240mscii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[57C"] -[410.416482, "o", "\u001b[22C \r\u001b[79C\r\u001b[57C"] -[410.634968, "o", "\u001b[38;5;39ms\u001b[38;5;240mcii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[58C"] -[410.635404, "o", "\u001b[21C \r\u001b[79C\r\u001b[58C"] -[411.051863, "o", "\u001b[38;5;39mc\u001b[38;5;240mii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[59C\u001b[20C \r\u001b[79C\r\u001b[59C"] -[411.665302, "o", "\u001b[38;5;39mi\u001b[38;5;240mi\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[60C"] -[411.665439, "o", "\u001b[19C \r\u001b[79C\r\u001b[60C"] -[411.776238, "o", "\u001b[38;5;39mi\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[61C"] -[411.776365, "o", "\u001b[18C \r\u001b[79C\r\u001b[61C"] -[412.148786, "o", "\u001b[18C \r\u001b[79C\r\u001b[61C\r\n\u001b[30m\u001b(B\u001b[m"] -[412.148845, "o", "\u001b[?2004l"] -[412.14903, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[412.41508, "o", "\u001b[38;5;247mResolving dependencies...\u001b[0m "] -[413.554136, "o", "\b\u001b[38;5;247mDone\u001b[0m\r\n\r\n+=============================\r\n| Package \u001b[36mFlask\u001b[0m dependencies :\r\n+=============================\r\n\\\r\n +---\u001b[33m[ Tree of dependencies ]\u001b[0m\r\n"] -[413.560606, "o", " |\r\n +--1: \u001b[32mpython3\u001b[0m \r\n"] -[413.56698, "o", " |\r\n +--2: \u001b[32mMarkupSafe\u001b[0m \r\n"] -[413.573329, "o", " |\r\n +--3: \u001b[32mwerkzeug\u001b[0m \r\n"] -[413.579931, "o", " |\r\n +--4: \u001b[32mJinja2\u001b[0m \r\n"] -[413.586504, "o", " |\r\n +--5: \u001b[32mitsdangerous\u001b[0m \r\n"] -[413.593215, "o", " |\r\n +--6: \u001b[32mclick\u001b[0m \r\n\r\n"] -[413.682911, "o", " +--------------+ +----------+\r\n | itsdangerous | | werkzeug |\r\n +--------------+ +----------+\r\n | |\r\n | |\r\n | |\r\n +-------------------------------+ +-------+\r\n +- | Flask | --- | click |\r\n | +-------------------------------+ +-------+\r\n | | |\r\n | | |\r\n | | |\r\n | +--------------+ |\r\n | | Jinja2 | -+----+\r\n | +--------------+ | |\r\n | | | |\r\n | | | |\r\n | | | |\r\n | +--------------+ | |\r\n | | MarkupSafe | -+ |\r\n | +--------------+ |\r\n | | |\r\n | | |\r\n | | |\r\n | +--------------+ |\r\n +- | python3 | ------+\r\n +--------------+\r\n"] -[413.70255, "o", "\u001b[?2004h"] -[413.801352, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[413.801509, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[423.239723, "o", "\u001b[H\u001b[2J"] -[423.378567, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[424.512001, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[424.512415, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[424.512553, "o", "\u001b[38;5;240mlpkg -t sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[424.589337, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -t sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[424.589458, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[424.642309, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -t sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[424.823484, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -t sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[424.823649, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[424.966991, "o", "\u001b[38;5;196mg\u001b[38;5;240m -t sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[424.967102, "o", "\u001b[45C \r\u001b[79C\r\u001b[34C"] -[424.967433, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -t sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[427.045651, "o", "\u001b[K\u001b[45C \r\u001b[79C\r\u001b[34C\r\n"] -[427.046224, "o", "\u001b[30m\u001b(B\u001b[m\u001b[?2004l\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[427.345172, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[427.345218, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[427.358656, "o", "\u001b[?2004h"] -[427.457914, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[437.123007, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C"] -[437.123159, "o", "\u001b[49C \r\u001b[79C\r\u001b[30C\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[437.225095, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[437.225326, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[437.26149, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[437.435145, "o", "\u001b[38;5;196mk\u001b[38;5;240mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[437.435271, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[437.538395, "o", "\u001b[38;5;196mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[437.538738, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[437.822444, "o", "\u001b[38;5;26m \u001b[44C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[437.822868, "o", "\b \u001b[44C \r\u001b[79C\r\u001b[35C\u001b[38;5;240m-t sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[437.984794, "o", "u\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C\u001b[43C \r\u001b[79C\r\u001b[36C"] -[437.98494, "o", "\u001b[38;5;240mpdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C\b\u001b[38;5;39mu\u001b[38;5;240mpdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[438.197656, "o", "\u001b[38;5;39mp\u001b[38;5;240mdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[438.323255, "o", "\u001b[38;5;39md\u001b[38;5;240mate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[438.323624, "o", "\u001b[41C \r\u001b[79C\r\u001b[38C"] -[438.505105, "o", "\u001b[38;5;39ma\u001b[38;5;240mte\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[438.614224, "o", "\u001b[38;5;39mt\u001b[38;5;240me\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C\u001b[39C \r\u001b[79C\r\u001b[40C"] -[438.727816, "o", "\u001b[38;5;39me\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[438.728237, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[439.002511, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C\r\n\u001b[30m\u001b(B\u001b[m"] -[439.00295, "o", "\u001b[?2004l"] -[439.003444, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[3"] -[439.003802, "o", "0m\u001b(B\u001b[m\r"] -[439.312025, "o", "\r\nCheck and update repositories:\r\n\r\n"] -[439.312185, "o", "\u001b[38;5;247mCheck repository [\u001b[36mslack\u001b[38;5;247m] ... \u001b[0m"] -[439.652759, "o", "\u001b[38;5;247mDone\u001b[0m\r\n"] -[439.653112, "o", "\u001b[38;5;247mCheck repository [\u001b[36msbo\u001b[38;5;247m] ... \u001b[0m"] -[440.558962, "o", "\u001b[38;5;247mDone\u001b[0m\r\n"] -[440.559485, "o", "\u001b[38;5;247mCheck repository [\u001b[36malien\u001b[38;5;247m] ... \u001b[0m"] -[441.10315, "o", "\u001b[38;5;247mDone\u001b[0m\r\n\r\n"] -[441.121516, "o", "\u001b[?2004h"] -[441.249003, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[441.24917, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[444.134025, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[444.134391, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[444.235462, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[444.294393, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[444.486591, "o", "\u001b[38;5;196mk\u001b[38;5;240mg update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[444.486759, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[444.608853, "o", "\u001b[38;5;196mg\u001b[38;5;240m update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[444.609068, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m update\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[452.432785, "o", "\u001b[38;5;26m \u001b[38;5;240mupdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[452.433132, "o", "\b \u001b[38;5;240mupdate\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[452.543008, "o", "-\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C"] -[452.54313, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[452.54364, "o", "\u001b[38;5;240mt sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[452.543966, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mt sbo Flask --graph=ascii\u001b[18C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[452.946398, "o", "\u001b[38;5;39mh\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[42C \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[452.948241, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[453.384037, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C\r\n\u001b[30m\u001b(B\u001b[m"] -[453.384106, "o", "\u001b[?2004l"] -[453.384309, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[453.667923, "o", "\r\nslpkg - version 3.7.1 | Slackware release: stable - 14.2\r\n\r\nSlpkg is a user-friendly package manager for Slackware installations\r\n\r\nUsage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n _ _\r\n ___| |_ __ | | ____ _\r\n / __| | '_ \\| |/ / _` |\r\n \\__ \\ | |_) | < (_| |\r\n |___/_| .__/|_|\\_\\__, |\r\n |_| |___/\r\n _Slackware package manager_______\r\n\r\nCommands:\r\n update, --repositories=[...] Run this command to update all\r\n the packages lists.\r\n\r\n upgrade, --repositories=[...] Delete and recreate all packages\r\n lists.\r\n\r\n repo-add [repository name] [URL] "] -[453.668114, "o", " Add custom repository.\r\n\r\n repo-remove [repository] Remove custom repository.\r\n\r\n repo-enable Enable or disable default\r\n repositories via dialog utility.\r\n\r\n repo-list Print a list of all the\r\n repositories.\r\n\r\n repo-info [repository] Get information about a\r\n repository.\r\n\r\n update slpkg Upgrade the program directly from\r\n repository.\r\n\r\n health, --silent Health check installed packages.\r\n\r\n deps-status, --tree, --graph=[type] Print dependencies status used by\r\n packages or drawing dependencies\r\n diagram.\r\n\r\n new-config Manage .new configuration "] -[453.668222, "o", "files.\r\n\r\n clean-tmp Clean the tmp/ directory from\r\n downloaded packages and sources.\r\nOptional arguments:\r\n -h | --help Print this help message and exit.\r\n\r\n -v | --version Print program version and exit.\r\n\r\n -a | --autobuild, [script] [source...] Auto build SBo packages.\r\n If you have already downloaded the\r\n script and the source code you can\r\n build a new package with this\r\n command.\r\n\r\n -b | --blacklist, [package...] --add, Manage packages in the blacklist.\r\n --remove, list Add or remove packages and print\r\n the list. Each package is added\r\n here will not be accessible "] -[453.668274, "o", "by the\r\n program.\r\n\r\n -q | --queue, [package...] --add, Manage SBo packages in the queue.\r\n --remove, list, build, install, Add or remove and print the list\r\n build-install of packages. Build and then\r\n install the packages from the\r\n queue.\r\n\r\n -g | --config, print, edit, reset Configuration file management.\r\n Print, edit the configuration file\r\n or reset in the default values.\r\n\r\n -l | --list, [repository], --index, Print a list of all available\r\n --installed, --name packages from repository, index or\r\n print only packages installed on\r\n the system.\r\n\r\n -c | --check, [repository], --upgrade, Check for update"] -[453.66829, "o", "d packages from\r\n --rebuild --skip=[...], the repositories and upgrade or\r\n --resolve-off, --checklist install with all dependencies.\r\n\r\n -s | --sync, [repository] [package...], Sync packages. Install packages\r\n --rebuild, --reinstall, directly from remote repositories\r\n --resolve-off, --download-only, with all dependencies.\r\n --directory-prefix=[dir],\r\n --case-ins, --patches\r\n\r\n -t | --tracking, [repository] [package], Tracking package dependencies and\r\n --check-deps, --graph=[type], print package dependencies tree\r\n --case-ins with highlight if packages is\r\n installed. Also check if\r\n dependencies used or drawing\r\n dependencies diagram.\r\n\r\n -p | --desc, [repository] [package], Print description of a package\r\n --color=[] "] -[453.668335, "o", " directly from the repository and\r\n change color text.\r\n\r\n -n | --network, [package], --checklist, View a standard of SBo page in\r\n --case-ins terminal and manage multiple\r\n options like reading, downloading,\r\n building, installation, etc.\r\n\r\n -F | --FIND, [package...], --case-ins Find packages from each enabled\r\n repository and view results.\r\n\r\n -f | --find, [package...], --case-ins, Find and print installed packages\r\n --third-party reporting the size and the sum.\r\n\r\n -i | --installpkg, [options] [package...] Installs single or multiple *.tgz\r\n options=[--warn, --md5sum, --root, (or .tbz, .tlz, .txz) Slackware\r\n --infobox, --menu, --terse, --ask, binary packages designed for use\r\n --priority, --tagfile] w"] -[453.668434, "o", "ith the Slackware Linux\r\n distribution onto your system.\r\n\r\n -u | --upgradepkg, [options] [package...] Upgrade single or multiple\r\n options=[--dry-run, --install-new, Slackware binary packages from\r\n --reinstall, --verbose] an older version to a newer one.\r\n\r\n -r | --removepkg, [options] [package...], Removes a previously installed\r\n --deps, --check-deps, --tag, Slackware binary packages,\r\n --checklist, --third-party while writing a progress report\r\n options=[-warn, -preserve, -copy, to the standard output.\r\n -keep] Use only package name.\r\n\r\n -d | --display, [package...] Display the contents of installed\r\n packages and file list.\r\n\r\nYou can read more about slpkg from manpage or see examples from readme file.\r\nIssues: https://gitlab.com/dslackw/slpkg/issues\r\nHomepage: https://dslackw.gitlab.io/slpkg"] -[453.668477, "o", "/\r\n\r\n"] -[453.681055, "o", "\u001b[?2004h"] -[453.778633, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[456.04088, "o", "\u001b[50C \r\u001b[79C\r\u001b[29C"] -[456.24237, "o", "[\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[456.242498, "o", "\b\u001b[38;5;26m[\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[456.262217, "o", "\u001b[38;5;240m \u001b[48C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[457.068894, "o", "\b\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[460.610212, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[460.610628, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg -h\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[460.705074, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -h\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[460.758236, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -h\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[460.915689, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -h\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[460.915808, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[461.008754, "o", "\u001b[38;5;196mg\u001b[38;5;240m -h\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[461.008797, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -h\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[461.319587, "o", "\u001b[38;5;26m \u001b[38;5;240m-h\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C\u001b[44C \r\u001b[79C\r\u001b[35C"] -[461.320038, "o", "\b \u001b[38;5;240m-h\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[461.539444, "o", "-\u001b[38;5;240mh\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[461.539542, "o", "\u001b[43C \r\u001b[79C\r\u001b[36C"] -[461.540146, "o", "\b\u001b[38;5;39m-\u001b[38;5;240mh\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[461.83011, "o", "\u001b[38;5;39md\u001b[42C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C\u001b[42C \r\u001b[79C\r\u001b[37C"] -[461.831215, "o", "\u001b[38;5;240m pysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[462.025712, "o", "\u001b[38;5;39m \u001b[38;5;240mpysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C\u001b[41C \r\u001b[79C\r\u001b[38C"] -[462.026294, "o", "\b \u001b[38;5;240mpysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[38C"] -[463.376651, "o", "p\u001b[38;5;240mysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[463.377243, "o", "\b\u001b[38;5;39mp\u001b[38;5;240mysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[463.629162, "o", "\u001b[38;5;39my\u001b[38;5;240msed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C\u001b[39C \r\u001b[79C\r\u001b[40C"] -[463.836875, "o", "\u001b[38;5;39ms\u001b[38;5;240med\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C\u001b[38C \r\u001b[79C\r\u001b[41C"] -[464.015037, "o", "\u001b[38;5;39me\u001b[38;5;240md\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C"] -[464.01545, "o", "\u001b[37C \r\u001b[79C\r\u001b[42C"] -[464.162898, "o", "\u001b[38;5;39md\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C\u001b[36C \r\u001b[79C\r\u001b[43C"] -[464.705292, "o", "\u001b[36C \r\u001b[79C\r\u001b[43C\r\n\u001b[30m\u001b(B\u001b[m"] -[464.705661, "o", "\u001b[?2004l"] -[464.706203, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30"] -[464.706533, "o", "m\u001b(B\u001b[m\r"] -[465.000124, "o", "PACKAGE NAME: pysed-0.7.8-x86_64-1_SBo\r\nCOMPRESSED PACKAGE SIZE: 32K\r\nUNCOMPRESSED PACKAGE SIZE: 110K\r\nPACKAGE LOCATION: /tmp/pysed-0.7.8-x86_64-1_SBo.tgz\r\nPACKAGE DESCRIPTION:\r\npysed: pysed (sed like utility)\r\npysed:\r\npysed: Pysed is a stream editor, is used to perform basic text\r\npysed: transformations from a file or from pipeline. It reads text,\r\npysed: line by line, from a file and replace, insert or print all\r\npysed: text or specific area.\r\npysed:\r\npysed: Homepage: https://github.com/dslackw/pysed\r\npysed:\r\npysed:\r\npysed:\r\nFILE LIST:\r\n./\r\ninstall/\r\ninstall/doinst.sh\r\ninstall/slack-desc\r\nusr/\r\nusr/bin/\r\nusr/bin/pysed\r\nusr/doc/\r\nusr/doc/pysed-0.7.8/\r\nusr/doc/pysed-0.7.8/CHANGELOG\r\nusr/doc/pysed-0.7.8/LICENSE\r\nusr/doc/pysed-0.7.8/README.rst\r\nusr/doc/pysed-0.7.8/pysed.SlackBuild\r\nusr/lib64/\r\nusr/lib64/python3.7/\r\nusr/lib64/python3.7/site-packages/\r\nusr/lib64/python3.7/site-packages/pysed-0.7.8-py3.7.egg-info/\r\nusr/lib64/python3.7/site-packages/pysed-0.7.8-py3.7.egg-info/PKG-INFO\r\nusr/lib64/python3"] -[465.000182, "o", ".7/site-packages/pysed-0.7.8-py3.7.egg-info/SOURCES.txt\r\nusr/lib64/python3.7/site-packages/pysed-0.7.8-py3.7.egg-info/dependency_links.txt\r\nusr/lib64/python3.7/site-packages/pysed-0.7.8-py3.7.egg-info/top_level.txt\r\nusr/lib64/python3.7/site-packages/pysed/\r\nusr/lib64/python3.7/site-packages/pysed/__init__.py\r\nusr/lib64/python3.7/site-packages/pysed/__metadata__.py\r\nusr/lib64/python3.7/site-packages/pysed/__pycache__/\r\nusr/lib64/python3.7/site-packages/pysed/__pycache__/__init__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/pysed/__pycache__/__metadata__.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/pysed/__pycache__/main.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/pysed/__pycache__/options.cpython-37.pyc\r\nusr/lib64/python3.7/site-packages/pysed/main.py\r\nusr/lib64/python3.7/site-packages/pysed/options.py\r\nusr/man/\r\nusr/man/man1/\r\nusr/man/man1/pysed.1.gz\r\n\r\n"] -[465.013273, "o", "\u001b[?2004h"] -[465.114185, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[469.621444, "o", "\u001b[H\u001b[2J"] -[469.75428, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[469.754329, "o", "\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[470.009812, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C"] -[470.009959, "o", "\u001b[49C \r\u001b[79C\r\u001b[30C"] -[470.010036, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[470.010481, "o", "\u001b[38;5;240mlpkg -d pysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[470.120427, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg -d pysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C\u001b[48C \r\u001b[79C\r\u001b[31C"] -[470.191003, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg -d pysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[470.358654, "o", "\u001b[38;5;196mk\u001b[38;5;240mg -d pysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C\u001b[46C \r\u001b[79C\r\u001b[33C"] -[470.415181, "o", "\u001b[38;5;196mg\u001b[38;5;240m -d pysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[470.415543, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[38;5;240m -d pysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[470.634635, "o", "\u001b[K\u001b[45C \r\u001b[79C\r\u001b[34C\r\n\u001b[30m\u001b(B\u001b[m"] -[470.634988, "o", "\u001b[?2004l"] -[470.6353, "o", "\u001b]0;slpkg /home/ds"] -[470.635383, "o", "lackw\u0007\u001b[30m\u001b(B\u001b["] -[470.635653, "o", "m\r"] -[470.918332, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[470.918537, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[470.931568, "o", "\u001b[?2004h"] -[471.031187, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[476.889541, "o", "s\u001b[49C \r\u001b[79C\r\u001b[30C\u001b[49C \r\u001b[79C\r\u001b[30C"] -[476.889991, "o", "\b\u001b[38;5;196ms\u001b[49C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C\u001b[38;5;240mlpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[30C"] -[476.972151, "o", "\u001b[38;5;196ml\u001b[38;5;240mpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[31C"] -[476.97232, "o", "\u001b[48C \r\u001b[79C\r\u001b[31C"] -[477.014715, "o", "\u001b[38;5;196mp\u001b[38;5;240mkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[32C\u001b[47C \r\u001b[79C\r\u001b[32C"] -[477.186661, "o", "\u001b[38;5;196mk\u001b[38;5;240mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[33C"] -[477.186762, "o", "\u001b[46C \r\u001b[79C\r\u001b[33C"] -[477.266571, "o", "\u001b[38;5;196mg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C\u001b[45C \r\u001b[79C\r\u001b[34C"] -[477.266715, "o", "\b\b\b\b\b\u001b[38;5;26mslpkg\u001b[45C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[34C"] -[477.780589, "o", "\u001b[38;5;26m \u001b[44C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[477.781041, "o", "\u001b[44C \r\u001b[79C\r\u001b[35C\b \u001b[44C \r\u001b[79C\r\u001b[35C\u001b[38;5;240m-d pysed\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[35C"] -[478.087493, "o", "d\u001b[K\u001b[43C \r\u001b[79C\r\u001b[36C\u001b[43C \r\u001b[79C\r\u001b[36C"] -[478.087972, "o", "\b\u001b[38;5;39md\u001b[43C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[478.094554, "o", "\b\u001b[38;5;39mD\u001b[38;5;240mesktop/\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[36C"] -[478.168598, "o", "\u001b[38;5;39me\u001b[38;5;240msktop/\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[37C"] -[478.168683, "o", "\u001b[42C \r\u001b[79C\r\u001b[37C"] -[478.341082, "o", "\b\b\u001b[38;5;39mdep\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[41C \r\u001b[79C\r\u001b[38C"] -[478.341409, "o", "\u001b[41C \r\u001b[79C\r\u001b[38C"] -[480.280035, "o", "\u001b[38;5;39m-\u001b[40C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C"] -[480.280168, "o", "\u001b[40C \r\u001b[79C\r\u001b[39C"] -[480.493962, "o", "\u001b[38;5;39ms\u001b[39C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[40C"] -[480.494292, "o", "\u001b[39C \r\u001b[79C\r\u001b[40C"] -[480.622755, "o", "\u001b[38;5;39mt\u001b[38C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[41C"] -[480.623216, "o", "\u001b[38C \r\u001b[79C\r\u001b[41C"] -[480.736008, "o", "\u001b[38;5;39ma\u001b[37C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[42C\u001b[37C \r\u001b[79C\r\u001b[42C"] -[480.871264, "o", "\u001b[38;5;39mt\u001b[36C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[43C\u001b[36C \r\u001b[79C\r\u001b[43C"] -[481.157357, "o", "\u001b[38;5;39mu\u001b[35C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[44C\u001b[35C \r\u001b[79C\r\u001b[44C"] -[481.263563, "o", "\u001b[38;5;39ms\u001b[34C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[481.26393, "o", "\u001b[34C \r\u001b[79C\r\u001b[45C"] -[481.557816, "o", "\u001b[34C \r\u001b[79C\r\u001b[45C\r\n\u001b[30m\u001b(B\u001b[m"] -[481.558053, "o", "\u001b[?2004l"] -[481.558347, "o", "\u001b]0;slpkg /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[481.833539, "o", "Usage: slpkg [COMMANDS|OPTIONS] {repository|package...}\r\n\r\n Commands:\r\n [update, --repositories=[...]]\r\n [upgrade, --repositories=[...]]\r\n [repo-add [repository name] [URL]]\r\n [repo-remove [repository]]\r\n [repo-enable]\r\n [repo-list]\r\n [repo-info [repository]]\r\n [update [slpkg]]\r\n [health, --silent]\r\n [deps-status, --tree, --graph=[type]]\r\n [new-config]\r\n [clean-tmp]\r\n\r\n Optional arguments:\r\n [-h] [-v]\r\n [-a [script] [sources...]]\r\n [-b [package...] --add, --remove,\r\n [list]]\r\n [-q [package...] --add, --remove,\r\n [list, build, install, build-install]]\r\n [-g [print, edit, reset]]\r\n [-l [repository], --index, --installed, --name]\r\n [-c [repository], --upgrade, --rebuild, --skip=[...],\r\n --resolve-off, --"] -[481.833593, "o", "checklist]\r\n [-s [repository] [package...], --rebuild, --reinstall,\r\n --resolve-off, --download-only,\r\n --directory-prefix=[dir],\r\n --case-ins, --patches]\r\n [-t [repository] [package], --check-deps, --graph=[type],\r\n --case-ins]\r\n [-p [repository] [package], --color=[]]\r\n [-n [SBo package], --checklist, --case-ins]\r\n [-F [package...], --case-ins]\r\n [-f [package...], --case-ins, --third-party]\r\n [-i [options] [package...]]\r\n [-u [options] [package...]]\r\n [-r [options] [package...], --deps, --check-deps, --tag,\r\n --checklist, --third-party]\r\n [-d [package...]]\r\n \r\nFor more information try 'slpkg -h, --help' or view manpage\r\n\r\n"] -[481.84651, "o", "\u001b[?2004h"] -[481.947569, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[486.366729, "o", "slpkg dep-status\u001b[34C \r\u001b[79C\r\u001b[45C"] -[486.36728, "o", "\u001b[16D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mdep-status\u001b[34C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[45C"] -[486.512426, "o", "\u001b[34C \r\u001b[79C\r\u001b[44C"] -[487.01176, "o", "\u001b[35C \r\u001b[79C\r\u001b[43C"] -[487.061568, "o", "\u001b[36C \r\u001b[79C\r\u001b[42C"] -[487.112006, "o", "\u001b[37C \r\u001b[79C\r\u001b[41C"] -[487.162524, "o", "\u001b[38C \r\u001b[79C\r\u001b[40C"] -[487.400915, "o", "\u001b[39C \r\u001b[79C\r\u001b[39C"] -[487.560713, "o", "\u001b[40C \r\u001b[79C\r\u001b[38C"] -[487.659519, "o", "\u001b[38;5;39ms-status\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[39C\u001b[40C \r\u001b[79C\r\u001b[39C"] -[487.857686, "o", "\u001b[40C \r\u001b[79C\r\u001b[46C\r\n\u001b[30m\u001b(B\u001b[m"] -[487.858033, "o", "\u001b[?2004l"] -[487.858539, "o", "\u001b]0;slpkg /home"] -[487.858683, "o", "/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[489.592911, "o", "\r\n+==============================================================================\r\n| Dependencies Packages\r\n+==============================================================================\r\n \u001b[32mJinja2\u001b[0m pelican, python3-Flask\r\n \u001b[32mMarkdown\u001b[0m pelican\r\n \u001b[32mMarkupSafe\u001b[0m Jinja2, pelican, python3-Flask\r\n \u001b[32mOpenAL\u001b[0m freeorion, wine\r\n \u001b[32mPyYAML\u001b[0m kaptan\r\n \u001b[32mPygments\u001b[0m Kivy, bpython, pelican, ptpython\r\n \u001b[32mSDL2\u001b[0m Kivy, SDL2_image, SDL2_mixer, SDL2_ttf, freeorion\r\n \u001b[32mSDL2_image\u001b[0m Kivy\r\n \u001b[32mSDL2_mixer\u001b[0m Kivy\r\n \u001b[32mSDL2_ttf\u001b[0m Kivy\r\n \u001b[32mUnidecode\u001b[0m pelican\r\n \u001b[32masn1crypto\u001b[0m cryptography, python-keyring, secretstorage\r\n \u001b[32mblessings\u001b[0m bpython, c"] -[489.592952, "o", "urtsies\r\n \u001b[32mblinker\u001b[0m pelican\r\n \u001b[32mcabextract\u001b[0m winetricks\r\n \u001b[32mcffi\u001b[0m cryptography, python-keyring, secretstorage\r\n \u001b[32mclick\u001b[0m python3-Flask\r\n \u001b[32mcryptography\u001b[0m python-keyring, secretstorage\r\n \u001b[32mcurtsies\u001b[0m bpython\r\n \u001b[32mdocopt\u001b[0m ptpython\r\n \u001b[32mdocutils\u001b[0m Kivy, pelican\r\n \u001b[32mentrypoints\u001b[0m python-keyring\r\n \u001b[32menum34\u001b[0m cryptography, python-keyring, secretstorage\r\n \u001b[32mfeedgenerator\u001b[0m pelican\r\n \u001b[32mgreenlet\u001b[0m bpython\r\n \u001b[32midna\u001b[0m Kivy, bpython, cryptography, kivy-garden, python-keyring, python-requests, requests-toolbelt, secretstorage\r\n \u001b[32mipaddress\u001b[0m cryptography, python-keyring, secretstorage\r\n \u001b[32mjedi\u001b[0m "] -[489.592963, "o", " ptpython\r\n \u001b[32mkivy-garden\u001b[0m Kivy\r\n \u001b[32mlibinput\u001b[0m qt5, vlc\r\n \u001b[32mlibwacom\u001b[0m libinput, qt5, vlc\r\n \u001b[32mlibxkbcommon\u001b[0m qt5, vlc\r\n \u001b[32mman-db\u001b[0m fish\r\n \u001b[32mmore-itertools\u001b[0m python-zipp\r\n \u001b[32mpackaging\u001b[0m cryptography, python-keyring, secretstorage\r\n \u001b[32mparso\u001b[0m jedi, ptpython\r\n"] -[489.592972, "o", " \u001b[32mpostgresql\u001b[0m pgadmin3, psycopg2\r\n \u001b[32mprompt_toolkit\u001b[0m ptpython\r\n"] -[489.593091, "o", " \u001b[32mpy3cairo\u001b[0m pygobject3-python3\r\n \u001b[32mpyasn1\u001b[0m cryptography, python-keyring, secretstorage\r\n"] -[489.593117, "o", " \u001b[32mpycparser\u001b[0m cffi, cryptography, python-keyring, secretstorage\r\n \u001b[32mpyparsing\u001b[0m cryptography, packaging, python-keyring, secretstorage\r\n \u001b[32mpython-certifi\u001b[0m Kivy, bpython, kivy-garden, python-requests, requests-toolbelt\r\n \u001b[32mpython-chardet\u001b[0m Kivy, bpython, kivy-garden, python-requests, requests-toolbelt\r\n \u001b[32mpython-dateutil\u001b[0m pelican\r\n \u001b[32mpython-notify2\u001b[0m sun\r\n \u001b[32mpython-requests\u001b[0m Kivy, bpython, kivy-garden, requests-toolbelt\r\n \u001b[32mpython-urllib3\u001b[0m Kivy, bpython, kivy-garden, python-requests, requests-toolbelt\r\n \u001b[32mpython-webencodings\u001b[0m bleach\r\n \u001b[32mpython3-itsdangerous\u001b[0m python3-Flask\r\n \u001b[32mpython3-six\u001b[0m bleach\r\n \u001b[32mpytz\u001b[0m pelican, python3-django\r\n \u001b[32mqt5\u001b[0m vlc\r\n \u001b[32mqt5-webkit\u001b[0m v"] -[489.593131, "o", "lc\r\n \u001b[32msecretstorage\u001b[0m python-keyring\r\n \u001b[32msetuptools-scm\u001b[0m pelican, python-dateutil, python-keyring\r\n \u001b[32msix\u001b[0m bleach, blessings, bpython, cryptography, curtsies, more-itertools, packaging, pelican, prompt_toolkit, ptpython, python-dateutil, python-keyring, python-zipp, secretstorage\r\n \u001b[32msqlparse\u001b[0m python3-django\r\n \u001b[32mwcwidth\u001b[0m bpython, curtsies, prompt_toolkit, ptpython\r\n \u001b[32mwerkzeug\u001b[0m python3-Flask\r\n \u001b[32mwine\u001b[0m winetricks\r\n \u001b[32mwxPython\u001b[0m codeblocks, pgadmin3, winusb\r\n\r\nStatus summary\r\n===============================================================================\r\n\u001b[38;5;247mfound 62 dependencies in 40 packages.\u001b[0m\r\n\r\n"] -[489.606562, "o", "\u001b[?2004h"] -[489.704225, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m"] -[489.704292, "o", "\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[491.420204, "o", "slpkg deps-status\u001b[33C \r\u001b[79C\r\u001b[46C"] -[491.421022, "o", "\u001b[17D\u001b[38;5;26mslpkg\u001b[30m\u001b(B\u001b[m \u001b[38;5;39mdeps-status\u001b[33C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[46C"] -[492.086241, "o", "\u001b[38;5;39m \u001b[32C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[47C\u001b[32C \r\u001b[79C\r\u001b[47C"] -[492.087148, "o", "\b \u001b[32C \r\u001b[79C\r\u001b[47C"] -[492.198153, "o", "-\u001b[31C \r\u001b[79C\r\u001b[48C"] -[492.198502, "o", "\u001b[31C \r\u001b[79C\r\u001b[48C\b\u001b[38;5;39m-\u001b[31C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C"] -[492.205726, "o", "\u001b[38;5;240m-autobuild \u001b[20C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[48C"] -[492.312653, "o", "\u001b[38;5;39m-\u001b[38;5;240mautobuild \u001b[20C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[49C"] -[492.312713, "o", "\u001b[30C \r\u001b[79C\r\u001b[49C"] -[492.641572, "o", "\u001b[38;5;39mt\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[29C \r\u001b[79C\r\u001b[50C\u001b[29C \r\u001b[79C\r\u001b[50C"] -[492.656387, "o", "\u001b[38;5;240mracking \u001b[21C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[50C"] -[492.863327, "o", "\u001b[38;5;39mr\u001b[38;5;240macking \u001b[21C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[51C"] -[492.86345, "o", "\u001b[28C \r\u001b[79C\r\u001b[51C"] -[493.375407, "o", "\u001b[38;5;39me\u001b[30m\u001b(B\u001b[m\u001b[K\u001b[27C \r\u001b[79C\r\u001b[52C\u001b[27C \r\u001b[79C\r\u001b[52C"] -[493.5044, "o", "\u001b[38;5;39me\u001b[26C\u001b[30m\u001b(B\u001b[m \r\u001b[79C\r\u001b[53C"] -[493.504723, "o", "\u001b[26C \r\u001b[79C\r\u001b[53C"] -[493.640456, "o", "\u001b[26C \r\u001b[79C\r\u001b[53C\r\n\u001b[30m\u001b(B\u001b[m"] -[493.640905, "o", "\u001b[?2004l"] -[493.641267, "o", "\u001b]0;slpkg /ho"] -[493.641387, "o", "me/dslackw\u0007\u001b[30m\u001b(B\u001b[m\r"] -[493.946032, "o", "+==============================================================================\r\n| Dependencies\r\n| -- Packages\r\n+==============================================================================\r\n"] -[495.300569, "o", "+ \u001b[32mJinja2\u001b[0m\r\n|\r\n+-- pelican\r\n|\r\n+-- python3-Flask\r\n|\r\n\u001b[1A \r\n+ \u001b[32mMarkdown\u001b[0m\r\n|\r\n+-- pelican\r\n|\r\n\u001b[1A \r\n+ \u001b[32mMarkupSafe\u001b[0m\r\n|\r\n+-- Jinja2\r\n"] -[495.300705, "o", "|\r\n+-- pelican\r\n|\r\n+-- python3-Flask\r\n|\r\n\u001b[1A \r\n+ \u001b[32mOpenAL\u001b[0m\r\n|\r\n+-- freeorion\r\n|\r\n+-- wine\r\n|\r\n\u001b[1A \r\n+ \u001b[32mPyYAML\u001b[0m\r\n|\r\n+-- kaptan\r\n|\r\n\u001b[1A \r\n+ \u001b[32mPygments\u001b[0m\r\n|\r\n+-- Kivy\r\n|\r\n+-- bpython\r\n|\r\n+-- pelican\r\n|\r\n+-- ptpython\r\n|\r\n\u001b[1A \r\n+ \u001b[32mSDL2\u001b[0m\r\n|\r\n+-- Kivy\r\n|\r\n+-- SDL2_image\r\n|\r\n+-- SDL2_mixer\r\n|\r\n+-- SDL2_ttf\r\n|\r\n+-- freeorion\r\n|\r\n"] -[495.300772, "o", "\u001b[1A \r\n+ \u001b[32mSDL2_image\u001b[0m\r\n|\r\n+-- Kivy\r\n|\r\n\u001b[1A \r\n+ \u001b[32mSDL2_mixer\u001b[0m\r\n|\r\n+-- Kivy\r\n|\r\n\u001b[1A \r\n+ \u001b[32mSDL2_ttf\u001b[0m\r\n|\r\n+-- Kivy\r\n|\r\n\u001b[1A \r\n"] -[495.300797, "o", "+ \u001b[32mUnidecode\u001b[0m\r\n|\r\n+-- pelican\r\n|\r\n\u001b[1A \r\n+ \u001b[32masn1crypto\u001b[0m\r\n"] -[495.300808, "o", "|\r\n+-- cryptography\r\n|\r\n"] -[495.300826, "o", "+-- python-keyring\r\n|\r\n"] -[495.300927, "o", "+-- secretstorage\r\n|\r\n\u001b[1A \r\n+ \u001b[32mblessings\u001b[0m\r\n|\r\n+-- bpython\r\n|\r\n+-- curtsies\r\n|\r\n\u001b[1A \r\n+ \u001b[32mblinker\u001b[0m\r\n|\r\n+-- pelican\r\n|\r\n\u001b[1A \r\n+ \u001b[32mcabextract\u001b[0m\r\n|\r\n+-- winetricks\r\n|\r\n\u001b[1A \r\n+ \u001b[32mcffi\u001b[0m\r\n|\r\n+-- cryptography\r\n|\r\n+-- python-keyring\r\n|\r\n+-- secretstorage\r\n"] -[495.300976, "o", "|\r\n\u001b[1A \r\n+ \u001b[32mclick\u001b[0m\r\n|\r\n+-- python3-Flask\r\n|\r\n\u001b[1A \r\n+ \u001b[32mcryptography\u001b[0m\r\n|\r\n+-- python-keyring\r\n|\r\n"] -[495.301016, "o", "+-- secretstorage\r\n|\r\n\u001b[1A \r\n+ \u001b[32mcurtsies\u001b[0m\r\n|\r\n+-- bpython\r\n|\r\n\u001b[1A \r\n"] -[495.301054, "o", "+ \u001b[32mdocopt\u001b[0m\r\n|\r\n+-- ptpython\r\n|\r\n\u001b[1A \r\n+ \u001b[32mdocutils\u001b[0m\r\n|\r\n+-- Kivy\r\n"] -[495.301088, "o", "|\r\n+-- pelican\r\n|\r\n\u001b[1A \r\n+ \u001b[32mentrypoints\u001b[0m\r\n|\r\n+-- python-keyring\r\n|\r\n"] -[495.301123, "o", "\u001b[1A \r\n+ \u001b[32menum34\u001b[0m\r\n|\r\n+-- cryptography\r\n|\r\n+-- python-keyring\r\n|\r\n"] -[495.301163, "o", "+-- secretstorage\r\n|\r\n\u001b[1A \r\n+ \u001b[32mfeedgenerator\u001b[0m\r\n|\r\n+-- pelican\r\n|\r\n\u001b[1A \r\n"] -[495.301201, "o", "+ \u001b[32mgreenlet\u001b[0m\r\n|\r\n+-- bpython\r\n|\r\n\u001b[1A \r\n+ \u001b[32midna\u001b[0m\r\n|\r\n+-- Kivy\r\n|\r\n"] -[495.301234, "o", "+-- bpython\r\n|\r\n+-- cryptography\r\n|\r\n+-- kivy-garden\r\n|\r\n+-- python-keyring\r\n|\r\n"] -[495.301268, "o", "+-- python-requests\r\n|\r\n+-- requests-toolbelt\r\n|\r\n+-- secretstorage\r\n|\r\n\u001b[1A \r\n"] -[495.301303, "o", "+ \u001b[32mipaddress\u001b[0m\r\n|\r\n+-- cryptography\r\n|\r\n+-- python-keyring\r\n|\r\n+-- secretstorage\r\n|\r\n\u001b[1A \r\n"] -[495.301341, "o", "+ \u001b[32mjedi\u001b[0m\r\n|\r\n+-- ptpython\r\n|\r\n\u001b[1A \r\n+ \u001b[32mkivy-garden\u001b[0m\r\n|\r\n"] -[495.301379, "o", "+-- Kivy\r\n|\r\n\u001b[1A \r\n+ \u001b[32mlibinput\u001b[0m\r\n|\r\n+-- qt5\r\n|\r\n+-- vlc\r\n|\r\n"] -[495.301416, "o", "\u001b[1A \r\n+ \u001b[32mlibwacom\u001b[0m\r\n|\r\n+-- libinput\r\n|\r\n+-- qt5\r\n|\r\n+-- vlc\r\n"] -[495.301449, "o", "|\r\n\u001b[1A \r\n+ \u001b[32mlibxkbcommon\u001b[0m\r\n|\r\n+-- qt5\r\n|\r\n+-- vlc\r\n"] -[495.301481, "o", "|\r\n\u001b[1A \r\n+ \u001b[32mman-db\u001b[0m\r\n|\r\n+-- fish\r\n|\r\n\u001b[1A \r\n"] -[495.301516, "o", "+ \u001b[32mmore-itertools\u001b[0m\r\n|\r\n+-- python-zipp\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpackaging\u001b[0m\r\n|\r\n"] -[495.301554, "o", "+-- cryptography\r\n|\r\n+-- python-keyring\r\n|\r\n+-- secretstorage\r\n|\r\n\u001b[1A \r\n+ \u001b[32mparso\u001b[0m\r\n|\r\n"] -[495.30159, "o", "+-- jedi\r\n|\r\n+-- ptpython\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpostgresql\u001b[0m\r\n|\r\n"] -[495.301634, "o", "+-- pgadmin3\r\n|\r\n+-- psycopg2\r\n|\r\n\u001b[1A \r\n+ \u001b[32mprompt_toolkit\u001b[0m\r\n|\r\n+-- ptpython\r\n|\r\n"] -[495.301671, "o", "\u001b[1A \r\n+ \u001b[32mpy3cairo\u001b[0m\r\n|\r\n+-- pygobject3-python3\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpyasn1\u001b[0m\r\n|\r\n"] -[495.301708, "o", "+-- cryptography\r\n|\r\n+-- python-keyring\r\n|\r\n+-- secretstorage\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpycparser\u001b[0m\r\n"] -[495.301747, "o", "|\r\n+-- cffi\r\n|\r\n+-- cryptography\r\n|\r\n+-- python-keyring\r\n|\r\n+-- secretstorage\r\n|\r\n"] -[495.301785, "o", "\u001b[1A \r\n+ \u001b[32mpyparsing\u001b[0m\r\n|\r\n+-- cryptography\r\n|\r\n+-- packaging\r\n|\r\n+-- python-keyring\r\n|\r\n"] -[495.301824, "o", "+-- secretstorage\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpython-certifi\u001b[0m\r\n|\r\n+-- Kivy\r\n|\r\n+-- bpython\r\n|\r\n"] -[495.301863, "o", "+-- kivy-garden\r\n|\r\n+-- python-requests\r\n|\r\n+-- requests-toolbelt\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpython-chardet\u001b[0m\r\n|\r\n"] -[495.301901, "o", "+-- Kivy\r\n|\r\n+-- bpython\r\n|\r\n+-- kivy-garden\r\n|\r\n+-- python-requests\r\n|\r\n+-- requests-toolbelt\r\n"] -[495.301939, "o", "|\r\n\u001b[1A \r\n+ \u001b[32mpython-dateutil\u001b[0m\r\n|\r\n+-- pelican\r\n|\r\n\u001b[1A \r\n"] -[495.301977, "o", "+ \u001b[32mpython-notify2\u001b[0m\r\n|\r\n+-- sun\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpython-requests\u001b[0m\r\n|\r\n+-- Kivy\r\n|\r\n"] -[495.302017, "o", "+-- bpython\r\n|\r\n+-- kivy-garden\r\n|\r\n+-- requests-toolbelt\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpython-urllib3\u001b[0m\r\n|\r\n"] -[495.302054, "o", "+-- Kivy\r\n|\r\n+-- bpython\r\n|\r\n+-- kivy-garden\r\n|\r\n+-- python-requests\r\n|\r\n+-- requests-toolbelt\r\n"] -[495.302091, "o", "|\r\n\u001b[1A \r\n+ \u001b[32mpython-webencodings\u001b[0m\r\n|\r\n+-- bleach\r\n|\r\n\u001b[1A \r\n"] -[495.302132, "o", "+ \u001b[32mpython3-itsdangerous\u001b[0m\r\n|\r\n+-- python3-Flask\r\n|\r\n\u001b[1A \r\n+ \u001b[32mpython3-six\u001b[0m\r\n|\r\n+-- bleach\r\n|\r\n"] -[495.302168, "o", "\u001b[1A \r\n+ \u001b[32mpytz\u001b[0m\r\n|\r\n+-- pelican\r\n|\r\n+-- python3-django\r\n|\r\n\u001b[1A \r\n"] -[495.302205, "o", "+ \u001b[32mqt5\u001b[0m\r\n|\r\n+-- vlc\r\n|\r\n\u001b[1A \r\n+ \u001b[32mqt5-webkit\u001b[0m\r\n|\r\n"] -[495.302239, "o", "+-- vlc\r\n|\r\n\u001b[1A \r\n+ \u001b[32msecretstorage\u001b[0m\r\n|\r\n+-- python-keyring\r\n|\r\n\u001b[1A \r\n"] -[495.302277, "o", "+ \u001b[32msetuptools-scm\u001b[0m\r\n|\r\n+-- pelican\r\n|\r\n+-- python-dateutil\r\n|\r\n+-- python-keyring\r\n|\r\n"] -[495.302314, "o", "\u001b[1A \r\n+ \u001b[32msix\u001b[0m\r\n|\r\n+-- bleach\r\n|\r\n+-- blessings\r\n|\r\n+-- bpython\r\n"] -[495.302351, "o", "|\r\n+-- cryptography\r\n|\r\n+-- curtsies\r\n|\r\n+-- more-itertools\r\n|\r\n+-- packaging\r\n|\r\n+-- pelican\r\n"] -[495.302387, "o", "|\r\n+-- prompt_toolkit\r\n|\r\n+-- ptpython\r\n|\r\n+-- python-dateutil\r\n|\r\n+-- python-keyring\r\n|\r\n"] -[495.302418, "o", "+-- python-zipp\r\n|\r\n+-- secretstorage\r\n|\r\n\u001b[1A \r\n+ \u001b[32msqlparse\u001b[0m\r\n|\r\n"] -[495.302445, "o", "+-- python3-django\r\n|\r\n\u001b[1A \r\n+ \u001b[32mwcwidth\u001b[0m\r\n|\r\n"] -[495.302477, "o", "+-- bpython\r\n|\r\n+-- curtsies\r\n|\r\n+-- prompt_toolkit\r\n|\r\n+-- ptpython\r\n|\r\n"] -[495.302504, "o", "\u001b[1A \r\n+ \u001b[32mwerkzeug\u001b[0m\r\n|\r\n+-- python3-Flask\r\n|\r\n\u001b[1A \r\n"] -[495.302531, "o", "+ \u001b[32mwine\u001b[0m\r\n|\r\n+-- winetricks\r\n|\r\n\u001b[1A \r\n"] -[495.302562, "o", "+ \u001b[32mwxPython\u001b[0m\r\n|\r\n+-- codeblocks\r\n|\r\n+-- pgadmin3\r\n|\r\n+-- winusb\r\n"] -[495.302591, "o", "|\r\n\u001b[1A \r\n\r\nStatus summary\r\n===============================================================================\r\n"] -[495.302627, "o", "\u001b[38;5;247mfound 62 dependencies in 40 packages.\u001b[0m\r\n\r\n"] -[495.316175, "o", "\u001b[?2004h"] -[495.434084, "o", "\u001b]0;fish /home/dslackw\u0007\u001b[30m\u001b(B\u001b[m\u001b[1m\u001b[30m⏎\u001b(B\u001b[m \r⏎ \r\u001b[K\u001b[0;38;5;231;48;5;160;1m root \u001b[0;38;5;160;48;5;240;22m \u001b[0;38;5;250;48;5;240m/ \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;250;48;5;240mhome \u001b[0;38;5;245;48;5;240;22m \u001b[0;38;5;252;48;5;240;1mdslackw \u001b[0;38;5;240;49;22m \u001b[0m\u001b[K\u001b[50C \r\u001b[79C\r\u001b[29C"] -[502.576519, "o", "\r\n\u001b[30m\u001b(B\u001b[m\u001b[30m\u001b(B\u001b[m"] -[502.576918, "o", "\u001b[?2004l"] -[502.578091, "o", "bash-4.3# "] -[503.874351, "o", "exit\r\n"] From a2d6356dff36ea1cb395457356865e2f4002f6f1 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 13 Jun 2022 16:35:08 +0300 Subject: [PATCH 02/68] Removed unused flags --- ChangeLog.txt | 4 ++++ man/slpkg.8 | 13 ++----------- man/slpkg.html | 21 ++------------------- slpkg/arguments.py | 6 +----- slpkg/binary/install.py | 25 +++---------------------- slpkg/main.py | 3 --- slpkg/sbo/slack_find.py | 4 ---- slpkg/sbo/slackbuild.py | 39 ++++++--------------------------------- 8 files changed, 18 insertions(+), 97 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index eba3ef74..abadae38 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,7 @@ +4.0.3 - 13/06/2022 +Removed: +- Unused flags --resolve-off, --download-prefix, --download-only + 4.0.2 - 13/06/2022 Fixed: - database library path diff --git a/man/slpkg.8 b/man/slpkg.8 index be37a854..64f36cf8 100644 --- a/man/slpkg.8 +++ b/man/slpkg.8 @@ -169,8 +169,7 @@ Additional options: \fB--name\fP : Print package name only. .SS -c, --check, check if your packages is up to date -\fBslpkg\fP \fB-c\fP <\fIrepository\fP> \fB--upgrade\fP \fB--rebuild\fP \fB--skip=[packages...]\fP, -\fB--resolve-off\fP, \fB--checklist\fP +\fBslpkg\fP \fB-c\fP <\fIrepository\fP> \fB--upgrade\fP \fB--rebuild\fP \fB--skip=[packages...]\fP, \fB--checklist\fP .PP Check your packages if up to date. Slackware patches repository works independently of the others i.e not need before updating the list of packages by choosing "# slpkg update", works @@ -184,14 +183,12 @@ Additional options: .PP \fB--rebuild\fP : Rebuild packages from sbo repository. .PP -\fB--resolve-off\fP : Switch off automatic resolve dependencies. -.PP \fB--skip=[packages...]\fP : Skip packages from upgrade separate by comma like "# slpkg -c sbo --skip=jdk,pep8,pip" (See REGEX). .PP \fB--checklist\fP : Enable dialog utility and checklist option. (Require python3-pythondialog) .SS -s, --sync, synchronize packages, download, build and install package with all dependencies -\fBslpkg\fP \fB-s\fP <\fIrepository\fP> <\fInames of packages\fP>, \fB--resolve-off\fP, \fB--case-ins\fP, \fB--patches\fP +\fBslpkg\fP \fB-s\fP <\fIrepository\fP> <\fInames of packages\fP>, \fB--case-ins\fP, \fB--patches\fP .PP Installs or upgrade packages from the repositories with automatically resolving all dependencies of the package. @@ -202,12 +199,6 @@ Additional options: .PP \fB--reinstall\fP : Reinstall binary packages from repositories. .PP -\fB--resolve-off\fP : Switch off automatic resolve dependencies. -.PP -\fB--download-only\fP : Download packages without install. -.PP -\fB--directory-prefix=[path/to/dir/]\fP : Download packages in specific directory. -.PP \fB--case-ins\fP : Search package name in repository with case insensitive. .PP \fB--patches\fP : Switch to patches\ directory, only for slack repository. diff --git a/man/slpkg.html b/man/slpkg.html index 57d26c63..f8294d6a 100644 --- a/man/slpkg.html +++ b/man/slpkg.html @@ -310,8 +310,7 @@ Print package name only.

-c, --check, check if your packages is up to date
slpkg -c
<repository> --upgrade ---rebuild --skip=[packages...], --resolve-off, ---checklist

+--rebuild --skip=[packages...], --checklist

Check your packages if up to date. Slackware patches repository works @@ -335,10 +334,6 @@ Check ChangeLog.txt files for changes.

: Rebuild packages from sbo repository.

-

--resolve-off -: Switch off automatic resolve dependencies.

- -

--skip=[packages...] : Skip packages from upgrade separate by comma like "# slpkg -c sbo --skip=jdk,pep8,pip" (See REGEX).

@@ -352,7 +347,7 @@ python3-pythondialog)

synchronize packages, download, build and install package with all dependencies
slpkg -s <repository> <names of -packages>, --resolve-off, --case-ins, +packages>, --case-ins, --patches

Installs or @@ -371,18 +366,6 @@ options:

: Reinstall binary packages from repositories.

-

--resolve-off -: Switch off automatic resolve dependencies.

- - -

--download-only -: Download packages without install.

- - -

--directory-prefix=[path/to/dir/] -: Download packages in specific directory.

- -

--case-ins : Search package name in repository with case insensitive.

diff --git a/slpkg/arguments.py b/slpkg/arguments.py index 3f5a5429..c5a00e44 100644 --- a/slpkg/arguments.py +++ b/slpkg/arguments.py @@ -118,9 +118,7 @@ Optional arguments: -s | --sync, [repository] [package...], Sync packages. Install packages --rebuild, --reinstall, directly from remote repositories - --resolve-off, --download-only, with all dependencies. - --directory-prefix=[dir], - --case-ins, --patches + --case-ins, --patches with all dependencies. -t | --tracking, [repository] [package], Tracking package dependencies and --check-deps, --graph=[type], print package dependencies tree @@ -200,8 +198,6 @@ def usage(repo, stderr): [-c [repository], --upgrade, --rebuild, --skip=[...], --resolve-off, --checklist] [-s [repository] [package...], --rebuild, --reinstall, - --resolve-off, --download-only, - --directory-prefix=[dir], --case-ins, --patches] [-t [repository] [package], --check-deps, --graph=[type], --case-ins] diff --git a/slpkg/binary/install.py b/slpkg/binary/install.py index 75b2f63d..f60de9cc 100644 --- a/slpkg/binary/install.py +++ b/slpkg/binary/install.py @@ -67,7 +67,6 @@ class BinaryInstall(BlackList, Utils): self.msg = Msg() self.version = self.meta.slack_rel self.tmp_path = self.meta.slpkg_tmp_packages - self.init_flags() self.dwn, self.dep_dwn = [], [] self.install, self.dep_install = [], [] self.comp_sum, self.dep_comp_sum = [], [] @@ -86,17 +85,6 @@ class BinaryInstall(BlackList, Utils): self.blacklist = list(self.get_black()) self.matching = False - def init_flags(self): - """Flags initiliazation - """ - for fl in self.flag: - - if fl.startswith("--directory-prefix="): - self.tmp_path = fl.split("=")[1] - - if not self.tmp_path.endswith("/"): - self.tmp_path += "/" - def start(self, is_upgrade): """Installs packages from official Slackware distribution """ @@ -116,8 +104,7 @@ class BinaryInstall(BlackList, Utils): (self.dwn, self.install, self.comp_sum, self.uncomp_sum) = self.store(self.packages) - if (self.meta.rsl_deps in ["on", "ON"] and - "--resolve-off" not in self.flag): + if self.meta.rsl_deps in ["on", "ON"]: self.msg.done() if self.install: @@ -176,7 +163,6 @@ class BinaryInstall(BlackList, Utils): continue if (not os.path.isfile(self.meta.pkg_path + inst[:-4]) or - "--download-only" in self.flag or "--reinstall" in self.flag): Download(self.tmp_path, dwn.split(), self.repo).start() @@ -185,9 +171,6 @@ class BinaryInstall(BlackList, Utils): self.msg.pkg_found(inst) self.msg.template(78) - if "--download-only" in self.flag: - raise SystemExit() - self.dep_install = list(self.check_downloaded( self.tmp_path, self.dep_install)) @@ -212,8 +195,7 @@ class BinaryInstall(BlackList, Utils): for inst in (self.dep_install + self.install): - if (os.path.isfile(self.meta.pkg_path + inst[:-4]) and - "--download-only" not in self.flag): + if (os.path.isfile(self.meta.pkg_path + inst[:-4])): count_inst += 1 if (count_inst == len(self.dep_install + self.install) and @@ -310,8 +292,7 @@ class BinaryInstall(BlackList, Utils): """ requires = [] - if (self.meta.rsl_deps in ["on", "ON"] and - self.flag != "--resolve-off"): + if self.meta.rsl_deps in ["on", "ON"]: self.msg.resolving() for dep in self.packages: diff --git a/slpkg/main.py b/slpkg/main.py index a197928e..9c189db6 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -435,9 +435,6 @@ class ArgParse(BlackList): "--sync" ] additional_options = [ - "--resolve-off", - "--download-only", - "--directory-prefix=", "--case-ins", "--rebuild", "--reinstall", diff --git a/slpkg/sbo/slack_find.py b/slpkg/sbo/slack_find.py index 244219f0..8d1fcf6d 100644 --- a/slpkg/sbo/slack_find.py +++ b/slpkg/sbo/slack_find.py @@ -38,20 +38,16 @@ def slack_package(prgnam): TAG, binaries, cache, binary = "_SBo", [], "0", "" for exp in os.environ.keys(): - if exp == "TAG": TAG = os.environ["TAG"] break for pkg in find_package(prgnam, _meta_.output): - if pkg.startswith(prgnam) and pkg[:-4].endswith(TAG): binaries.append(pkg) for bins in binaries: - binary = bins - if parse_version(bins) > parse_version(cache): binary = bins cache = binary diff --git a/slpkg/sbo/slackbuild.py b/slpkg/sbo/slackbuild.py index 924c687a..3f600320 100644 --- a/slpkg/sbo/slackbuild.py +++ b/slpkg/sbo/slackbuild.py @@ -65,7 +65,6 @@ class SBoInstall(BlackList, Utils): self.arch = SBoArch().get() self.build_folder = self.meta.build_path self._SOURCES = self.meta.SBo_SOURCES - self.init_flags() self.unst = ["UNSUPPORTED", "UNTESTED"] self.master_packages = [] self.deps = [] @@ -82,17 +81,6 @@ class SBoInstall(BlackList, Utils): self.data = SBoGrep(name="").names() self.blacklist = list(self.get_black()) - def init_flags(self): - """Flags initialization - """ - for fl in self.flag: - - if fl.startswith("--directory-prefix="): - self.build_folder = fl.split("=")[1] - - if not self.build_folder.endswith("/"): - self.build_folder += "/" - def start(self, is_upgrade): """Start view, build and install SBo packages """ @@ -101,13 +89,11 @@ class SBoInstall(BlackList, Utils): self.case_insensitive() for _sbo in self.slackbuilds: - if _sbo in self.data and _sbo not in self.blacklist: sbo_deps = Requires(self.flag).sbo(_sbo) self.deps += sbo_deps self.deps_dict[_sbo] = self.one_for_all(sbo_deps) self.package_found.append(_sbo) - else: self.package_not_found.append(_sbo) @@ -121,15 +107,15 @@ class SBoInstall(BlackList, Utils): self.package_found) self.msg.done() - if (self.meta.rsl_deps in ["on", "ON"] and - self.flag != "--resolve-off" and not self.match): + if (self.meta.rsl_deps in ["on", "ON"] and not self.match): self.msg.resolving() + self.dependencies, dep_src = self.sbo_version_source( self.one_for_all(self.deps)) - if (self.meta.rsl_deps in ["on", "ON"] and - self.flag != "--resolve-off" and not self.match): + if (self.meta.rsl_deps in ["on", "ON"] and not self.match): self.msg.done() + self.clear_masters() if self.package_found: @@ -213,14 +199,11 @@ class SBoInstall(BlackList, Utils): """Continue to install ? """ if (self.count_uni > 0 or self.count_upg > 0 or - "--download-only" in self.flag or "--rebuild" in self.flag): + "--rebuild" in self.flag): if self.master_packages and self.msg.answer() in ["y", "Y"]: installs, upgraded = self.build_install() - if "--download-only" in self.flag: - raise SystemExit() - self.msg.reference(installs, upgraded) write_deps(self.deps_dict) delete_folder(self.build_folder) @@ -245,9 +228,7 @@ class SBoInstall(BlackList, Utils): """Return found matching SBo packages """ for sbo in self.package_not_found: - for pkg in self.data: - if sbo in pkg and pkg not in self.blacklist: self.package_found.append(pkg) @@ -369,7 +350,6 @@ class SBoInstall(BlackList, Utils): os.chdir(self.build_folder) for prgnam in slackbuilds: - if (self.meta.not_downgrade == "on" and self.not_downgrade(prgnam) is True): continue @@ -378,18 +358,15 @@ class SBoInstall(BlackList, Utils): installed = "".join(find_package(prgnam, self.meta.pkg_path)) src_link = SBoGrep(pkg).source().split() - if (installed and "--download-only" not in self.flag and - "--rebuild" not in self.flag): + if (installed and "--rebuild" not in self.flag): self.msg.template(78) self.msg.pkg_found(prgnam) self.msg.template(78) - elif self.unst[0] in src_link or self.unst[1] in src_link: self.msg.template(78) print(f"| Package {prgnam} {self.red}" f"{''.join(src_link)}{self.endc}") self.msg.template(78) - else: sbo_url = sbo_search_pkg(pkg) sbo_link = SBoLink(sbo_url).tar_gz() @@ -402,16 +379,12 @@ class SBoInstall(BlackList, Utils): repo="sbo").start() Download(self._SOURCES, src_link, repo="sbo").start() - if "--download-only" in self.flag: - continue - sources = list(self.filenames(src_link)) BuildPackage(script, sources, self.build_folder, auto=False).build() binary = slack_package(prgnam) if os.path.isfile("".join(binary)): - if GetFromInstalled(pkg).name() == pkg: print(f"[ {self.yellow}Upgrading{self.endc} ] --> " f"{prgnam}") From c8e4860fe105d605109b89c219499cfe8ba13204 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Tue, 14 Jun 2022 16:14:44 +0300 Subject: [PATCH 03/68] Removed unused --- slpkg/sbo/dependency.py | 2 -- slpkg/sbo/greps.py | 18 ++++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/slpkg/sbo/dependency.py b/slpkg/sbo/dependency.py index ed83b74c..5de378b8 100644 --- a/slpkg/sbo/dependency.py +++ b/slpkg/sbo/dependency.py @@ -53,9 +53,7 @@ class Requires(BlackList): requires = SBoGrep(name).requires() if requires: - for req in requires: - # avoids adding %README% as dependency and if # requires in the blacklist if "%README%" not in req and req not in self.blacklist: diff --git a/slpkg/sbo/greps.py b/slpkg/sbo/greps.py index 99d19e59..69d3a954 100644 --- a/slpkg/sbo/greps.py +++ b/slpkg/sbo/greps.py @@ -22,28 +22,19 @@ # along with this program. If not, see . -from slpkg.utils import Utils from slpkg.__metadata__ import MetaData as _meta_ from slpkg.models.models import SBoTable, session -class SBoGrep(Utils): +class SBoGrep: """Grabs data from sbo database """ def __init__(self, name): self.name = name self.meta = _meta_ - self.db = self.meta.db self.arch64 = "x86_64" self.session = session - def _names_grabbing(self): - """Generator that collecting all packages names - """ - names = self.session.query(SBoTable.name).all() - for n in names: - yield n[0] - def names(self): """Alias method convert generator and return a list @@ -110,6 +101,13 @@ class SBoGrep(Utils): return files[0] + def _names_grabbing(self): + """Generator that collecting all packages names + """ + names = self.session.query(SBoTable.name).all() + for n in names: + yield n[0] + def _sorting_arch(self, arch, arch64): """Returns sources by arch """ From 685741efe0868a3eb08bf03420cc6f01a2392b2e Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 17:39:33 +0300 Subject: [PATCH 04/68] Code rewritten Signed-off-by: Dimitris Zlatanidis --- AUTHORS | 1 - CHECKSUMS.md5 | 151 --- COMMANDS | 3 - CONTRIBUTING | 11 - ChangeLog.txt | 6 +- EXAMPLES.md | 1322 --------------------- INSTALL.md | 23 - ISSUES | 3 - KNOWN_ISSUES | 1 - LICENSE | 622 ---------- LICENSE.txt | 21 + README.rst | 26 +- REPOSITORIES.md | 56 - THANKS | 26 - bin/__init__.py | 1 - bin/slpkg | 34 +- clean.py | 66 - conf/blacklist | 35 - conf/custom-repositories | 32 - conf/default-repositories | 53 - conf/pkg_security | 34 - conf/repositories.conf | 59 - conf/rlworkman.deps | 35 - conf/slackware-mirrors | 138 --- conf/slpkg.bash-completion | 14 - conf/slpkg.conf | 129 -- conf/slpkg.fish | 18 - config/slpkg.json | 22 + install.sh | 1 - logo.txt | 10 - man/slpkg.1 | 67 ++ man/slpkg.8 | 402 ------- man/slpkg.html | 726 ----------- requirements.txt | 18 +- setup.py | 125 +- slackbuild/README | 7 - slackbuild/doinst.sh | 8 +- slackbuild/slpkg.SlackBuild | 18 +- slpkg/__init__.py | 2 +- slpkg/__metadata__.py | 255 ---- slpkg/arguments.py | 228 ---- slpkg/auto_pkg.py | 89 -- slpkg/binary/__init__.py | 1 - slpkg/binary/check.py | 78 -- slpkg/binary/dependency.py | 70 -- slpkg/binary/greps.py | 284 ----- slpkg/binary/install.py | 403 ------- slpkg/binary/repo_init.py | 163 --- slpkg/binary/search.py | 43 - slpkg/blacklist.py | 115 -- slpkg/checks.py | 150 --- slpkg/checksum.py | 70 -- slpkg/clean.py | 52 - slpkg/clean_logs.py | 34 + slpkg/cli_menu.py | 23 + slpkg/config.py | 98 -- slpkg/create_data.py | 63 + slpkg/dependencies.py | 26 + slpkg/desc.py | 78 -- slpkg/dialog_box.py | 109 -- slpkg/downloader.py | 147 +-- slpkg/file_size.py | 56 - slpkg/graph.py | 120 -- slpkg/grep_md5.py | 56 - slpkg/health.py | 120 -- slpkg/init.py | 940 --------------- slpkg/load.py | 121 -- slpkg/log_deps.py | 52 - slpkg/main.py | 1129 ++---------------- slpkg/md5sum.py | 37 - slpkg/messages.py | 141 --- slpkg/metadata.py | 93 ++ slpkg/models/{__init.py__ => __init__.py} | 0 slpkg/models/data.py | 84 -- slpkg/models/models.py | 65 +- slpkg/new_config.py | 271 ----- slpkg/pkg/__init__.py | 1 - slpkg/pkg/build.py | 229 ---- slpkg/pkg/find.py | 52 - slpkg/pkg/installed.py | 60 - slpkg/pkg/manager.py | 712 ----------- slpkg/pkg_find.py | 96 -- slpkg/queries.py | 90 ++ slpkg/remove.py | 45 - slpkg/remove_packages.py | 79 ++ slpkg/repoenable.py | 167 --- slpkg/repoinfo.py | 141 --- slpkg/repolist.py | 84 -- slpkg/repositories.py | 152 --- slpkg/sbo/__init__.py | 1 - slpkg/sbo/autobuild.py | 76 -- slpkg/sbo/build_num.py | 59 - slpkg/sbo/check.py | 71 -- slpkg/sbo/compressed.py | 32 - slpkg/sbo/dependency.py | 75 -- slpkg/sbo/greps.py | 117 -- slpkg/sbo/network.py | 418 ------- slpkg/sbo/queue.py | 202 ---- slpkg/sbo/read.py | 52 - slpkg/sbo/sbo_arch.py | 47 - slpkg/sbo/search.py | 41 - slpkg/sbo/slack_find.py | 59 - slpkg/sbo/slackbuild.py | 432 ------- slpkg/security.py | 49 - slpkg/sizes.py | 48 - slpkg/slack/__init__.py | 1 - slpkg/slack/mirrors.py | 64 - slpkg/slack/patches.py | 336 ------ slpkg/slack/slack_version.py | 46 - slpkg/slack/slackware_repo.py | 45 - slpkg/slackbuild.py | 204 ++++ slpkg/slpkg_update.py | 112 -- slpkg/splitting.py | 45 - slpkg/status_deps.py | 152 --- slpkg/superuser.py | 41 - slpkg/tracking.py | 244 ---- slpkg/update_repository.py | 44 + slpkg/upgrade_checklist.py | 70 -- slpkg/url_read.py | 55 - slpkg/utilities.py | 32 + slpkg/utils.py | 121 -- slpkg/version.py | 35 - slpkg/views/__init__.py | 0 slpkg/views/views.py | 60 + tests/test_file_size.py | 19 - tests/test_installed.py | 23 - tests/test_md5sum.py | 21 - tests/test_sbo_grep.py | 49 - tests/test_search_package.py | 25 - tests/test_slack_version.py | 15 - tests/test_split_package.py | 26 - tests/test_units.py | 19 - tests/test_utils.py | 34 - tools/gen_repos_files.sh | 945 --------------- 134 files changed, 1069 insertions(+), 15691 deletions(-) delete mode 100644 AUTHORS delete mode 100644 CHECKSUMS.md5 delete mode 100644 COMMANDS delete mode 100644 CONTRIBUTING delete mode 100644 EXAMPLES.md delete mode 100644 INSTALL.md delete mode 100644 ISSUES delete mode 100644 KNOWN_ISSUES delete mode 100644 LICENSE create mode 100644 LICENSE.txt delete mode 100644 REPOSITORIES.md delete mode 100644 THANKS delete mode 100644 bin/__init__.py delete mode 100755 clean.py delete mode 100644 conf/blacklist delete mode 100644 conf/custom-repositories delete mode 100644 conf/default-repositories delete mode 100644 conf/pkg_security delete mode 100644 conf/repositories.conf delete mode 100644 conf/rlworkman.deps delete mode 100644 conf/slackware-mirrors delete mode 100644 conf/slpkg.bash-completion delete mode 100644 conf/slpkg.conf delete mode 100644 conf/slpkg.fish create mode 100644 config/slpkg.json delete mode 100644 logo.txt create mode 100644 man/slpkg.1 delete mode 100644 man/slpkg.8 delete mode 100644 man/slpkg.html delete mode 100644 slpkg/__metadata__.py delete mode 100644 slpkg/arguments.py delete mode 100644 slpkg/auto_pkg.py delete mode 100644 slpkg/binary/__init__.py delete mode 100644 slpkg/binary/check.py delete mode 100644 slpkg/binary/dependency.py delete mode 100644 slpkg/binary/greps.py delete mode 100644 slpkg/binary/install.py delete mode 100644 slpkg/binary/repo_init.py delete mode 100644 slpkg/binary/search.py delete mode 100644 slpkg/blacklist.py delete mode 100644 slpkg/checks.py delete mode 100644 slpkg/checksum.py delete mode 100644 slpkg/clean.py create mode 100644 slpkg/clean_logs.py create mode 100644 slpkg/cli_menu.py delete mode 100644 slpkg/config.py create mode 100644 slpkg/create_data.py create mode 100644 slpkg/dependencies.py delete mode 100644 slpkg/desc.py delete mode 100644 slpkg/dialog_box.py delete mode 100644 slpkg/file_size.py delete mode 100644 slpkg/graph.py delete mode 100644 slpkg/grep_md5.py delete mode 100644 slpkg/health.py delete mode 100644 slpkg/init.py delete mode 100644 slpkg/load.py delete mode 100644 slpkg/log_deps.py delete mode 100644 slpkg/md5sum.py delete mode 100644 slpkg/messages.py create mode 100644 slpkg/metadata.py rename slpkg/models/{__init.py__ => __init__.py} (100%) delete mode 100644 slpkg/models/data.py delete mode 100644 slpkg/new_config.py delete mode 100644 slpkg/pkg/__init__.py delete mode 100644 slpkg/pkg/build.py delete mode 100644 slpkg/pkg/find.py delete mode 100644 slpkg/pkg/installed.py delete mode 100644 slpkg/pkg/manager.py delete mode 100644 slpkg/pkg_find.py create mode 100644 slpkg/queries.py delete mode 100644 slpkg/remove.py create mode 100644 slpkg/remove_packages.py delete mode 100644 slpkg/repoenable.py delete mode 100644 slpkg/repoinfo.py delete mode 100644 slpkg/repolist.py delete mode 100644 slpkg/repositories.py delete mode 100644 slpkg/sbo/__init__.py delete mode 100644 slpkg/sbo/autobuild.py delete mode 100644 slpkg/sbo/build_num.py delete mode 100644 slpkg/sbo/check.py delete mode 100644 slpkg/sbo/compressed.py delete mode 100644 slpkg/sbo/dependency.py delete mode 100644 slpkg/sbo/greps.py delete mode 100644 slpkg/sbo/network.py delete mode 100644 slpkg/sbo/queue.py delete mode 100644 slpkg/sbo/read.py delete mode 100644 slpkg/sbo/sbo_arch.py delete mode 100644 slpkg/sbo/search.py delete mode 100644 slpkg/sbo/slack_find.py delete mode 100644 slpkg/sbo/slackbuild.py delete mode 100644 slpkg/security.py delete mode 100644 slpkg/sizes.py delete mode 100644 slpkg/slack/__init__.py delete mode 100644 slpkg/slack/mirrors.py delete mode 100644 slpkg/slack/patches.py delete mode 100644 slpkg/slack/slack_version.py delete mode 100644 slpkg/slack/slackware_repo.py create mode 100644 slpkg/slackbuild.py delete mode 100644 slpkg/slpkg_update.py delete mode 100644 slpkg/splitting.py delete mode 100644 slpkg/status_deps.py delete mode 100644 slpkg/superuser.py delete mode 100644 slpkg/tracking.py create mode 100644 slpkg/update_repository.py delete mode 100644 slpkg/upgrade_checklist.py delete mode 100644 slpkg/url_read.py create mode 100644 slpkg/utilities.py delete mode 100644 slpkg/utils.py delete mode 100644 slpkg/version.py create mode 100644 slpkg/views/__init__.py create mode 100644 slpkg/views/views.py delete mode 100644 tests/test_file_size.py delete mode 100644 tests/test_installed.py delete mode 100644 tests/test_md5sum.py delete mode 100644 tests/test_sbo_grep.py delete mode 100644 tests/test_search_package.py delete mode 100644 tests/test_slack_version.py delete mode 100644 tests/test_split_package.py delete mode 100644 tests/test_units.py delete mode 100644 tests/test_utils.py delete mode 100644 tools/gen_repos_files.sh diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index e75a569c..00000000 --- a/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Dimitris Zlatanidis diff --git a/CHECKSUMS.md5 b/CHECKSUMS.md5 deleted file mode 100644 index 1d4e7f99..00000000 --- a/CHECKSUMS.md5 +++ /dev/null @@ -1,151 +0,0 @@ -These are the MD5 message digests for the files in this directory. -If you want to test your files, use 'md5sum' and compare the values to -the ones listed here. - -To test all these files, use this command: - -tail +13 CHECKSUMS.md5 | md5sum -c --quiet - | less - -'md5sum' can be found in the GNU coreutils package on ftp.gnu.org in -/pub/gnu, or at any GNU mirror site. - -MD5 message digest Filename -74d79364aef2717c00eae3a37c0e7479 ./slpkg-2.1.5.tar.gz -b37d59524be1ce9ef1c4e13e91ceb763 ./slpkg-2.2.0.tar.gz -3b869056c2309ee3f694b2c11f5533bd ./slpkg-2.2.1.tar.gz -c32bc46bcb2f5a7b4fbc681a6cccc3de ./slpkg-2.2.2.tar.gz -3c7259a18644573e116b4836095aebd8 ./slpkg-2.2.3.tar.gz -246571f3f6489dd98a67df3a2d1acb58 ./slpkg-2.2.5.tar.gz -bc70626560b37398bd66a02cc3c9f5ef ./slpkg-2.2.6.tar.gz -abea645bd382aa47500588631c299bb1 ./slpkg-2.2.7.tar.gz -5aa9870ad189864cfed45a910f5136b9 ./slpkg-2.2.8.tar.gz -cd3c213b4c0da976be970e9fe888e5e3 ./slpkg-2.2.9.tar.gz -08a345549a0a3e1de2103c3b4085b880 ./slpkg-2.3.0.tar.gz -ac61b4952462327f7f06f1d5ea11920d ./slpkg-2.3.1.tar.gz -70175c577672fd0f488cb9f5a715a2c3 ./slpkg-2.3.2.tar.gz -1f7b391e2e3e4f414f58660b094775d8 ./slpkg-2.3.3.tar.gz -141433a4e78e96b4efb0a2e32d75c1be ./slpkg-2.3.4.tar.gz -93b7a0d94695526e1821e3b04685b58f ./slpkg-2.3.5.tar.gz -d0bef671bb8a3f8def08e289f7a84b65 ./slpkg-2.3.6.tar.gz -03f8b36727bf10b46d78c581266670db ./slpkg-2.4.0.tar.gz -9f422c008b25820eb55202989f2871da ./slpkg-2.4.1.tar.gz -ae5ca3128a6ad05b3061541b088f3a1f ./slpkg-2.4.2.tar.gz -8b48e7080bd5363e8752666b9bf583e9 ./slpkg-2.4.3.tar.gz -41552b535b00cd03488d87060e561e05 ./slpkg-2.4.4.tar.gz -4df3325bbf2f67629a41ce498e55f2a6 ./slpkg-2.5.0.tar.gz -e4c638055b82a4590695e5c6b269aa53 ./slpkg-2.5.1.tar.gz -60e6bc9cfa456637112a942a461e6619 ./slpkg-2.5.2.tar.gz -0375ac84e760f51f1d575d96f3ba7fbf ./slpkg-2.5.3.tar.gz -205589985bf31249e6f1ab5c68c18e44 ./slpkg-2.5.4.tar.gz -dff6a5c677311f9c4d17e45088ef2f58 ./slpkg-2.5.5.tar.gz -7936eabe05be9acee42df45f75bc8107 ./slpkg-2.5.6.tar.gz -fd031880db1f60aa90eef0e0fc9a106b ./slpkg-2.5.7.tar.gz -9f8f748ab7ab99799a9e55891b11130c ./slpkg-2.5.8.tar.gz -cbc5213680f8db5c1283923ff07b066f ./slpkg-2.5.9.tar.gz -f6cb268e56051a958538c4182870f241 ./slpkg-2.6.0.tar.gz -8c7fde89ba7658d3505c88d5b7dd1b40 ./slpkg-2.6.1.tar.gz -1f0cca089df4d157201730f27afa4765 ./slpkg-2.6.2.tar.gz -95ccc27545a259087e0dd0b666cbb686 ./slpkg-2.6.3.tar.gz -8584d7d9d3666a93f6d14f5e42e4cb41 ./slpkg-2.6.4.tar.gz -2240d34cc28c69846ad47bea473f25e4 ./slpkg-2.6.5.tar.gz -e6ed625b553fd2f24f149162e4fa735f ./slpkg-2.6.6.tar.gz -48a3941cd990a1a037f11d989d2e5be0 ./slpkg-2.6.7.tar.gz -4f2df9ad3ffc303373e26200544d4af4 ./slpkg-2.6.8.tar.gz -f348ca49b0d8419f170f2211399a0851 ./slpkg-2.6.9.tar.gz -a41dbb2b95c34bd31319addcae0f1e49 ./slpkg-2.7.0.tar.gz -28ec4b26e87188f1ebf1eb0a8fcb64e2 ./slpkg-2.7.1.tar.gz -4a110faf3df50c336678b410736295e3 ./slpkg-2.7.2.tar.gz -18cb0f66a8a5fb27e9170efd59a7e1df ./slpkg-2.7.3.tar.gz -86579033c8789b5896a36b377508d367 ./slpkg-2.7.4.tar.gz -12dd03c8ed172eebc41f9ed84993780b ./slpkg-2.7.5.tar.gz -4484ede82d667badb6dd22873d2da785 ./slpkg-2.7.6.tar.gz -3bb2cb5f2427fa9024af8df9e6a6d51d ./slpkg-2.8.0.tar.gz -7545f9dbce24deb9b4b69d7303c00f28 ./slpkg-2.8.1.tar.gz -8158ab7fe2555a24553c9efa6d6f8ac9 ./slpkg-2.8.2.tar.gz -d6842f77b159a9f9db8183c10abcb83f ./slpkg-2.8.3.tar.gz -5247eb52e9864a1dd4d134893227a7a4 ./slpkg-2.8.4.tar.gz -64a22e9fbf7a6bc04b6f544609322434 ./slpkg-2.8.5.tar.gz -5e4ccdb74fe3abde188994a362de1d67 ./slpkg-2.8.6.tar.gz -cac1f51618665cebd8ed778f78a8d2fe ./slpkg-2.8.7.tar.gz -f65b1525da801a7cc2e460cf1eb5d4be ./slpkg-2.8.8.tar.gz -1a311e132d3b7957f3ab3d128072a10f ./slpkg-2.8.9.tar.gz -737b6a59dcb103708c4aeab4a96b517d ./slpkg-2.9.0.tar.gz -2ba8c1f63d05f368d9c7a6f12f4df387 ./slpkg-2.9.1.tar.gz -8970a287eafc773bc87905204fea35f6 ./slpkg-2.9.2.tar.gz -8d749508937faf31ee2432a05f64a46e ./slpkg-2.9.3.tar.gz -6616d6612e6eed897fd723777f5fb273 ./slpkg-2.9.4.tar.gz -f645936c1b143e4e1fa7c1637a4ea03f ./slpkg-2.9.5.tar.gz -d30ee37dbab0b113e6493fc61ee2f0b2 ./slpkg-2.9.6.tar.gz -a3a9e3768fc1ba3da91503b49325fee3 ./slpkg-2.9.7.tar.gz -96b1e1262a410e385f21e5413329ce18 ./slpkg-3.0.0.tar.gz -fab52c1b84e988cd5ec4b5ddbc95277c ./slpkg-3.0.1.tar.gz -4dd94caee2ef25501a5b70546ee0e3a4 ./slpkg-3.0.2.tar.gz -b88c991b2d29934f9f69104144a97e26 ./slpkg-3.0.3.tar.gz -1d50725d7bd271533442ca61bdf989fd ./slpkg-3.0.4.tar.gz -36a0b209ec8f194b86870112a3baa5b2 ./slpkg-3.0.5.tar.gz -101233e422a193f16d9056cf9f9d7b75 ./slpkg-3.0.6.tar.gz -9ec6024d77cd0e42292358ab1520973e ./slpkg-3.0.7.tar.gz -3e20b6d9ac4f36719ea76555910f6fe3 ./slpkg-3.0.8.tar.gz -44865cf611fc9a8d6425ce40f65d24f3 ./slpkg-3.0.9.tar.gz -fb2c0fedd2af291195faccfd304087be ./slpkg-3.1.0.tar.gz -e2b106a786a889c26385bf6ef266f09b ./slpkg-3.1.1.tar.gz -d9652f8d1ed42cb35084fdea88a8e483 ./slpkg-3.1.2.tar.gz -bb1ecf5cee734126f28241e810b77db3 ./slpkg-3.1.3.tar.gz -7b575cb93f3d2203fa2d3c41bd20f922 ./slpkg-3.1.4.tar.gz -f31a256221c02efbe4d356829d2a85e4 ./slpkg-3.1.5.tar.gz -9fbe32bd1f22e1784e2bb1ae7a288a4f ./slpkg-3.1.6.tar.gz -c3704b344c426151786a9760c4c62c4a ./slpkg-3.1.7.tar.gz -85df62558734a4113827e3b7f461c56e ./slpkg-3.1.8.tar.gz -9dc7d81d758a98ce3ad9c94364f33850 ./slpkg-3.1.9.tar.gz -1a006b491e0d3cb5613f37bdf1847c6c ./slpkg-3.2.0.tar.gz -88812d9fe483f30635f35ec8d19b74d1 ./slpkg-3.2.1.tar.gz -137a121ff3dc9f37abd3af6e2a6ae6c4 ./slpkg-3.2.2.tar.gz -33dddeeea7eb50420455a82bd32bce7c ./slpkg-3.2.3.tar.gz -57ba5c20050411095f2ae732e5012576 ./slpkg-3.2.4.tar.gz -ce4657f7e644ad58adb21eddfcea495a ./slpkg-3.2.5.tar.gz -95b595479e7fb6e0ed934f33a74c267c ./slpkg-3.2.6.tar.gz -a937c14f0d728ba36c1afd91a6800282 ./slpkg-3.2.7.tar.gz -9f10d66105681d304edb130d7948d92f ./slpkg-3.2.8.tar.gz -bd1ac24393c5cfdc8c7546fe9e9d0ff2 ./slpkg-3.2.9.tar.gz -d9b3a3a2903f2e3637b6f7d324f979b3 ./slpkg-3.3.0.tar.gz -65acf0561ba00fce3a012c0b76383292 ./slpkg-3.3.1.tar.gz -7eb3f0cd2d78fcd073420a5152ec14cd ./slpkg-3.3.2.tar.gz -da0c65f15f8c8b53edd964a703560e79 ./slpkg-3.3.3.tar.gz -0c08eaac7f40fd9d8304aed8c3e69050 ./slpkg-3.3.4.tar.gz -01c779d3f22439c2a8903015bc4d14b1 ./slpkg-3.3.5.tar.gz -e2e5c91996d68c248416c90127347233 ./slpkg-3.3.6.tar.gz -3fe4ca75b734a7880cf13a07d6e1b441 ./slpkg-3.3.7.tar.gz -86024e707ff696ebecf8de77da14500e ./slpkg-3.3.8.tar.gz -049284f54ea21e8443226dbb92f61095 ./slpkg-3.3.9.tar.gz -976baf5c4b98ecae3d2336de801e8906 ./slpkg-3.4.0.tar.gz -25c697d6039ddda6c0a79a0d28fe6145 ./slpkg-3.4.1.tar.gz -14ba9c085dea13238e39fd476ed299c8 ./slpkg-3.4.2.tar.gz -2f62cfc87b130310490ff0b76eb17b74 ./slpkg-3.4.3.tar.gz -deb10f0e2597ef8b201c039af2bd9c36 ./slpkg-3.7.0.tar.gz -04a0e87c5ed0a70b4aa9682b9d2a8cc9 ./slpkg-3.7.1.tar.gz -6740e8213bbaa8f8d674144f61954366 ./slpkg-3.7.2.tar.gz -dd97a05ee9ba37e0262f7e1c60d0eb61 ./slpkg-3.7.3.tar.gz -31d0c6aa7558bdc77d4eed4d4d5eb3f8 ./slpkg-3.7.4.tar.gz -a8298533001b4537939339dc6970e140 ./slpkg-3.8.0.tar.gz -4c2c7aecc7c08f2acf63ee154f1fe090 ./slpkg-3.8.1.tar.gz -e3215b66237bc6615da823725ad3ba66 ./slpkg-3.8.2.tar.gz -ad77a79f0fe059818d905d959df85064 ./slpkg-3.8.3.tar.gz -5a622c35ad6c8bd5a0a6bce2ea73d1dc ./slpkg-3.8.4.tar.gz -030bc3e2c9a82c95cbd8647872979652 ./slpkg-3.8.5.tar.gz -79019bd09837370c92fc301822da2c8b ./slpkg-3.8.6.tar.gz -2b41c1d3c21ff61d62cc119ee7def256 ./slpkg-3.8.7.tar.gz -e35b8a1b5bd51a6bf1a223f82f733af7 ./slpkg-3.8.8.tar.gz -d485c552637b510d2d3b7ff5be093ada ./slpkg-3.8.9.tar.gz -c23fcaeee005bdd7858f8269d7532f1f ./slpkg-3.9.0.tar.gz -19d4b05df424482d8532892fc6271666 ./slpkg-3.9.1.tar.gz -4fb0c6c100299d0a05aa2df3cd639c2f ./slpkg-3.9.2.tar.gz -784dbeb6f3dfa6f5825c58b8a4be6b27 ./slpkg-3.9.3.tar.gz -7f8053f4a6147e7c82ef981d61d34c66 ./slpkg-3.9.4.tar.gz -98c5079212e39d92144fc3805f93408a ./slpkg-3.9.5.tar.gz -4f4c6dc84a9834fc8b65a820ec52fa19 ./slpkg-3.9.6.tar.gz -63be7458372cdcfba46654c7423379ac ./slpkg-3.9.7.tar.gz -41b3f4f0f8fb8270e3b03abd2c73be2c ./slpkg-3.9.8.tar.gz -9c0ac9e08ae39c56a17c0aaf63dd94bb ./slpkg-3.9.9.tar.gz -7ad1bee7fc1db400aeb925485ed76b76 ./slpkg-4.0.0.tar.gz -5b1f9eb4738b5b578fea41cde6dcdddc ./slpkg-4.0.1.tar.gz -9beb1b86eece6c26a9153d0894aadda0 ./slpkg-4.0.2.tar.gz diff --git a/COMMANDS b/COMMANDS deleted file mode 100644 index ec31ff47..00000000 --- a/COMMANDS +++ /dev/null @@ -1,3 +0,0 @@ -sed -i "s/2014-2021/2014-2022/g" {} \; # Update the Copyright year -sed -i 's/^/# /' slackware-mirrors # Add first char (#) per line -sed -i 's/ *$//' slackware-mirrors # Remove spaces the end of line diff --git a/CONTRIBUTING b/CONTRIBUTING deleted file mode 100644 index f23faf4c..00000000 --- a/CONTRIBUTING +++ /dev/null @@ -1,11 +0,0 @@ -Contributions are very much appreciated !!! - -Pull requests should be based on and submitted to the "develop" branch - -It would be preferable to have a basic knowledge about the distribution Slackware, -as important how a package is build. - -Small changes in the code each time more appreciated. -Keep the style code applicable items. - -Please ensure your changes work in Python >= 3.7 diff --git a/ChangeLog.txt b/ChangeLog.txt index abadae38..b0ceecf9 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,6 +1,6 @@ -4.0.3 - 13/06/2022 -Removed: -- Unused flags --resolve-off, --download-prefix, --download-only +4.1.0 - 20/06/2022 +Updated: +- slpkg code re-written from the beginning and currently supports only the SBo repository 4.0.2 - 13/06/2022 Fixed: diff --git a/EXAMPLES.md b/EXAMPLES.md deleted file mode 100644 index 2c2858f2..00000000 --- a/EXAMPLES.md +++ /dev/null @@ -1,1322 +0,0 @@ -# Slpkg - -##### Slpkg Examples - -Enable or disable default repositories, edit '`/etc/slpkg/repositories.conf`' file or with the command. -(require pythondialog, install with '`slpkg -s sbo python3-pythondialog`'): - -``` -$ slpkg repo-enable -``` - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/repo_enable.png) - - -If you use slpkg for the first time, you will have to create and update the packages -lists. This command must be executed to update the packages lists: - -``` -$ slpkg update - -Update repository [slack] ... Done -Update repository [sbo] ... Done -Update repository [alien] ... Done -Update repository [slacky] ... Done -Update repository [conrad] ... Done -Update repository [slonly] ... Done -Update repository [ktown] ... Done -Update repository [salix] ... Done -Update repository [slacke] ... Done -Update repository [slackl] ... Done -Update repository [multi] ... Done -Update repository [msb] ... Done - -``` -Update specifically repositories: - -``` -$ slpkg update --repositories=sbo,msb,slacky -``` - -Also you can check ChangeLog.txt for changes, like: - -``` -$ slpkg -c sbo - -+============================================================================== -| Repository Status -+============================================================================== - sbo News in ChangeLog.txt - -Summary -=============================================================================== -From 1 repositories need 1 updating. Run the command 'slpkg update'. - - -$ slpkg --check - -+============================================================================== -| Repository Status -+============================================================================== - slack No changes in ChangeLog.txt - sbo News in ChangeLog.txt - slacky News in ChangeLog.txt - alien No changes in ChangeLog.txt - rlw No changes in ChangeLog.txt - -Summary -=============================================================================== -From 5 repositories need 2 updating. Run the command 'slpkg update'. -``` - -Add and remove custom repositories: - -``` -$ slpkg repo-add ponce http://ponce.cc/slackware/slackware64-14.2/packages/ - -Repository 'ponce' successfully added - -$ slpkg repo-add repo1 file:///home/user1/repos/alien/ - -Repository 'repo1' successfully added - -$ slpkg repo-remove ponce - -Repository 'ponce' successfully removed - -``` - -View information about the repositories: - -``` -$ slpkg repo-list - -+============================================================================== -| Repo id Repo URL Default Status -+============================================================================== - alien http://www.slackware.com/~alien/slackbuilds/ yes disabled - ktown http://alien.slackbook.org/ktown/ yes disabled - msb http://slackware.org.uk/msb/ yes enabled - multi http://www.slackware.com/~alien/multilib/ yes disabled - ponce http://ponce.cc/slackware/slackware64-14.2/packa~ no enabled - rested http://taper.alienbase.nl/mirrors/people/alien/r~ yes disabled - rlw http://rlworkman.net/pkgs/ yes disabled - salix http://download.salixos.org/ yes disabled - sbo http://slackbuilds.org/slackbuilds/ yes enabled - slack http://ftp.cc.uoc.gr/mirrors/linux/slackware/ yes enabled - slacke http://ngc891.blogdns.net/pub/ yes disabled - slackl http://www.slackel.gr/repo/ yes disabled - conrad http://slack.conraid.net/repository/slackware64-~ yes disabled - slacky http://repository.slacky.eu/ yes disabled - slonly https://slackonly.com/pub/packages/ yes disabled - -Repositories summary -=============================================================================== -3/14 enabled default repositories and 1 custom. -For enable or disable default repositories edit '/etc/slpkg/repositories.conf' -file. - -$ slpkg repo-info alien - -Default: yes -Last updated: Tue Dec 23 11:48:31 UTC 2014 -Number of packages: 3149 -Repo id: alien -Repo url: http://www.slackware.com/~alien/slackbuilds/ -Status: enabled -Total compressed packages: 9.3 Gb -Total uncompressed packages: 36.31 Gb -``` - -Installing packages from the repositories (supporting multi packages): - -``` -$ slpkg -s sbo brasero -Reading package lists... Done -Resolving dependencies... Done - -The following packages will be automatically installed or upgraded -with new version: - -+============================================================================== -| Package New version Arch Build Repos Size -+============================================================================== -Installing: - brasero 3.12.1 x86_64 SBo -Installing for dependencies: - orc 0.4.23 x86_64 SBo - gstreamer1 1.4.5 x86_64 SBo - gst1-plugins-base 1.4.5 x86_64 SBo - gst1-plugins-bad 1.4.5 x86_64 SBo - -Installing summary -=============================================================================== -Total 5 packages. -5 packages will be installed, 0 already installed and 0 package -will be upgraded. - -Would you like to continue [y/N]? -``` - -Example install multi packages: - -``` -$ slpkg -s sbo brasero pylint atkmm -Reading package lists... Done -Resolving dependencies... Done - -The following packages will be automatically installed or upgraded -with new version: - -+============================================================================== -| Package New version Arch Build Repos Size -+============================================================================== -Installing: - brasero 3.12.1 x86_64 SBo - pylint-1.3.1 1.3.1 x86_64 SBo - atkmm 2.22.7 x86_64 SBo -Installing for dependencies: - libsigc++ 2.2.11 x86_64 SBo - glibmm 2.36.2 x86_64 SBo - cairomm 1.10.0 x86_64 SBo - pangomm 2.34.0 x86_64 SBo - six-1.8.0 1.8.0 x86_64 SBo - pysetuptools-17.0 17.0 x86_64 SBo - logilab-common-0.63.2 0.63.2 x86_64 SBo - astroid-1.3.6 1.3.6 x86_64 SBo - orc 0.4.23 x86_64 SBo - gstreamer1 1.4.5 x86_64 SBo - gst1-plugins-base 1.4.5 x86_64 SBo - gst1-plugins-bad 1.4.5 x86_64 SBo - -Installing summary -=============================================================================== -Total 15 packages. -10 packages will be installed, 5 already installed and 0 package -will be upgraded. - -Would you like to continue [y/N]? -``` - -Example from 'alien' repository: - -``` -$ slpkg -s alien atkmm -Reading package lists... Done -Resolving dependencies... Done - -+============================================================================== -| Package New version Arch Build Repos Size -+============================================================================== -Installing: - atkmm 2.22.6 x86_64 1 alien 124 K -Installing for dependencies: - libsigc++ 2.2.10 x86_64 2 alien 128 K - glibmm 2.32.1 x86_64 1 alien 1012 K - cairomm 1.10.0 x86_64 2 alien 124 K - pangomm 2.28.4 x86_64 1 alien 124 K - -Installing summary -=============================================================================== -Total 5 packages. -5 packages will be installed, 0 will be upgraded and 0 will be reinstalled. -Need to get 124 Kb of archives. -After this process, 620 Kb of additional disk space will be used. - -Would you like to continue [y/N]? -``` - -Close auto resolve dependencies: - -``` -$ slpkg -s alien atkm --resolve-off -Reading package lists... Done - -The following packages will be automatically installed or upgraded -with new version: - -+============================================================================== -| Package New version Arch Build Repos Size -+============================================================================== -Installing: - atkmm 2.22.6 x86_64 1 alien 124 K - -Installing summary -=============================================================================== -Total 1 package. -1 package will be installed, 0 will be upgraded and 0 will be reinstalled. -Need to get 124 Kb of archives. -After this process, 620 Kb of additional disk space will be used. - -Would you like to continue [y/N]? -``` - -Build packages and passing variables to the script: - - -First export variable(s) like: - -``` -$ export FFMPEG_ASS=yes FFMPEG_X264=yes -``` - -And then run as you know: - -``` -$ slpkg -s sbo ffmpeg - -``` - -or - -``` -$ slpkg -n ffmpeg -``` - -or if already script and source donwloaded: - -``` -$ slpkg -a ffmpeg.tar.gz ffmpeg-2.1.5.tar.bz2 -``` - -Tracking all the dependencies of packages, and also displays the installed packages: - -``` -$ slpkg -t sbo brasero -Resolving dependencies... Done - -+========================= -| brasero dependencies : -+========================= -\ - +---[ Tree of dependencies ] - | - +--1 orc - | - +--2 gstreamer1 - | - +--3 gst1-plugins-base - | - +--4 gst1-plugins-bad - | - +--5 libunique -``` - -Check if the dependencies used: - -``` -$ slpkg -t sbo Flask --check-deps -Resolving dependencies... Done - -+============================= -| Package Flask dependencies : -+============================= -\ - +---[ Tree of dependencies ] - | - +--1: pysetuptools is dependence on --> Flask, bpython, pip, pylint - | - +--2: MarkupSafe is dependence on --> Flask - | - +--3: itsdangerous is dependence on --> Flask - | - +--4: Jinja2 is dependence on --> Flask - | - +--5: werkzeug is dependence on --> Flask -``` - -Drawing the dependencies diagram: - -``` -$ slpkg -t sbo flexget --graph=image.x11 -``` - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/deps2.png) - -``` -$ slpkg -t sbo Flask --check-deps --graph=image.x11 -Resolving dependencies... Done - -+============================= -| Package Flask dependencies : -+============================= -\ - +---[ Tree of dependencies ] - | - +--1: pysetuptools is dependence on --> APScheduler, Flask, Jinja2, MarkupSafe, astroid, autopep8, blessings, bpython, cffi, cryptography, curtsies, itsdangerous, monty, ndg_httpsclient, pip, pyOpenSSL, pylint, wcwidth - | - +--2: MarkupSafe is dependence on --> Flask, Jinja2 - | - +--3: itsdangerous is dependence on --> Flask - | - +--4: Jinja2 is dependence on --> Flask - | - +--5: werkzeug is dependence on --> Flask -``` - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/deps3.png) - - -Drawing the dependencies ascii diagram: - -``` -$ slpkg -t sbo botocore --graph=ascii - - +---------------------------------+ - | | - | | - | +---------+ | - | | | | - | | | | - +----------------+----+----+ | | - | | | | | | -+--------------+ | +--------------------+ | +-----------------+ | -| jmespath | -+- | botocore | +- | python-dateutil | | -+--------------+ | +--------------------+ +-----------------+ | - | | | | | | | - | | | | | | | - | | | | | | | -+--------------+ | +----------+ | | +-----------------+ | -| pysetuptools | -+ | bcdoc | -+----+------ | six | -+ -+--------------+ +----------+ | | +-----------------+ - | | | | - | | | | - | | | | - | +----------+ | | - | | docutils | -+ | - | +----------+ | - | | - +-------------------------------------+ -``` - -Print the dependencies status used by packages: - -``` -$ slpkg deps-status - -+============================================================================== -| Dependencies Packages -+============================================================================== - astroid pylint - logilab-common pylint - werkzeug Flask - cryptography bpython - ndg_httpsclient bpython - enum34 bpython - pyOpenSSL bpython - curtsies bpython - six bpython, pylint - cffi bpython - python-requests bpython - pysetuptools Flask, bpython, pip, pylint - MarkupSafe Flask - Pygments bpython - Jinja2 Flask - pycparser bpython - blessings bpython - greenlet bpython - pyasn1 bpython - -Summary -=============================================================================== -Found 19 dependencies in 4 packages. -``` - -Use the additional option '`--graph=[image]`' to drawing the dependencies diagram: - -``` -$ slpkg deps-status --graph=image.x11 -``` - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/deps.png) - - -Check if your packages is up to date or they have changes in ChangeLog.txt: - -``` -$ slpkg -c sbo - -+============================================================================== -| Repository Status -+============================================================================== - sbo News in ChangeLog.txt - -Summary -=============================================================================== -From 1 repositories need 1 updating. Run the command 'slpkg update'. -``` - -Check for new versions: - -``` -$ slpkg -c sbo --upgrade -Checking... Done -Reading package lists... Done -Resolving dependencies... Done - -The following packages will be automatically installed or upgraded -with new version: - -+============================================================================== -| Package New version Arch Build Repos Size -+============================================================================== -Upgrading: - astroid-1.3.2 1.3.4 x86_64 SBo - jdk-7u51 8u31 x86_64 SBo -Installing for dependencies: - six-1.7.3 1.8.0 x86_64 SBo - logilab-common-0.60.1 0.63.2 x86_64 SBo - pysetuptools-6.1 7.0 x86_64 SBo - -Installing summary -=============================================================================== -Total 5 packages. -0 package will be installed, 2 already installed and 3 packages -will be upgraded. - -Would you like to continue [y/N]? - - -$ slpkg -c slacky --upgrade -Checking... Done -Reading package lists... Done -Resolving dependencies... Done - -+============================================================================== -| Package New version Arch Build Repos Size -+============================================================================== -Upgrading: - gstreamer1-1.4.1 1.4.4 x86_64 1 slacky 1563 K - -Installing summary -=============================================================================== -Total 1 package. -0 package will be installed, 1 will be upgraded and 0 will be reinstalled. -Need to get 1.53 Mb of archives. -After this process, 14.55 Mb of additional disk space will be used. - -Would you like to continue [y/N]? -``` - -Check if your Slackware distribution is up to date. -This option works independently of the others i.e you don't need before you updating the -packages lists: - -``` -$ slpkg -c slack --upgrade -Reading package lists... Done - -These packages need upgrading: - -+============================================================================== -| Package New version Arch Build Repos Size -+============================================================================== -Upgrading: - dhcpcd-6.0.5 6.0.5 x86_64 3 Slack 92 K - samba-4.1.0 4.1.11 x86_64 1 Slack 9928 K - xscreensaver-5.22 5.29 x86_64 1 Slack 3896 K - -Installing summary -=============================================================================== -Total 3 package will be upgrading and 0 will be installed. -Need to get 13.58 Mb of archives. -After this process, 76.10 Mb of additional disk space will be used. - -Would you like to continue [y/N]? -``` - -Upgrade only distribution: - -``` -$ slpkg -c slack --upgrade --skip="multi:*multilib*,ktown:*" // This upgrade -Checking... Done // distribution - // and skip all -Slackware64 'stable' v14.2 distribution is up to date // packages from - // ktown repository - // and multilib - // from multi. -``` - -Skip packages when upgrading: - -``` -$ slpkg -c sbo --upgrade --skip=pip,jdk // Available options: -Checking... Done // repository:*string* -Reading package lists... Done // repository:string* -Resolving dependencies... Done // repository:*string - -The following packages will be automatically installed or upgraded -with new version: - -+============================================================================== -| Package New version Arch Build Repos Size -+============================================================================== -Upgrading: - cffi-1.0.1 1.1.0 x86_64 SBo -Installing for dependencies: - pysetuptools-17.0 17.0 x86_64 SBo - pycparser-2.12 2.13 x86_64 SBo - -Installing summary -=============================================================================== -Total 3 packages. -0 package will be installed, 1 already installed and 2 packages -will be upgraded. - -Would you like to continue [y/N]? -``` - -View slackbuilds.org site in your terminal. Read files, download, build or install: - -``` -$ slpkg -n bitfighter -Reading package lists... Done - -+============================================================================== -| SlackBuilds Repository -+============================================================================== -| 14.2 > Games > bitfighter -+=============================================================================== -| Package url: http://slackbuilds.org/repository/14.2/games/bitfighter/ -+=============================================================================== -| Description: multi-player combat game -| SlackBuild: bitfighter.tar.gz -| Sources: bitfighter-019c.tar.gz, classic_level_pack.zip -| Requirements: OpenAL, SDL2, speex, libmodplug -+=============================================================================== -| README View the README file -| SlackBuild View the .SlackBuild file -| Info View the .info file -| Doinst.sh View the doinst.sh file -| Download Download this package -| Build Download and build this package -| Install Download/Build/Install -| Clear Clear screen - Quit Quit -+================================================================================ - Choose an option > _ -``` - -Use the dialog utility to help you find the packages: - -``` -$ slpkg -n --checklist -Reading package lists... -``` - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/pythondialog5.png) - -``` -$ slpkg -n perl --checklist -Reading package lists... -``` - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/pythondialog6.png) - - -Auto tool to build a package: -Two files termcolor.tar.gz and termcolor-1.1.0.tar.gz must be in the same directory. -(slackbuild script & source code or extra sources if needed) - -``` -$ slpkg -a termcolor.tar.gz termcolor-1.1.0.tar.gz - -termcolor/ -termcolor/slack-desc -termcolor/termcolor.info -termcolor/README -termcolor/termcolor.SlackBuild -termcolor-1.1.0/ -termcolor-1.1.0/CHANGES.rst -termcolor-1.1.0/COPYING.txt -termcolor-1.1.0/README.rst -termcolor-1.1.0/setup.py -termcolor-1.1.0/termcolor.py -termcolor-1.1.0/PKG-INFO -running install -running build -running build_py -creating build -creating build/lib -copying termcolor.py -> build/lib -running install_lib -creating /tmp/SBo/package-termcolor/usr -creating /tmp/SBo/package-termcolor/usr/lib64 -creating /tmp/SBo/package-termcolor/usr/lib64/python2.7 -creating /tmp/SBo/package-termcolor/usr/lib64/python2.7/site-packages -copying build/lib/termcolor.py -> -/tmp/SBo/package-termcolor/usr/lib64/python2.7/site-packages -byte-compiling /tmp/SBo/package-termcolor/usr/lib64/python2.7/site-packages/termcolor.py -to termcolor.pyc -running install_egg_info -Writing -/tmp/SBo/package-termcolor/usr/lib64/python2.7/site-packages/termcolor-1.1.0-py2.7.egg-info - -Slackware package maker, version 3.14159. - -Searching for symbolic links: - -No symbolic links were found, so we wont make an installation script. -You can make your own later in ./install/doinst.sh and rebuild the -package if you like. - -This next step is optional - you can set the directories in your package -to some sane permissions. If any of the directories in your package have -special permissions, then DO NOT reset them here! - -Would you like to reset all directory permissions to 755 (drwxr-xr-x) and -directory ownerships to root.root ([y]es, [n]o)? n - -Creating Slackware package: /tmp/termcolor-1.1.0-x86_64-1_SBo.tgz - -./ -usr/ -usr/lib64/ -usr/lib64/python2.7/ -usr/lib64/python2.7/site-packages/ -usr/lib64/python2.7/site-packages/termcolor.py -usr/lib64/python2.7/site-packages/termcolor.pyc -usr/lib64/python2.7/site-packages/termcolor-1.1.0-py2.7.egg-info -usr/doc/ -usr/doc/termcolor-1.1.0/ -usr/doc/termcolor-1.1.0/termcolor.SlackBuild -usr/doc/termcolor-1.1.0/README.rst -usr/doc/termcolor-1.1.0/CHANGES.rst -usr/doc/termcolor-1.1.0/PKG-INFO -usr/doc/termcolor-1.1.0/COPYING.txt -install/ -install/slack-desc - -Slackware package /tmp/termcolor-1.1.0-x86_64-1_SBo.tgz created. - -Total build time for package termcolor : 1 Sec -``` - -Upgrade, install the packages like Slackware command '`upgradepkg --install-new`': - -``` -$ slpkg -u --install-new /tmp/termcolor-1.1.0-x86_64-1_SBo.tgz - -+============================================================================== -| Installing new package ./termcolor-1.1.0-x86_64-1_SBo.tgz -+============================================================================== - -Verifying package termcolor-1.1.0-x86_64-1_SBo.tgz. -Installing package termcolor-1.1.0-x86_64-1_SBo.tgz: -PACKAGE DESCRIPTION: -# termcolor (ANSII Color formatting for output in terminal) -# -# termcolor allows you to format your output in terminal. -# -# Project URL: https://pypi.python.org/pypi/termcolor -# -Package termcolor-1.1.0-x86_64-1_SBo.tgz installed. -``` - -Install mass-packages: - -``` -$ slpkg -u --install-new *.t?z -``` - -or - -``` -$ slpkg -i *.t?z -``` - -Slpkg auto detect Slackware binary packages (.tgz, .txz, .tlz and .tbz) for installation: - -``` -$ slpkg pysed-0.7.8-x86_64-1_SBo.tgz - -pysed-0.7.8-x86_64-1_SBo.tgz - -+============================================================================== -| Choose a Slackware command: -+============================================================================== -| i) installpkg -| r) upgradepkg --reinstall -| u) upgradepkg --install-new -+============================================================================== - > _ -``` - -Search packages from the enabled repositories: - -``` -$ slpkg -F aria2 - -Packages with name matching [ aria2 ] - -+============================================================================== -| Repository Package Size -+============================================================================== - sbo aria2-1.18.10 0 K - slonly aria2-1.18.10-x86_64-1_slack.txz 1124 K - salix aria2-1.18.1-x86_64-1rl.txz 1052 K - conrad aria2-1.18.10-x86_64-1cf.txz 1140 K - -Found summary -=============================================================================== -Total found 4 packages in 4 repositories. - - -$ slpkg -F pyqt5 AAA --case-ins - -Packages with name matching [ pyqt5, AAA ] - -+============================================================================== -| Repository Package Size -+============================================================================== - slack aaa_base-14.2-x86_64-1.txz 12 K - slack aaa_elflibs-14.2-x86_64-3.txz 4316 K - slack aaa_terminfo-5.8-x86_64-1.txz 44 K - sbo jaaa-0.8.4 0 K - sbo python3-PyQt5-5.5 0 K - slonly jaaa-0.8.4-x86_64-1_slack.txz 40 K - slonly python3-PyQt5-5.5-x86_64-1_slack.txz 3088 K - -Found summary -=============================================================================== -Total found 7 packages in 3 repositories. -``` - -Find the installed packages: - -``` -$ slpkg -f apr - -Sckages with matching name [ apr ] - -[ installed ] [ 1.1M ] - apr-1.5.2-x86_64-1 -[ installed ] [ 530K ] - apr-util-1.5.4-x86_64-2 -[ installed ] [ 40K ] - xf86dgaproto-2.1-noarch-1 -[ installed ] [ 50K ] - xineramaproto-1.2.1-noarch-1 - -Found summary -=============================================================================== -Total found 4 matching packages. -Size of installed packages 1.71 Mb. - - -$ slpkg -f python --third-party - -Packages with matching name [ python ] - -[ installed ] [ 1.4M ] - bpython-0.17.1-x86_64-1_SBo -[ installed ] [ 590K ] - python-certifi-2018.11.29-x86_64-1_SBo -[ installed ] [ 1.9M ] - python-chardet-3.0.4-x86_64-1_SBo -[ installed ] [ 220K ] - python-libtmux-0.8.0-x86_64-1_SBo -[ installed ] [ 50K ] - python-notify2-0.3.1-x86_64-1_SBo -[ installed ] [ 1.5M ] - python-requests-2.20.1-x86_64-1_SBo -[ installed ] [ 110K ] - python-scandir-1.8-x86_64-1_SBo -[ installed ] [ 1.5M ] - python-urllib3-1.23-x86_64-1_SBo -[ installed ] [ 440K ] - python2-pythondialog-3.4.0-x86_64-1_SBo -[ installed ] [ 120M ] - python3-3.6.7-x86_64-1_SBo - -Found summary -=============================================================================== -Total found 10 matching packages. -Size of installed packages 127.68 Mb. -``` - -Display the contents of the packages: - -``` -$ slpkg -d termcolor lua - -PACKAGE NAME: termcolor-1.1.0-x86_64-1_SBo -COMPRESSED PACKAGE SIZE: 8.0K -UNCOMPRESSED PACKAGE SIZE: 60K -PACKAGE LOCATION: ./termcolor-1.1.0-x86_64-1_SBo.tgz -PACKAGE DESCRIPTION: -termcolor: termcolor (ANSII Color formatting for output in terminal) -termcolor: -termcolor: termcolor allows you to format your output in terminal. -termcolor: -termcolor: -termcolor: Project URL: https://pypi.python.org/pypi/termcolor -termcolor: -termcolor: -termcolor: -termcolor: -FILE LIST: -./ -usr/ -usr/lib64/ -usr/lib64/python2.7/ -usr/lib64/python2.7/site-packages/ -usr/lib64/python2.7/site-packages/termcolor.py -usr/lib64/python2.7/site-packages/termcolor.pyc -usr/lib64/python2.7/site-packages/termcolor-1.1.0-py2.7.egg-info -usr/lib64/python3.3/ -usr/lib64/python3.3/site-packages/ -usr/lib64/python3.3/site-packages/termcolor-1.1.0-py3.3.egg-info -usr/lib64/python3.3/site-packages/__pycache__/ -usr/lib64/python3.3/site-packages/__pycache__/termcolor.cpython-33.pyc -usr/lib64/python3.3/site-packages/termcolor.py -usr/doc/ -usr/doc/termcolor-1.1.0/ -usr/doc/termcolor-1.1.0/termcolor.SlackBuild -usr/doc/termcolor-1.1.0/README.rst -usr/doc/termcolor-1.1.0/CHANGES.rst -usr/doc/termcolor-1.1.0/PKG-INFO -usr/doc/termcolor-1.1.0/COPYING.txt -install/ -install/slack-desc - -No such package lua: Cant find -``` - -Removes a previously installed Slackware binary package: - -``` -$ slpkg -r termcolor - -Packages with name matching [ termcolor ] - -[ delete ] --> termcolor-1.1.0-x86_64-1_SBo - -Removed summary -=============================================================================== -Size of removed packages 50.0 Kb. - -Are you sure to remove 1 package(s) [y/N]? y - -Package: termcolor-1.1.0-x86_64-1_SBo - Removing... - -Removing package /var/log/packages/termcolor-1.1.0-x86_64-1_SBo... - Removing files: ---> Deleting /usr/doc/termcolor-1.1.0/CHANGES.rst ---> Deleting /usr/doc/termcolor-1.1.0/COPYING.txt ---> Deleting /usr/doc/termcolor-1.1.0/PKG-INFO ---> Deleting /usr/doc/termcolor-1.1.0/README.rst ---> Deleting /usr/doc/termcolor-1.1.0/termcolor.SlackBuild ---> Deleting /usr/lib64/python2.7/site-packages/termcolor-1.1.0-py2.7.egg-info ---> Deleting /usr/lib64/python2.7/site-packages/termcolor.py ---> Deleting /usr/lib64/python2.7/site-packages/termcolor.pyc ---> Deleting /usr/lib64/python3.3/site-packages/__pycache__/termcolor.cpython-33.pyc ---> Deleting /usr/lib64/python3.3/site-packages/termcolor-1.1.0-py3.3.egg-info ---> Deleting /usr/lib64/python3.3/site-packages/termcolor.py ---> Deleting empty directory /usr/lib64/python3.3/site-packages/__pycache__/ -WARNING: Unique directory /usr/lib64/python3.3/site-packages/ contains new files -WARNING: Unique directory /usr/lib64/python3.3/ contains new files ---> Deleting empty directory /usr/doc/termcolor-1.1.0/ - -+============================================================================== -| Package: termcolor-1.1.0 removed -+============================================================================== -``` - -Remove packages with all dependencies and check if used as dependency: -(Presupposes install with the option '`slpkg -s `') - -``` -$ slpkg -r Flask --check-deps - -Packages with name matching [ Flask ] - -[ delete ] --> Flask-0.10.1-x86_64-1_SBo - -Removed summary -=============================================================================== -Size of removed packages 1.2 Mb. - -Are you sure to remove 1 package [y/N]? y - -+============================================================================== -| Found dependencies for package Flask: -+============================================================================== -| pysetuptools-18.0.1 -| MarkupSafe-0.23 -| werkzeug-0.9.4 -| Jinja2-2.7.3 -| itsdangerous-0.24 -+============================================================================== -| Size of removed dependencies 5.52 Mb -+============================================================================== - -Remove dependencies (maybe used by other packages) [y/N]? y - - -+============================================================================== -| !!! WARNING !!! -+============================================================================== -| pysetuptools is dependency of the package --> Flask -| MarkupSafe is dependency of the package --> Flask -| werkzeug is dependency of the package --> Flask -| Jinja2 is dependency of the package --> Flask -| itsdangerous is dependency of the package --> Flask -| pysetuptools is dependency of the package --> flake8 -| pysetuptools is dependency of the package --> pip -| pysetuptools is dependency of the package --> pipstat -| pysetuptools is dependency of the package --> pylint -| pysetuptools is dependency of the package --> wcwidth -+============================================================================== -+============================================================================== -| Insert packages to exception remove: -+============================================================================== - > pysetuptools - -. -. -. -+============================================================================== -| Total 5 packages removed -+============================================================================== -| Package Flask-0.10.1 removed -| Package MarkupSafe-0.23 removed -| Package itsdangerous-0.24 removed -| Package Jinja2-2.7.3 removed -| Package werkzeug-0.9.4 removed -+============================================================================== -``` - -Remove the packages with by TAG: - -``` -$ slpkg -r _SBo --tag - -Packages with name matching [ _SBo ] - -[ delete ] --> Jinja2-2.7.3-x86_64-1_SBo -[ delete ] --> MarkupSafe-0.23-x86_64-1_SBo -[ delete ] --> Pafy-0.3.72-x86_64-1_SBo -[ delete ] --> Pulse-Glass-1.02-x86_64-1_SBo -[ delete ] --> Pygments-1.6-x86_64-2_SBo -[ delete ] --> asciinema-1.1.1-x86_64-1_SBo -[ delete ] --> astroid-1.3.8-x86_64-1_SBo -[ delete ] --> autopep8-1.2-x86_64-1_SBo -[ delete ] --> blessings-1.6-x86_64-1_SBo -[ delete ] --> bpython-0.14.2-x86_64-1_SBo -[ delete ] --> cffi-1.1.2-x86_64-1_SBo -[ delete ] --> cryptography-0.8.2-x86_64-1_SBo -[ delete ] --> curtsies-0.1.19-x86_64-1_SBo -[ delete ] --> enum34-1.0.4-x86_64-1_SBo - -Removed summary -=============================================================================== -Size of removed packages 24.61 Mb. - -Are you sure to remove 14 packages [y/N]? -``` - -Remove the packages using dialog utility: - -``` -$ slpkg -r _SBo --tag --checklist -``` - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/pythondialog.png) - -``` -$ slpkg -r Flask --check-deps --checklist -``` - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/pythondialog2.png) - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/pythondialog3.png) - -![alt text](https://gitlab.com/dslackw/images/raw/master/slpkg/pythondialog4.png) - - -Remove only the third-party packages: - -``` -$ slpkg -r python --third-party - -Packages with name matching [ python ] - -[ delete ] --> bpython-0.17.1-x86_64-1_SBo -[ delete ] --> python-certifi-2018.11.29-x86_64-1_SBo -[ delete ] --> python-chardet-3.0.4-x86_64-1_SBo -[ delete ] --> python-libtmux-0.8.0-x86_64-1_SBo -[ delete ] --> python-notify2-0.3.1-x86_64-1_SBo -[ delete ] --> python-requests-2.20.1-x86_64-1_SBo -[ delete ] --> python-scandir-1.8-x86_64-1_SBo -[ delete ] --> python-urllib3-1.23-x86_64-1_SBo -[ delete ] --> python2-pythondialog-3.4.0-x86_64-1_SBo -[ delete ] --> python3-3.6.7-x86_64-1_SBo - -Removed summary -=============================================================================== -Size of removed packages 127.68 Mb. - - -+============================================================================== -| *** WARNING *** -| Before you use third-party option, be sure you have updated the package -| lists. Run the command 'slpkg update' and 'slpkg -c slack --upgrade' -+============================================================================== - -Are you sure to remove 10 packages [y/N]? -``` - -Build and install the packages that have added to the queue: - -``` -$ slpkg -q roxterm SDL2 CEGUI --add - -Add packages in queue: - -roxterm -SDL2 -CEGUI - - -$ slpkg -q roxterm --remove (or '`slpkg -q --remove`' remove all packages) - -Remove packages from queue: - -roxterm - - -$ slpkg -q list - -Packages in queue: - -SDL2 -CEGUI - - -$ slpkg -q build (build only packages from queue) - -$ slpkg -q install (install packages from queue) - -$ slpkg -q build-install (build and install) -``` - -Add or remove packages in blacklist file manually from the '`/etc/slpkg/blacklist`' file or with the following options: - -``` -$ slpkg -b live555 speex faac --add - -Add packages in blacklist: - -live555 -speex -faac - - -$ slpkg -b speex --remove (or 'slpkg -b --remove' remove all packages) - -Remove packages from blacklist: - -speex - - -$ slpkg -b list - -Packages in blacklist: - -live555 -faac - - -``` - -Print a package description: - -``` -$ slpkg -p alien vlc --color=green - -vlc (multimedia player for various audio and video formats) - -VLC media player is a highly portable multimedia player for various -audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, mp3, ogg, ...) -as well as DVDs, VCDs, and various streaming protocols. -It can also be used as a server to stream in unicast or multicast in -IPv4 or IPv6 on a high-bandwidth network. - - -vlc home: http://www.videolan.org/vlc/ -``` - -Man page it is available for full support: - -``` -$ man slpkg -``` - - -##### Python modules - - -Slpkg has been designed it to work as cli tool however you can use some modules in your -own python code. - -Get the package dependencies from the sbo repository: - -``` ->>> from slpkg.sbo.dependency import Requires ->>> Requires(flag="").sbo("vlc") -[['libass', 'libdc1394', 'libdvbpsi', 'libmpeg2', 'libupnp', 'lua', 'portaudio', -'twolame', 'opus', 'ffmpeg', 'libwebp', 'gsm', 'opencv', 'libtar', 'libkate', ' -faac', 'libdca', 'libmatroska', 'libshout', 'speex', 'avahi', 'projectM', 'jack- -audio-connection-kit', 'libsidplay2', 'zvbi', 'faad2', 'libavc1394', 'libmodplug -', 'musepack-tools', 'vcdimager', 'dirac', 'gnome-vfs', 'live555', 'qt5', 'rtmpd -ump', 'libdvdcss', 'fluidsynth', 'schroedinger', 'libminizip', 'chromaprint', 'x -264', 'x265', 'libbluray'], ['libmp4v2'], ['libebml'], ['libdaemon'], ['ftgl'], -['libcuefile', 'libreplaygain'], ['gnome-mime-data', 'libbonobo'], ['ORBit2'], [ -'libxkbcommon', 'libinput'], ['libwacom']] -``` - -Example from binary repository: - -``` ->>> from slpkg.binary.dependency import Dependencies ->>> Dependencies(repo="slonly", black="").binary(name="Flask", flag="") -[['Jinja2', 'click', 'itsdangerous', 'werkzeug'], ['MarkupSafe']] -``` - -Grab packages from the sbo repository: - -``` ->>> from slpkg.sbo.greps import SBoGrep ->>> SBoGrep(name="").names() -... -``` - -Grab the package sources links: - -``` ->>> SBoGrep(name="jdk").source() -'http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe7 -8cdb6d0/jdk-8u152-linux-x64.tar.gz' -``` - -Grap a package requires: - -``` ->>> SBoGrep(name="Flask").requires() -['werkzeug', 'Jinja2', 'itsdangerous', 'click'] -``` - -Grap a package checksum: - -``` ->>> SBoGrep(name="Flask").checksum() -['97278dfdafda98ba7902e890b0289177'] -``` - -Grap a package description: - -``` ->>> SBoGrep(name="Flask").description() -'Flask (Microframework for Python)' -``` - -Grap the package files: - -``` ->>> SBoGrep(name="Flask").files() -'Flask.SlackBuild Flask.info README slack-desc' -``` - -Grab the packages for binary repository: - -``` ->>> from slpkg.binary.greps import repo_data ->>> from slpkg.binary.repo_init import RepoInit ->>> PACKAGES_TXT, mirror = RepoInit("slonly").fetch() ->>> name, location, size, unsize = repo_data(PACKAGES_TXT, repo="slonly", flag="") -``` - -Find a package url from the sbo repository: - -``` -from slpkg.sbo.search import sbo_search_pkg ->>> sbo_search_pkg(name="Flask") -'http://slackbuilds.org/slackbuilds/14.2/python/Flask/' -``` - -Check if the package exist in the binary repository: - -``` ->>> from slpkg.binary.search import search_pkg ->>> search_pkg(name="vlc", repo="alien") -'vlc' -``` - -Read files from the sbo repository: - -``` ->>> from slpkg.sbo.search import sbo_search_pkg ->>> from slpkg.sbo.read import ReadSBo ->>> url = sbo_search_pkg(name="libreoffice") ->>> ReadSBo(url).readme("README") -'LibreOffice is a productivity suite that is compatible with other major\noffice - suites, and available on a variety of platforms. It is free\nsoftware and there -fore free to download, use and distribute.\n\nThis script builds a Slackware pac -kage from the official binary (RPM\'s)\ndistributed by The Document Foundation. - Everything needed by the\napplication should be built statically into it, so th -ere aren\'t any\ndependencies not satisfied by a normal installation.\n\nBe sure - to look at the script for some optional things you can do when\nbuilding.\n\nNO -TE: See the separate SlackBuild script for the language packs.\n\nNOTE2: To keep - LibreOffice installed concurrently with OpenOffice, run the\n included "o -pen-libre-together.sh" script saved in the documentation\n directory of th -is package to patch the .desktop menu files.\n\nNOTE3: LibreOffice versions chan -ge quite often. If the version for which\n this script was written is no l -onger available, look for it at:\n http://download.documentfoundation.org/ -libreoffice/old/stable/\n It will go there after the next release.\n - You can also try building the newer version using:\n # VERSION="x.y.z" ./ -libreoffice.SlackBuild\n This *might* work, but upstream has a habit of ch -anging the naming\n and structure of the files, etc. between versions, so: - YMMV.\n' - ->>> ReadSBo(url).slackbuild("libreoffice", ".SlackBuild") -... - ->>> ReadSBo(url).info("libreoffice", ".info") -'PRGNAM="libreoffice"\nVERSION="5.4.3"\nHOMEPAGE="http://www.libreoffice.org"\nD -OWNLOAD="http://download.documentfoundation.org/libreoffice/stable/5.4.3/rpm/x86 -/LibreOffice_5.4.3_Linux_x86_rpm.tar.gz"\nMD5SUM="bada10945a979537ff42268462fc8b -de"\nDOWNLOAD_x86_64="http://download.documentfoundation.org/libreoffice/stable/ -5.4.3/rpm/x86_64/LibreOffice_5.4.3_Linux_x86-64_rpm.tar.gz"\nMD5SUM_x86_64="4b0b -46a6d2df74a1446837ba76af07fd"\nREQUIRES="jdk"\nMAINTAINER="Willy Sudiarto Raharj -o"\nEMAIL="willysr@slackbuilds.org"\n' - - ->>> ReadSBo(url).doinst("doinst.sh") -'if [ -x /usr/bin/update-desktop-database ]; then\n /usr/bin/update-desktop-dat -abase -q usr/share/applications\nfi\n\nif [ -x /usr/bin/update-mime-database ]; -then\n /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1\nfi\n\nif [ --x /usr/bin/gtk-update-icon-cache ]; then\n for theme in gnome locolor hicolor -; do\n if [ -e usr/share/icons/$theme/icon-theme.cache ]; then\n /usr/b -in/gtk-update-icon-cache -f usr/share/icons/$theme >/dev/null 2>&1\n fi\n do -ne\nfi\' -``` - -Get the Slackware version: - -``` ->>> from slpkg.slack.slack_version import slack_ver ->>> slack_ver() -'14.2' -``` - -Find a Slackware package: - -``` ->>> from slpkg.pkg.find import find_package ->>> find_package(find_pkg="vlc", directory="/var/log/packages/") -['vlc-2.2.6-x86_64-1alien'] -``` - -Check for the installed packages: - -``` ->>> from slpkg.pkg.installed import GetFromInstalled ->>> GetFromInstalled(package="ffmpeg").name() -'ffmpeg' ->>> GetFromInstalled(package="ffmpeg").version() -'3.2.4' -``` - -##### Copyright - -- Copyright 2014-2018 © Dimitris Zlatanidis -- Slackware® is a Registered Trademark of Patrick Volkerding. -- Linux is a Registered Trademark of Linus Torvalds. diff --git a/INSTALL.md b/INSTALL.md deleted file mode 100644 index b4f7ce56..00000000 --- a/INSTALL.md +++ /dev/null @@ -1,23 +0,0 @@ -### Installation - - -##### Python & OS Support - -Slpkg works with Python versions 3.7+ . - -Slpkg works on Slackware distribution and possibly in some Slackware based -distribution like SalixOS, Slackel etc. - - -##### Install slpkg - -There are mainly 2 ways: - -1. Suggested method, download latest slpkg version from: - '`https://gitlab.com/dslackw/slpkg/releases`' - Untar or unzip the archive, change directory in '`slpkg-`' - and run '`./install.sh`'. - slpkg auto-installed as Slackware package (root privileges are required). - -2. Download binary package from '`https://sourceforge.net/projects/slpkg/files/binary/`' - and use Slackware command '`upgradepkg --install-new `' \ No newline at end of file diff --git a/ISSUES b/ISSUES deleted file mode 100644 index 4ae2021a..00000000 --- a/ISSUES +++ /dev/null @@ -1,3 +0,0 @@ -Please report issues: - -https://gitlab.com/dslackw/slpkg/issues diff --git a/KNOWN_ISSUES b/KNOWN_ISSUES deleted file mode 100644 index 68789eb2..00000000 --- a/KNOWN_ISSUES +++ /dev/null @@ -1 +0,0 @@ -Known issues: diff --git a/LICENSE b/LICENSE deleted file mode 100644 index e06c3e15..00000000 --- a/LICENSE +++ /dev/null @@ -1,622 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000..903514ed --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Dimitris Zlatanidis + +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. diff --git a/README.rst b/README.rst index 8d3053e5..8bee51c5 100644 --- a/README.rst +++ b/README.rst @@ -1,8 +1,8 @@ *********** -slpkg 4.0.2 +slpkg 4.1.0 *********** -Slpkg is a powerful software package manager that installs, updates, and removes packages on +Slpkg is a software package manager that installs, updates, and removes packages on `Slackware `_ based systems. It automatically computes dependencies and figures out what things should occur to install packages. Slpkg makes it easier to maintain groups of machines without having to manually update. @@ -11,12 +11,6 @@ Slpkg works in accordance with the standards of the organization `SlackBuilds.or to build packages. Also uses the Slackware Linux instructions for installation, upgrading or removing packages. -What makes slpkg distinguish from the other tools; The user-friendliness it's a primary -target as well as easy to understand and use, also uses colours to highlight packages and -display warning messages, etc. - -Look in the `EXAMPLES.md `_ file to explore some examples. - Install ------- @@ -26,9 +20,9 @@ Install from the official third party `SBo repository + $ slpkg install $ slpkg --help Copyright --------- -Copyright 2014-2022 © Dimitris Zlatanidis. - -Slackware® is a Registered Trademark of Patrick Volkerding. - -Linux is a Registered Trademark of Linus Torvalds. +- Copyright 2014-2022 © Dimitris Zlatanidis. +- Slackware® is a Registered Trademark of Patrick Volkerding. +- Linux is a Registered Trademark of Linus Torvalds. diff --git a/REPOSITORIES.md b/REPOSITORIES.md deleted file mode 100644 index f174c58e..00000000 --- a/REPOSITORIES.md +++ /dev/null @@ -1,56 +0,0 @@ -## This file was created to explain some peculiarities of repositories used by the slpkg. - - -*NOTE: For more informations, refer directly to the repositories* - - -## Default repositories: - -For the -current users who they use the sbo repository: - SlackBuilds.org (sbo) FAQ(15): - Slackware current is not supported, but as a general rule, the scripts - should work on it as well. - -Rworkman's (rlw) repository use dependencies where displayed in a central site - '`http://rlworkman.net/pkgs/`' and only those. Unfortunately there is no fixed reference - dependencies in the file PACKAGES.TXT. You can make changes in '`/etc/slpkg/rlworkman.deps`' - file. - -Conraid's (conrad) repository must be used only from Slackware64 current users and it has no - reference dependencies. - -Slackel.gr (slackl) repository must be used only from Slackware{x86, x86_64} -current users. - -MSB (msb) repository has one ChangeLog.txt file for three sub-repositories {1.14, 1.16, latest}. - So if you have updated the list of packages with the version 1.14 and you want to switch to - version 1.16 you must run '`slpkg upgrade`' instead of '`slpkg update`'. MSB (msb) repository - has no reference to the dependencies. Similarly apply and for the repository Cinnamon (csb) - but with the different versions. Both repositories Mate and Cinnamon support Slackware -current - x86_64 but not x86. - -Slonly repository don't support -current for x86 arch. - -Alien's ktown (ktown), Alien's multilib (multi), Slacke E17 and E18, slack-n-free, csb, - mles and Alien's restricted repository has no reference dependencies. - -IMPORTANT: For Alien's (Eric Hameleers) repositories (alien, multi and ktown) should run - '`slpkg upgrade`' instant '`slpkg update`', if you want to spend from -stable in -current or - not, because there is no different file '`ChangeLog.txt`' for each version. - - -## Custom repositories: - -There is the possibility of adding the repository directly from the user enough to address - the '`PACKAGES.TXT`' files and '`CHECKSUMS.md5`' at least. If not is there file '`ChangeLog.txt`' - will get warning messages that the '`ChangeLog.txt`' file can not be read but not worry, the process - is completed normally have each time you run the command '`slpkg update`' the package lists for such - a repository will be recreated from start automatically. - -Sometimes you may experience some problems with these repositories such as the not correctly - resolve dependencies, and this may happen some specificities separate list which unfortunately - can not be calculated, good is the report these problems. - - -## Slackware ARM repositories: - -Slackware ARM users will must use only two repositories at the moment slack and sbo. diff --git a/THANKS b/THANKS deleted file mode 100644 index 9c1816a3..00000000 --- a/THANKS +++ /dev/null @@ -1,26 +0,0 @@ -I want to Thank: - -Dave Reese - https://github.com/wvragga - - For your interest in the project and the small changes in the code. - -Willy Sudiarto Raharjo - https://github.com/willysr - - For the interesting and valuable advice around the systems of Slackware - and SBo packages. - -Kostas Nikiforakis - Tester - - For the tests in his system. - -LinuxQuestions.org - http://www.linuxquestions.org - - In all members of the community of Slackware forum linuxquestions.org. - -OSarena - http://osarena.net/ - - Many thanks to OSarena website for reporting: - http://osarena.net/slpkg-dnamikos-kai-pio-filikos-package-manager-gia-slackware-kai-paragoges-dianomes - - -Special Thanks at Brenton Earl and Thomas Szteliga for their continuous references. diff --git a/bin/__init__.py b/bin/__init__.py deleted file mode 100644 index 1b592e2e..00000000 --- a/bin/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# [ bin ] directory diff --git a/bin/slpkg b/bin/slpkg index 93bd0158..86d68ec4 100755 --- a/bin/slpkg +++ b/bin/slpkg @@ -1,44 +1,12 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -# slpkg file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -""" - _ _ - ___| |_ __ | | ____ _ -/ __| | '_ \| |/ / _` | -\__ \ | |_) | < (_| | -|___/_| .__/|_|\_\__, | - |_| |___/ - -Slpkg is a user-friendly package manager for Slackware installations -""" from slpkg.main import main -from slpkg.superuser import s_user, virtual_env + if __name__ == "__main__": try: - s_user() - virtual_env() main() except KeyboardInterrupt as err: raise SystemExit(err) diff --git a/clean.py b/clean.py deleted file mode 100755 index 3f2f4f0c..00000000 --- a/clean.py +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# clean.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import shutil - - -class Clean: - """Clean all data like man page, log files, PACKAGES.TXT and - configuration files. This is useful if "slpkg" installed via - "pip" because pip uninstalls only Python packages and script - and not data. So if uninstall with "# pip uninstall slpkg" after - run "# python clean.py" to remove all data and configuration files. - NOTE: Run this script as root.""" - def __init__(self): - self.files = [ - "/usr/man/man8/slpkg.8.gz", - "/etc/bash_completion.d/slpkg.bash-completion", - "/etc/fish/completions/slpkg.fish" - ] - - self.dirs = [ - "/etc/slpkg/", - "/var/log/slpkg/", - "/var/lib/slpkg/", - "/tmp/slpkg/" - ] - - def start(self): - for f in self.files: - - if os.path.isfile(f): - print(f"Remove file --> {f}") - os.remove(f) - - for d in self.dirs: - - if os.path.exists(d): - print(f"Remove directory --> {d}") - shutil.rmtree(d) - - -if __name__ == "__main__": - clean = Clean() - clean.start() diff --git a/conf/blacklist b/conf/blacklist deleted file mode 100644 index 8615a8d1..00000000 --- a/conf/blacklist +++ /dev/null @@ -1,35 +0,0 @@ -# List of blacklist packages: -# -# blacklist file is part of slpkg. -# -# ---------------------------------------------------------------------------- -# This is the blacklist file. Each package listed here may not be -# installed be upgraded be find or deleted. -# NOTE: The settings here affect all repositories. -# -# To blacklist the package 'wicd-1.7.2.4-x86_64-4.txz' the line will be: -# wicd -# -# To blacklist packages that start with name add * the end of the name: -# kernel* -# -# -# Sometimes the automatic kernel update creates problems because you -# may need to file intervention 'lilo'. The slpkg automatically detects -# if the core has been upgraded and running 'lilo'. If you want to avoid -# any problems uncomment the lines below. -# ---------------------------------------------------------------------------- -# -# kernel-firmware -# kernel-generic -# kernel-generic-smp -# kernel-headers -# kernel-huge -# kernel-huge-smp -# kernel-modules -# kernel-modules-smp -# kernel-source -# -# -# aaa_elflibs should NOT be blacklisted! -# diff --git a/conf/custom-repositories b/conf/custom-repositories deleted file mode 100644 index f8e64118..00000000 --- a/conf/custom-repositories +++ /dev/null @@ -1,32 +0,0 @@ -# List File Repositories: -# -# custom-repositories file is part of slpkg. -# -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. -# -# Slpkg is a user-friendly package manager for Slackware installations. -# -# https://gitlab.com/dslackw/slpkg -# -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# END OF LEGAL NOTICE -# -# ---------------------------------------------------------------------------- -# This file is used to read, write and remove custom repositories by -# the user. The repositories will be added here should have a different -# name from existing repositories and the default. Also the URL must have -# contained the PACKAGES.TXT, CHECKSUMS.md5 and optional ChangeLog.txt files. -# ---------------------------------------------------------------------------- -# -# NAME URL diff --git a/conf/default-repositories b/conf/default-repositories deleted file mode 100644 index 5457fb22..00000000 --- a/conf/default-repositories +++ /dev/null @@ -1,53 +0,0 @@ -# List File Repositories: -# -# default-repositories file is part of slpkg. -# -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. -# -# Slpkg is a user-friendly package manager for Slackware installations. -# -# https://gitlab.com/dslackw/slpkg -# -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# END OF LEGAL NOTICE -# -# ---------------------------------------------------------------------------- -# This file provide the URLs from repositories. Change only the URL -# if necessary finishing with "/". For local repository start with -# "file:///" avoid end path with "/". Do NOT change the name of the -# repository. -# -# Default repositories names: -# sbo, slack, rlw, alien, slacky, conrad, slonly, ktown, multi, slacke, salix, -# slackl, rested, msb, csb, connos, mles -# NOTE: Slackware repository (slack) served from file slackware-mirros -# ----------------------------------------------------------------------------- -# -# NAME URL - sbo http://slackbuilds.org/slackbuilds/ - rlw http://slackware.uk/people/rlworkman/ - alien http://bear.alienbase.nl/mirrors/people/alien/sbrepos/ - slacky http://repository.slacky.eu/ - conrad http://slack.conraid.net/repository/slackware64-current/ - slonly https://slackonly.com/pub/packages/ - ktown http://alien.slackbook.org/ktown/ - multi http://bear.alienbase.nl/mirrors/people/alien/multilib/ - slacke http://ngc891.blogdns.net/pub/ - salix http://download.salixos.org/ - slackl http://www.slackel.gr/repo/ - rested http://bear.alienbase.nl/mirrors/people/alien/restricted_slackbuilds/ - msb http://slackware.org.uk/msb/ - csb http://slackware.uk/csb/ - connos https://connochaetos.org/slack-n-free/ - mles http://slackware.uk/microlinux/ diff --git a/conf/pkg_security b/conf/pkg_security deleted file mode 100644 index 8d8fd09b..00000000 --- a/conf/pkg_security +++ /dev/null @@ -1,34 +0,0 @@ -# Security file: -# -# pkg_security file is part of slpkg. -# -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. -# -# Slpkg is a user-friendly package manager for Slackware installations. -# -# https://gitlab.com/dslackw/slpkg -# -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# END OF LEGAL NOTICE -# -# ---------------------------------------------------------------------------- -# For some reasons some packages need extra management and attention before -# build, install or upgrade. So this list of packages will produce one warning -# message before action. -# You can add the packages you that believe need attention or please mention -# to me in the email dslackw@gmail.com -# ---------------------------------------------------------------------------- -# -nvidia-kernel -nvidia-driver diff --git a/conf/repositories.conf b/conf/repositories.conf deleted file mode 100644 index 81c47fc0..00000000 --- a/conf/repositories.conf +++ /dev/null @@ -1,59 +0,0 @@ -# Repositories configuration file for slpkg -# -# repositories.conf file is part of slpkg. -# -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. -# -# Slpkg is a user-friendly package manager for Slackware installations. -# -# https://gitlab.com/dslackw/slpkg -# -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# END OF LEGAL NOTICE -# -# ---------------------------------------------------------------------------- -# conrad (Conraid's) repository must used from Slackware64 current. -# ktown (Alien"s ktown: 4.14.3 and latest) repository. Default ktown{latest}. -# slacke (Enlightenment: E17 and E18) repository. Default slacke{18}. -# msb (Mate: 1.14, 1.16, 1,18, latest) repository. Default msb{1.18} -# mles (Microlinux: desktop, extras, server) repository. Default mles{desktop} -# -# Slackware ARM users will must use only two repositories at the moment slack and sbo. -# -# Slpkg uses by default slack (Slackware) and sbo (SlackBuilds.org) repositories. -# Read the REPOSITORIES file for more instructions. -# -# -# KEEP FILE CLEAN AND UNCOMMENT ONLY REPOSITORIES -# Uncomment (remove the '#' character) to choose repositories: -# Do NOT change the name of the repository. -# ---------------------------------------------------------------------------- -[REPOSITORIES] -slack -sbo -# alien -# rlw -# slacky -# conrad -# slonly -# ktown{latest} -# multi -# slacke{18} -# salix -# slackl -# rested -# msb{1.18} -# csb -# connos -# mles{desktop} diff --git a/conf/rlworkman.deps b/conf/rlworkman.deps deleted file mode 100644 index 45f88cbe..00000000 --- a/conf/rlworkman.deps +++ /dev/null @@ -1,35 +0,0 @@ -# Rworkman's dependencies: -# -# rlworkman.deps file is part of slpkg. -# -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. -# -# Slpkg is a user-friendly package manager for Slackware installations. -# -# https://gitlab.com/dslackw/slpkg -# -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# END OF LEGAL NOTICE -# -# ---------------------------------------------------------------------------- -# Some notes about package dependencies (all deps are also found here): -# Rworkman's repository dependencies as shown in the central page -# http://rlworkman.net/pkgs/ -# ---------------------------------------------------------------------------- -# -# PACKAGE: DEPENDENCIES -abiword: wv -claws-mail: libetpan -inkscape: lxml numpy BeautifulSoup -xfburn: libburn libisofs diff --git a/conf/slackware-mirrors b/conf/slackware-mirrors deleted file mode 100644 index 255e2263..00000000 --- a/conf/slackware-mirrors +++ /dev/null @@ -1,138 +0,0 @@ -# List of Slackware Mirrors copy from: -# http://mirrors.slackware.com/mirrorlist/ -# -# slackware-mirrors file is part of slpkg. -# -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. -# -# Slpkg is a user-friendly package manager for Slackware installations. -# -# https://gitlab.com/dslackw/slpkg -# -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# END OF LEGAL NOTICE -# -# ---------------------------------------------------------------------------- -# Slpkg uses the central mirror "http://mirrors.slackware.com/slackware/" -# to find the nearest one. If however for some reason this troublesome -# please uncomment (remove the '#' character) only one mirror from -# the list available below. You can also add a new mirror in the list -# below. Be careful with the template. -# ---------------------------------------------------------------------------- -# -# -# st Updated: Sun Feb 6 15:54:02 UTC 2022 -# -# Available https mirrors: -# -# ar https://mirrors.eze.sysarmy.com/slackware/ -# ar https://slackware.zero.com.ar/slackware/ -# au https://slackware.mirror.digitalpacific.com.au/ -# au https://syd.mirror.rackspace.com/slackware/ -# bg https://mirror.telepoint.bg/slackware/ -# bg https://mirrors.linux-bulgaria.org/slackware/ -# bg https://mirrors.netix.net/slackware/ -# br https://slackjeff.com.br/slackware/ -# ca https://mirror.csclub.uwaterloo.ca/slackware/ -# ca https://mirror.its.dal.ca/slackware/ -# cn https://mirrors.bfsu.edu.cn/slackware/ -# cr https://mirrors.ucr.ac.cr/slackware/ -# de https://ftp6.gwdg.de/pub/linux/slackware/ -# de https://linux.rz.rub.de/slackware/ -# de https://mirror.de.leaseweb.net/slackware/ -# de https://mirror.netcologne.de/slackware/ -# dk https://mirrors.dotsrc.org/slackware/ -# ec https://mirror.cedia.org.ec/slackware/ -# gb https://lon.mirror.rackspace.com/slackware/ -# gb https://mirror.bytemark.co.uk/slackware/ -# gb https://www.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/ -# gr https://ftp.cc.uoc.gr/mirrors/linux/slackware/ -# hk https://hkg.mirror.rackspace.com/slackware/ -# hkg https://mirror-hk.koddos.net/slackware/ -# hu https://quantum-mirror.hu/mirrors/pub/slackware/ -# id https://iso.ukdw.ac.id/slackware/ -# id https://repo.ukdw.ac.id/slackware/ -# its https://slackware.mirror.garr.it/slackware/ -# lt https://mirrors.atviras.lt/slackware/ -# md https://mirror.ihost.md/slackware/ -# nc https://mirror.lagoon.nc/slackware/ -# nl https://ftp.nluug.nl/os/Linux/distr/slackware/ -# nl https://mirror.koddos.net/slackware/ -# nl https://mirror.nl.leaseweb.net/slackware/ -# pl https://ftp.slackware.pl/pub/slackware/ -# pl https://sunsite.icm.edu.pl/pub/Linux/slackware/ -# pt https://ftp.rnl.tecnico.ulisboa.pt/pub/slackware/ -# ro https://mirrors.nxthost.com/slackware/ -# rub https://mirror.yandex.ru/slackware/ -# sa https://mirror.lyrahosting.com/slackware/ -# se https://ftp.acc.umu.se/mirror/slackware.com/ -# se https://ftpmirror.infania.net/slackware/ -# sk https://mirror.wheel.sk/slackware/ -# tw https://ftp.yzu.edu.tw/Linux/Slackware/ -# ua https://ifconfig.com.ua/slackware/ -# ua https://mirrors.nix.org.ua/linux/slackware/ -# us https://dfw.mirror.rackspace.com/slackware/ -# us https://ftp.ussg.indiana.edu/linux/slackware/ -# ussg https://mirror.cs.princeton.edu/pub/mirrors/slackware/ -# ussg https://mirror.slackbuilds.org/slackware/ -# ussg https://mirrors.kernel.org/slackware/ -# ussg https://mirrors.syringanetworks.net/slackware/ -# ussg https://mirrors.xmission.com/slackware/ -# ussg https://plug-mirror.rcac.purdue.edu/slackware/ -# ussg https://slackware.absolutehosting.net/pub/slackware/ -# -# -# Available http mirrors: -# -# au http://ftp.cc.swin.edu.au/slackware/ -# au http://ftp.swin.edu.au/slackware/ -# au http://mirror.as24220.net/pub/slackware/slackware64-14.2/ -# au http://mirror.internode.on.net/pub/slackware/ -# bg http://mirrors.slackware.bg/slackware/ -# bg http://mirrors.unixsol.org/slackware/ -# bg http://slackware.telecoms.bg/slackware/ -# br http://ftp.slackware-brasil.com.br/ -# br http://linorg.usp.br/slackware/ -# bytemark http://mirror.datacenter.by/pub/slackware/ -# cz http://ftp.linux.cz/pub/linux/slackware/ -# de http://download.dlackware.com/slackware/ -# de http://ftp.tu-chemnitz.de/pub/linux/slackware/ -# de http://mirrors.nav.ro/slackware/ -# fr http://nephtys.lip6.fr/pub/linux/distributions/slackware/ -# fr http://nephtys.lip6.fr/pub/linux/distributions/slackware/ -# fr http://slackware.mirrors.ovh.net/ftp.slackware.com/ -# gb http://slackware.uk/slackware/ -# gr http://ftp.ntua.gr/pub/linux/slackware/ -# hr http://mirror.slackware.hr/slackware/ -# jp http://ftp.nara.wide.ad.jp/pub/Linux/slackware/ -# jp http://ftp.riken.jp/Linux/slackware/ -# lt http://slackware.laukas.lt -# mc http://slackware.qontinuum.space/slackware/ -# nl http://bear.alienbase.nl/mirrors/slackware/ -# nz http://ftp.slackware.org.nz/slackware/ -# ph http://mirror.rise.ph/slackware/ -# plug http://mirror.onet.pl/pub/mirrors/slackware/ -# ru http://slackware.tsu.ru/slackware/ -# sg http://download.nus.edu.sg/mirror/slackware/ -# tr http://ftp.linux.org.tr/slackware/ -# tw http://ftp.isu.edu.tw/pub/Linux/Slackware/ -# ua http://slackware.ip-connect.info/ -# usp http://ftp.slackware.com/pub/slackware/ -# usp http://mirror.lug.udel.edu/pub/slackware/ -# usp http://slackblog.com/slackware/ -# usp http://slackware.cs.utah.edu/pub/slackware/ -# usp http://slackware.mirrors.tds.net/pub/slackware/ -# za http://ftp.is.co.za/mirror/ftp.slackware.com/pub/ -# za http://ftp.wa.co.za/pub/slackware/ -# za http://slackware.mirror.ac.za/ diff --git a/conf/slpkg.bash-completion b/conf/slpkg.bash-completion deleted file mode 100644 index 1ad16262..00000000 --- a/conf/slpkg.bash-completion +++ /dev/null @@ -1,14 +0,0 @@ -_slpkg() -{ - local cur - cur=${COMP_WORDS[COMP_CWORD]} - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W "--autobuild --blacklist --queue --list --check --sync --tracking --print --network --FIND --find --installpkg --upgradepkg --removepkg --display" -- $cur )) - - else - _filedir - fi -} - -complete -F _slpkg slpkg diff --git a/conf/slpkg.conf b/conf/slpkg.conf deleted file mode 100644 index 4cec339a..00000000 --- a/conf/slpkg.conf +++ /dev/null @@ -1,129 +0,0 @@ -# Configuration file for slpkg -# -# slpkg.conf file is part of slpkg. -# -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. -# -# Slpkg is a user-friendly package manager for Slackware installations. -# -# https://gitlab.com/dslackw/slpkg -# -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# END OF LEGAL NOTICE -# -# ---------------------------------------------------------------------------- -# Set Slackware release "stable" or "current". Default is "stable". -RELEASE=stable - -# Set Slackware version if it's necessary. Default is "off". -SLACKWARE_VERSION=off - -# Set computer architecture if it's necessary. Default is "off". -COMP_ARCH=off - -# Build directory for repository "sbo" slackbuilds.org. In this -# directory downloaded sources and scripts for building. -# Default is "/tmp/slpkg/build/". -BUILD_PATH=/tmp/slpkg/build/ - -# Alternative source downloads for the "sbo" repository. Default is "off". -SBOSRCARCH=off -SBOSRCARCH_LINK=http://slackware.uk/sbosrcarch/by-name/ - -# Download directory for others repositories that use binaries files -# for installation. Default is "/tmp/slpkg/packages/" -PACKAGES=/tmp/slpkg/packages/ - -# Download directory for Slackware patches file. -PATCHES=/tmp/slpkg/patches/ - -# If CHECKMD5 is "on" the system will check all downloaded -# sources and Slackware packages. Default is "on". -CHECKMD5=on - -# Delete all downloaded files if DEL_ALL is "on". Default is "on". -DEL_ALL=on - -# Delete build directory after each process if DEL_BUILD is "on". -# Settings for the repository "sbo" slackbuilds.org. Default is "off". -DEL_BUILD=off - -# Keep build log file if SBO_BUILD_LOG is "on". Default is "on". -SBO_BUILD_LOG=off - -# Speed up SlackBuild scripts. If "on" slpkg auto detect the numbers of -# processor and apply into MAKEFLAGS variable. Some SlackBuilds fail if -# MAKEFLAGS is declared or the number of processors (-j ) is greater -# than one. Default if "off". -MAKEFLAGS=off - -# Define default answer to slpkg questions. -# Choose "y" if you do not want to questions. Default is "n". -DEFAULT_ANSWER=n - -# Define default answer for the removal of dependencies. -# Choose "y" if you do not want to question. Default is "n". -REMOVE_DEPS_ANSWER=n - -# If you want build UNSUPPORTED or UNTESTED packages choose "y". -# Settings for the repository "sbo" slackbuilds.org. Default is "n". -SKIP_UNST=n - -# If you want to disable automatic resovle dependencies choose "off". -# Default is "on". -RSL_DEPS=on - -# Delete package dependencies if DEL_DEPS is on. -# You must be careful if you enable this option because it can remove -# packages related to distribution. Default is "off". -DEL_DEPS=off - -# Use colors for highlighting. Choose "on" or "off". Default is "on". -USE_COLORS=on - -# Downloader utility. Four options are supported "wget", "aria2c", -# "curl" and "http" (HTTPie). Default is "wget". -DOWNDER=wget - -# Downloader [OPTION]. Pass downloader options, for curl use "-L -o" as -# using to download in specific directory and support any redirects -# such as from sourceforge repository. aria2c recommended "--allow-overwrite" -# options by default. Http recommended "-d -c -o" options by default. -# Default for wget is "-c -N". -DOWNDER_OPTIONS=-c -N - -# Update slackpkg ChangeLog.txt file if SLACKPKG_LOG is "on". -# Automatically synchronizes the command "slackpkg update" with -# "slpkg -c slack --upgrade". Default is "on". -SLACKPKG_LOG=on - -# This option applies only to the distribution upgrade and repository -# slack (Slackware). If you want to update only packages that are installed -# choose "on". Default is "off". -# NOTE: This option is not recommended at "on" because it can leave out -# packages required for distribution. -ONLY_INSTALLED=off - -# Register a text editor that uses the slpkg in a few options. -# Default is "nano". -EDITOR=nano - -# If you don't want slpkg downgrade packages, setting this variable to "on". -# Warning: Possible failure building packages or running applications after -# install. Default is "off". -NOT_DOWNGRADE=off - -# If you are working under a proxy server you need to set -# your proxy server here. Default is null. -HTTP_PROXY= diff --git a/conf/slpkg.fish b/conf/slpkg.fish deleted file mode 100644 index 3bcaa55f..00000000 --- a/conf/slpkg.fish +++ /dev/null @@ -1,18 +0,0 @@ -complete --command slpkg --long-option help --short-option h --description 'Print this help message and exit.' -complete --command slpkg --long-option version --short-option v --description 'Print program version and exit.' -complete --command slpkg --long-option autobuild --short-option a --description 'Auto build SBo packages. If you already have downloaded the script and the source code you can build a new package with this command.' -complete --command slpkg --long-option blacklist --short-option b --description 'Manage packages in the blacklist. Add or remove packages and print the list. Each package is added here will not be accessible by the program.' -complete --command slpkg --long-option queue --short-option q --description 'Manage SBo packages in the queue. Add or remove and print the list build-install of packages. Build and then install the packages from the queue.' -complete --command slpkg --long-option config --short-option g --description 'Configuration file management. Print the configuration file or edit.' -complete --command slpkg --long-option list --short-option l --description 'Print a list of all available packages repository index or print only packages installed on the system.' -complete --command slpkg --long-option check --short-option c --description 'Check view and install updated packages from repositories.' -complete --command slpkg --long-option sync --short-option s --description 'Sync packages. Install packages directly from remote repositories with all dependencies.' -complete --command slpkg --long-option tracking --short-option t --description 'Tracking package dependencies and print package dependenies tree with highlight if packages is installed.' -complete --command slpkg --long-option print --short-option p --description 'Print description of a package directly from the repository and change color text.' -complete --command slpkg --long-option network --short-option n --description 'View a standard of SBo page in terminal and manage multiple options like reading downloading building installation etc.' -complete --command slpkg --long-option find --short-option f --description 'Find and print installed packages reporting the size and the sum.' -complete --command slpkg --long-option FIND --short-option F --description 'Find packages from repositories and search at each enabled repository and prints results.' -complete --command slpkg --long-option installpkg --short-option i --description 'Installs single or multiple Slackware binary packages.' -complete --command slpkg --long-option upgradepkg --short-option u --description 'Upgrade single or multiple Slackware binary packages from a older to a newer one.' -complete --command slpkg --long-option removepkg --short-option r --description 'Removes a previously installed Slackware binary packages.' -complete --command slpkg --long-option display --short-option d --description 'Display the installed packages contents and file list.' diff --git a/config/slpkg.json b/config/slpkg.json new file mode 100644 index 00000000..a69ed454 --- /dev/null +++ b/config/slpkg.json @@ -0,0 +1,22 @@ +{ + "os_arch": "x86_64", + "tmp_path": "/tmp", + "tmp_slpkg": "/tmp/slpkg", + "build_path": "/tmp/slpkg/build", + "lib_path": "/var/lib/slpkg", + "log_path": "/var/log/slpkg", + "db_path": "/var/lib/slpkg/database", + "sbo_repo_path": "/var/lib/slpkg/repository", + "log_packages": "/var/log/packages", + "database": "database.slpkg", + "repo_version": "15.0", + "sbo_url": "http://slackbuilds.org/slackbuilds/15.0", + "sbo_txt": "SLACKBUILDS.TXT", + "tar_suffix": ".tar.gz", + "pkg_suffix": ".tgz", + "repo_tag": "_SBo", + "installpkg": "upgradepkg --install-new", + "removepkg": "removepkg", + "colors": "on", + "wget_options": "-c -N" +} diff --git a/install.sh b/install.sh index 7851ab93..fc542700 100755 --- a/install.sh +++ b/install.sh @@ -33,7 +33,6 @@ VERSION=${VERSION:-$(__version)} # Installation script. # With this script allows you to install the slpkg as a Slackware package binary file. -# Support wget download. ARCHIVES="$PRGNAM-$VERSION.tar.gz $PRGNAM-$VERSION.zip v$VERSION.tar.gz v$VERSION.zip \ $PRGNAM-$VERSION.tar.bz2" cd .. diff --git a/logo.txt b/logo.txt deleted file mode 100644 index 582d7fbe..00000000 --- a/logo.txt +++ /dev/null @@ -1,10 +0,0 @@ - __ __ - ____| |__ ___ | | ______ __ - / | | ' \ | | / / ` | - / ___| | __ \| |/ / __ | - \ \ | |__) | < (__| | - \____ \ | /| |\ \ | - | / | .___/ |__| \__\___, | - |____/__| | | | - |__| |_____/ - ____________ Slackware package manager _________________________ diff --git a/man/slpkg.1 b/man/slpkg.1 new file mode 100644 index 00000000..5b5c395c --- /dev/null +++ b/man/slpkg.1 @@ -0,0 +1,67 @@ +.TH slpkg 1 "Orestiada, Greece" "slpkg 4.1.0" dslackw +.SH NAME +.P +slpkg - [OPTIONS] [packages] +.SH SYNAPSES +.P +slpkg [-h|-v] [update] [build] [install] [remove] [clean-logs] --yes --resolve-off +.SH DESCRIPTION +.P +Slpkg is a software package manager that installs, updates, and removes packages on Slackware based systems. It automatically computes dependencies and figures out what things should occur to install packages. Slpkg makes it easier to maintain groups of machines without having to manually update. +.P +Slpkg works in accordance with the standards of the organization SlackBuilds.org to build packages. Also uses the Slackware Linux instructions for installation, upgrading or removing packages. +.SH OPTIONS +.P +-h |--help +.RS +Show help informatio and exit. +.RE +.P +-v |--version +.RS +Print version and exit. +.RE +.P +update +.RS +Updates the data packages and the database. +.RE +.P +build +.RS +Builds and creates only the scripts and puts them in the /tmp directory. +.RE +.P +install +.RS +Builds, creates and installs the packages in the correct order and also logs the packages with dependencies to use for removal. +.RE +.P +remove +.RS +Removes packages with dependencies if the packages was installed with slpkg install method. +.RE +.P +clean-logs +.RS +Purge logs of dependencies. +.RE +.P +--yes +.RS +Answer Yes to all questions. +.RE +.P +--resolve-off +.RS +Turns off dependency resolving. +.RE +.SH CONFIGURATION FILE +.P +Configuration file in the /etc/slpkg/slpkg.json file. +.SH REPORT BUGS +.P +Please report any found to https://gitlab.com/dslackw/slpkg/-/issues. +.SH AUTHORS +.P +Dimitris Zlatanidis diff --git a/man/slpkg.8 b/man/slpkg.8 deleted file mode 100644 index 64f36cf8..00000000 --- a/man/slpkg.8 +++ /dev/null @@ -1,402 +0,0 @@ -.\" -*- nroff -*- -.\" Copyright (C) 2014-2022 Dimitris Zlatanidis -.\" -.\" This program is free software: you can redistribute it and/or modify -.\" it under the terms of the GNU General Public License as published by -.\" the Free Software Foundation, either version 3 of the License, or -.\" (at your option) any later version. -.\" -.\" This program is distributed in the hope that it will be useful, -.\" but WITHOUT ANY WARRANTY; without even the implied warranty of -.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -.\" GNU General Public License for more details. -.\" -.TH Slpkg "11" "05" 2022" "slpkg" -.SH NAME -Slpkg is a user-friendly package manager for Slackware installations -.SH SYNOPSIS -slpkg [COMMANDS|OPTIONS] {repository|package...} - -.SH DESCRIPTION -Slpkg is a powerful software package manager that installs, updates, and -removes packages on Slackware based systems. It automatically computes -dependencies and figures out what things should occur to install packages. -Slpkg makes it easier to maintain groups of machines without having to -manually update. - -.SH GLOBAL OPTIONS -\fB\-v\fP, \fB\-\-version\fP -.PP -Print the version of program and exit. - -.SH COMMANDS -.PP -The following commands are available. - -.SS update, create and update packages list -\fBslpkg\fP \fBupdate\fP, \fB--repos=[repositories...]\fP -.PP -Used to re-synchronize the package lists and create some important files. -This command must run every new repository is added or new updates is available. -.PP -Additional options: -.PP -\fB--repos=[repositories...]\fP : Update at specifically repositories separate by comma. - -.SS upgrade, recreate packages list -\fBslpkg\fP \fBupgrade\fP, \fB--repos=[repositories...]\fP -.PP -It is sometimes useful to create all of the base file from the beginning so this -command delete all the package lists and recreated. -.PP -Additional options: -.PP -\fB--repos=[repositories...]\fP : Update at specifically repositories separate by comma. - -.SS repo-add, add custom repository -\fBslpkg\fP \fBrepo-add\fP <\fIrepository name\fP> <\fIURL\fP> -.PP -Add custom binary repository. The repositories will be added to this command should -contain at least the files "PACKAGES.TXT" and "CHECKSUMS.md5" and optional file -"ChangeLog.txt" used to control changes. - -.SS repo-remove, remove custom repository -\fBslpkg\fP \fBrepo-remove\fP <\fIrepository\fP> -.PP -Remove custom repository by name. - -.SS repo-enable, enable or disable repositories -\fBslpkg\fP \fBrepo-enable\fP -.PP -Enable or disable repositories via dialog utility (require python3-pythondialog) - -.SS repo-list, repositories list -\fBslpkg\fP \fBrepo-list\fP -.PP -Lists all enabled or disabled repositories. - -.SS repo-info, repository information -\fBslpkg\fP \fBrepo-info\fP <\fIrepository\fP> -.PP -View repository information. - -.SS update slpkg, update slpkg itself -\fBslpkg\fP \fBupdate\fP \fBslpkg\fP -.PP -You can check for new versions and update slpkg itself. - -.SS health, health check installed packages -\fBslpkg\fP \fBhealth\fP, \fB--silent\fP -.PP -Check file list from packages of files installed. -.PP -Additional options: -.PP -\fB--silent\fP : Print only errors. - -.SS deps-status, print dependencies status -\fBslpkg\fP \fBdeps-status\fP \fB--graph=[type]\fP -.PP -Print dependencies status used by packages. Prerequisite packages have been installed -with the option "# slpkg -s ". -.PP -Additional options: -.PP -\fB--graph=[type]\fP : Drawing dependencies diagram. (example for type: ascii, image.x11, image.png etc. Require pygraphviz) -.PP -\fB--tree\fP : Switch to tree view. - -.SS new-config, manage .new configuration files -\fBslpkg\fP \fBnew-config\fP -.PP -This command searches for .new configuration files in /etc/ path and ask the user what todo with those -files. - -.SS clean-tmp, clean the tmp/ directory -\fBslpkg\fP \fBclean-tmp\fP -.PP -Clean the /tmp/slpkg/ directory from downloaded packages and sources. - -.SH OPTIONS -.PP -The following arguments are available. - -.SS -a, --autobuild, auto build packages -\fBslpkg\fP \fB-a\fP <\fIscript.tar.gz\fP> <\fIsources\fP> -.PP -If you already have download the script and source with this argument you can build Slackware -package from source quickly and easy. Slpkg will grab checksum from the .info file to make control -if he does not agree with the versions you will get the wrong message. If you want switch off -checksum from the configuration file. - -.SS -b, --blacklist, add, remove, view packages in blacklist -\fBslpkg\fP \fB-b\fP <\fIname of packages\fP> \fB--add\fP, \fB--remove\fP, \fBlist\fP -.PP -Add, remove or listed packages from blacklist file. The settings here affect -all repositories. Remove all packages from blacklist use argument like -"# slpkg -b --remove". Use asterisk "*" to match pagkages like "# slpkg -b -py* --add", this add all installed packages with starts string "py" or "# slpkg -b -multi:*multilib* --add", this add all multilib packages from repository "multi". - -.SS -q, --queue, add, remove, view packages in queue -\fBslpkg\fP \fB-q\fP <\fInames of packages\fP> \fB--add\fP, \fB--remove\fP -.TP -\fBslpkg\fP \fB-q\fP \fBlist\fP, \fBbuild\fP, \fBinstall\fP, \fBbuild-install\fP -.PP -Add, remove and listed sbo packages from queue. This argument is very useful if you want -to build and install multiple packages together. Note the correct order if there are -dependencies. If you want to remove all the packages from the list run "# slpkg -q --remove". -(these arguments only working for the sbo repository) -Build or install or build and install packages are queued. - -.SS -g, --config, configuration file management -\fBslpkg\fP \fB-g\fP \fBprint\fP, \fBedit\fP, \fBreset\fP -.PP -Print, reset or edit configuration file. - -.SS -l, --list, list of installed packages -\fBslpkg\fP \fB-l\fP <\fIrepository\fP>, \fB--index\fP, \fB--installed\fP, \fB--name\fP -.PP -Print a list of all available packages from repository, index or print only packages installed on the -system. Support command "grep" like "# slpkg -l sbo | grep python". -.PP -Additional options: -.PP -\fB--index\fP : Count packages per page. -.PP -\fB--installed\fP : Highlight installed packages. -.PP -\fB--name\fP : Print package name only. - -.SS -c, --check, check if your packages is up to date -\fBslpkg\fP \fB-c\fP <\fIrepository\fP> \fB--upgrade\fP \fB--rebuild\fP \fB--skip=[packages...]\fP, \fB--checklist\fP -.PP -Check your packages if up to date. Slackware patches repository works independently of the -others i.e not need before updating the list of packages by choosing "# slpkg update", works -directly with the official repository and so always you can have updated your system. -.PP -Additional options: -.PP -\fB-c \fP : Check ChangeLog.txt files for changes. -.PP -\fB--upgrade\fP : Check and install packages for upgrade. -.PP -\fB--rebuild\fP : Rebuild packages from sbo repository. -.PP -\fB--skip=[packages...]\fP : Skip packages from upgrade separate by comma like "# slpkg -c sbo --skip=jdk,pep8,pip" (See REGEX). -.PP -\fB--checklist\fP : Enable dialog utility and checklist option. (Require python3-pythondialog) - -.SS -s, --sync, synchronize packages, download, build and install package with all dependencies -\fBslpkg\fP \fB-s\fP <\fIrepository\fP> <\fInames of packages\fP>, \fB--case-ins\fP, \fB--patches\fP -.PP -Installs or upgrade packages from the repositories with automatically resolving all -dependencies of the package. -.PP -Additional options: -.PP -\fB--rebuild\fP : Rebuild packages from sbo repository. -.PP -\fB--reinstall\fP : Reinstall binary packages from repositories. -.PP -\fB--case-ins\fP : Search package name in repository with case insensitive. -.PP -\fB--patches\fP : Switch to patches\ directory, only for slack repository. - -.SS -t, --tracking, tracking dependencies -\fBslpkg\fP \fB-t\fP <\fIrepository\fP> <\fIname of package\fP>, \fB--check-deps\fP, \fB--graph=[type]\fP \fB--case-ins\fP -.PP -Tracking all dependencies of that package. -The sequence shown is that you must follow to correctly install package. -Also you can check if the installed package has all the required dependencies. -.PP -Additional options: -.PP -\fB--check-deps\fP : Check if installed packages used by other packages. -.PP -\fB--graph=[type]\fP : Drawing dependencies graph. (example for type: ascii, image.x11, image.png etc. Require pygraphviz) -.PP -\fB--case-ins\fP : Search package name in repository with case insensitive. - -.SS -p, --desc, print packages description -\fBslpkg\fP \fB-p\fP <\fIrepository\fP> <\fIname of package\fP>, \fB--color=[]\fP -.PP -Print package description from remote repository with color. Available colors: -red, green, yellow, cyan, grey -.PP -Additional options: -.PP -\fB--color=[]\fP : Change color print. - -.SS -F, --FIND, find packages from repositories -\fBslpkg\fP \fB-F\fP <\fInames of packages\fP>, \fI--case-ins\fP -.PP -Find packages from all repositories are enabled. Useful command to find all available -packages per repository. -.PP -Additional options: -.PP -\fB--case-ins\fP : Search package name in repository with case insensitive. - -.SS -f, --find, find installed packages -\fBslpkg\fP \fB-f\fP <\fInames of packages\fP>, \fB--case-ins\fP, \fB--third-party\fP -.PP -Find installed packages with view total file size. -Example you can view all installed sbo packages like "# slpkg -f _SBo". -.PP -Additional options: -.PP -\fB--case-ins\fP : Search package name with case insensitive. -.PP -\fB--third-party\fP : View all the third-party packages. - -.SS -n, --network, view SBo packages -\fBslpkg\fP \fB-n\fP <\fIname of package\fP>, <\fI[pattern], --checklist\fP>, \fB--case-ins\fP -.PP -View complete slackbuilds.org site in your terminal. Read file, download, -build or install etc. Use "--checklist" additional option to load all repository, example: -"# slpkg -n --checklist". -.PP -Additional options: -.PP -\fB--checklist\fP : Enable dialog utility and checklist option. (Require python3-pythondialog) -.PP -\fB--case-ins\fP : Search package name in repository with case insensitive. - -.SS -i, --installpkg, install Slackware binary packages -\fBslpkg\fP \fB-i\fP \fB[--warn, --md5sum, --root /otherroot, --infobox, --menu, --terse, ---ask, --priority ADD|REC|OPT|SKP, --tagfile /somedir/tagfile]\fP <\fIpackages.t?z\fP> -.PP -Installs single binary packages designed for use with the Slackware Linux -distribution into your system. More information please read "man installpkg". - -.SS -u, --upgradepkg, install-upgrade Slackware binary packages with new -\fBslpkg\fP \fB-u\fP \fB[--dry-run, --install-new, --reinstall, --verbose]\fP <\fIpackages.t?z\fP> -.PP -Normally upgrade only upgrades packages that are already installed on the system, -and will skip any packages that do not already have a version installed. -More information please read "man upgradepkg". - -.SS -r, --removepkg, remove previously installed Slackware binary packages -\fBslpkg\fP \fB-r\fP \fB[-copy, -keep, -preserve, -warn]\fP <\fInames of packages\fP>, \fB--deps\fP, \fB--check-deps\fP, \fB--tag\fP, \fB--checklist\fP, \fB--third-party\fP -.PP -Removes a previously installed Slackware package, while writing a progress report to -the standard output. A package may be specified either by the full package name (as -you'd see listed in /var/log/packages/), or by the base package name. If installed -packages with command "# slpkg -s " then write a file in /var/log/slpkg/dep/ -with all dependencies and it allows you can remove them all together. -More information please read "man removepkg". -.PP -Additional options: -.PP -\fB--deps\fP : Remove packages with dependencies. -.PP -\fB--check-deps\fP : Check if installed packages used by other packages. -.PP -\fB--tag\fP : Remove packages with by TAG. -.PP -\fB--checklist\fP : Enable dialog utility and checklist option. (Require python3-pythondialog) -.PP -\fB--third-party\fP : Remove all the third-party packages. (Be sure update the package lists before) - -.SS -d, --display, display the installed packages contents and file list -\fBslpkg\fP \fB-d\fP <\fInames of packages\fP> -.PP -Display the installed Slackware packages contents and file list with all descriptions. - -.SH HELP OPTION -Specifying the help option displays help for slpkg itself, or a -command. -.br -For example: - \fBslpkg \-\-help\fP - display help for slpkg - -.SH DEFAULT REPOSITORIES - slackware.com = "slack" - SlackBuilds.org = "sbo" - Alien's = "alien" - slacky.eu = "slacky" - rworkman's = "rlw" - Conraid's = "conrad" - slackonly.com = "slonly" - Alien's ktown = "ktown{latest}" - Alien's multilib = "multi" - Slacke E17 and E18 = "slacke{18}" - SalixOS = "salix" - Slackel.gr = "slackel" - Alien's restricted = "rested" - MATE Desktop Environment = "msb{1.18}" - Cinnamon Desktop Environment = "csb" - Connochaetos slack-n-free = "connos" - Microlinux mles = "mles" - - Default enable repository is "slack" and "sbo". - Add or remove default repository in configuration file "/etc/slpkg/repositories.conf". - Read REPOSITORIES file for particularities. - -.SH COLORS - red, green, yellow, cyan, grey - -.SH REGEX - For options "--skip=" and blacklist file. - - All packages starts with: "string*" - All packages ends with: "*string" - All packages include: "*string*" - -.SH PASS VARIABLES TO THE SCRIPT - If you want to pass variables to the script exported as: - Usage: - - Example: - "# export FFMPEG_X264=yes FFMPEG_LAME=yes" - -.SH FILES -/etc/slpkg/slpkg.conf - General configuration of slpkg - -/etc/slpkg/repositories.conf - Configuration file for repositories - -/etc/slpkg/blacklist - List of packages to skip - -/etc/slpkg/slackware-mirrors - List of Slackware Mirrors - -/etc/slpkg/default-repositories - List of default repositories - -/etc/slpkg/custom-repositories - List of custom repositories - -/etc/slpkg/rlworkman.deps - Rworkman's repository dependencies - -/etc/slpkg/pkg_security - List of packages for security reasons - -/var/log/slpkg - ChangeLog.txt repositories files - SlackBuilds logs and dependencies files - -/var/lib/slpkg - PACKAGES.TXT files - SLACKBUILDS.TXT files - CHECKSUMS.md5 files - FILELIST.TXT files - -/tmp/slpkg - Slpkg temporary downloaded files and build packages - - -.SH AUTHOR -Dimitris Zlatanidis -.SH HOMEPAGE -https://dslackw.gitlab.io/slpkg/ -.SH COPYRIGHT -Copyright \(co 2014-2022 Dimitris Zlatanidis - -.SH SEE ALSO -installpkg(8), upgradepkg(8), removepkg(8), pkgtool(8), slackpkg(8), explodepkg(8), -makepkg(8). diff --git a/man/slpkg.html b/man/slpkg.html deleted file mode 100644 index f8294d6a..00000000 --- a/man/slpkg.html +++ /dev/null @@ -1,726 +0,0 @@ - - - - - - - - - -Slpkg - - - - -

Slpkg

- -NAME
-SYNOPSIS
-DESCRIPTION
-GLOBAL OPTIONS
-COMMANDS
-OPTIONS
-HELP OPTION
-DEFAULT REPOSITORIES
-COLORS
-REGEX
-PASS VARIABLES TO THE SCRIPT
-FILES
-AUTHOR
-HOMEPAGE
-COPYRIGHT
-SEE ALSO
- -
- - -

NAME - -

- - -

Slpkg is a -user-friendly package manager for Slackware -installations

- -

SYNOPSIS - -

- - -

slpkg -[COMMANDS|OPTIONS] {repository|package...}

- -

DESCRIPTION - -

- - -

Slpkg is a -powerful software package manager that installs, updates, -and removes packages on Slackware based systems. It -automatically computes dependencies and figures out what -things should occur to install packages. Slpkg makes it -easier to maintain groups of machines without having to -manually update.

- -

GLOBAL OPTIONS - -

- - - -

−v, -−−version

- -

Print the -version of program and exit.

- -

COMMANDS - -

- - -

The following -commands are available.

- -

update, -create and update packages list
-slpkg update
, ---repos=[repositories...]

- -

Used to -re-synchronize the package lists and create some important -files. This command must run every new repository is added -or new updates is available.

- -

Additional -options:

- - -

--repos=[repositories...] -: Update at specifically repositories separate by comma.

- -

upgrade, -recreate packages list
-slpkg upgrade
, ---repos=[repositories...]

- -

It is sometimes -useful to create all of the base file from the beginning so -this command delete all the package lists and recreated.

- -

Additional -options:

- - -

--repos=[repositories...] -: Update at specifically repositories separate by comma.

- -

repo-add, -add custom repository
-slpkg repo-add
<repository name> -<URL>

- -

Add custom -binary repository. The repositories will be added to this -command should contain at least the files -"PACKAGES.TXT" and "CHECKSUMS.md5" and -optional file "ChangeLog.txt" used to control -changes.

- - -

repo-remove, -remove custom repository
-slpkg repo-remove
<repository>

- -

Remove custom -repository by name.

- - -

repo-enable, -enable or disable repositories
-slpkg repo-enable

- -

Enable or -disable repositories via dialog utility (require -python3-pythondialog)

- -

repo-list, -repositories list
-slpkg repo-list

- -

Lists all -enabled or disabled repositories.

- -

repo-info, -repository information
-slpkg repo-info
<repository>

- -

View repository -information.

- -

update -slpkg, update slpkg itself
-slpkg update slpkg

- -

You can check -for new versions and update slpkg itself.

- -

health, -health check installed packages
-slpkg health
, --silent

- -

Check file list -from packages of files installed.

- -

Additional -options:

- - -

--silent -: Print only errors.

- - -

deps-status, -print dependencies status
-slpkg deps-status --graph=[type]

- -

Print -dependencies status used by packages. Prerequisite packages -have been installed with the option "# slpkg -s -<repository> <packages>".

- -

Additional -options:

- - -

--graph=[type] -: Drawing dependencies diagram. (example for type: ascii, -image.x11, image.png etc. Require pygraphviz)

- -

--tree : -Switch to tree view.

- -

new-config, -manage .new configuration files
-slpkg new-config

- -

This command -searches for .new configuration files in /etc/ path and ask -the user what todo with those files.

- -

clean-tmp, -clean the tmp/ directory
-slpkg clean-tmp

- -

Clean the -/tmp/slpkg/ directory from downloaded packages and -sources.

- -

OPTIONS - -

- - -

The following -arguments are available.

- -

-a, ---autobuild, auto build packages
-slpkg -a
<script.tar.gz> -<sources>

- -

If you already -have download the script and source with this argument you -can build Slackware package from source quickly and easy. -Slpkg will grab checksum from the .info file to make control -if he does not agree with the versions you will get the -wrong message. If you want switch off checksum from the -configuration file.

- -

-b, ---blacklist, add, remove, view packages in blacklist
-slpkg -b
<name of packages> --add, ---remove, list

- -

Add, remove or -listed packages from blacklist file. The settings here -affect all repositories. Remove all packages from blacklist -use argument like "# slpkg -b --remove". Use -asterisk "*" to match pagkages like "# slpkg --b py* --add", this add all installed packages with -starts string "py" or "# slpkg -b -multi:*multilib* --add", this add all multilib packages -from repository "multi".

- -

-q, --queue, -add, remove, view packages in queue
-slpkg -q
<names of packages> --add, ---remove
-slpkg -q list
, build, install, -build-install

- -

Add, remove and -listed sbo packages from queue. This argument is very useful -if you want to build and install multiple packages together. -Note the correct order if there are dependencies. If you -want to remove all the packages from the list run "# -slpkg -q --remove". (these arguments only working for -the sbo repository) Build or install or build and install -packages are queued.

- -

-g, ---config, configuration file management
-slpkg -g print
, edit, reset

- -

Print, reset or -edit configuration file.

- -

-l, --list, -list of installed packages
-slpkg -l
<repository>, --index, ---installed, --name

- -

Print a list of -all available packages from repository, index or print only -packages installed on the system. Support command -"grep" like "# slpkg -l sbo | grep -python".

- -

Additional -options:

- -

--index -: Count packages per page.

- - -

--installed -: Highlight installed packages.

- -

--name : -Print package name only.

- -

-c, --check, -check if your packages is up to date
-slpkg -c
<repository> --upgrade ---rebuild --skip=[packages...], --checklist

- -

Check your -packages if up to date. Slackware patches repository works -independently of the others i.e not need before updating the -list of packages by choosing "# slpkg update", -works directly with the official repository and so always -you can have updated your system.

- -

Additional -options:

- -

-c : -Check ChangeLog.txt files for changes.

- - -

--upgrade -: Check and install packages for upgrade.

- - -

--rebuild -: Rebuild packages from sbo repository.

- - -

--skip=[packages...] -: Skip packages from upgrade separate by comma like "# -slpkg -c sbo --skip=jdk,pep8,pip" (See REGEX).

- - -

--checklist -: Enable dialog utility and checklist option. (Require -python3-pythondialog)

- -

-s, --sync, -synchronize packages, download, build and install package -with all dependencies
-slpkg -s
<repository> <names of -packages>, --case-ins, ---patches

- -

Installs or -upgrade packages from the repositories with automatically -resolving all dependencies of the package.

- -

Additional -options:

- - -

--rebuild -: Rebuild packages from sbo repository.

- - -

--reinstall -: Reinstall binary packages from repositories.

- - -

--case-ins -: Search package name in repository with case -insensitive.

- - -

--patches -: Switch to patches directory, only for slack -repository.

- -

-t, ---tracking, tracking dependencies
-slpkg -t
<repository> <name of -package>, --check-deps, --graph=[type] ---case-ins

- -

Tracking all -dependencies of that package. The sequence shown is that you -must follow to correctly install package. Also you can check -if the installed package has all the required -dependencies.

- -

Additional -options:

- - -

--check-deps -: Check if installed packages used by other packages.

- - -

--graph=[type] -: Drawing dependencies graph. (example for type: ascii, -image.x11, image.png etc. Require pygraphviz)

- - -

--case-ins -: Search package name in repository with case -insensitive.

- -

-p, --desc, -print packages description
-slpkg -p
<repository> <name of -package>, --color=[]

- -

Print package -description from remote repository with color. Available -colors: red, green, yellow, cyan, grey

- -

Additional -options:

- - -

--color=[] -: Change color print.

- -

-F, --FIND, -find packages from repositories
-slpkg -F
<names of packages>, ---case-ins

- -

Find packages -from all repositories are enabled. Useful command to find -all available packages per repository.

- -

Additional -options:

- - -

--case-ins -: Search package name in repository with case -insensitive.

- -

-f, --find, -find installed packages
-slpkg -f
<names of packages>, ---case-ins, --third-party

- -

Find installed -packages with view total file size. Example you can view all -installed sbo packages like "# slpkg -f _SBo".

- -

Additional -options:

- - -

--case-ins -: Search package name with case insensitive.

- - -

--third-party -: View all the third-party packages.

- -

-n, ---network, view SBo packages
-slpkg -n
<name of package>, -<[pattern], --checklist>, --case-ins

- -

View complete -slackbuilds.org site in your terminal. Read file, download, -build or install etc. Use "--checklist" additional -option to load all repository, example: "# slpkg -n ---checklist".

- -

Additional -options:

- - -

--checklist -: Enable dialog utility and checklist option. (Require -python3-pythondialog)

- - -

--case-ins -: Search package name in repository with case -insensitive.

- -

-i, ---installpkg, install Slackware binary packages
-slpkg -i [--warn, --md5sum, --root /otherroot, --infobox, ---menu, --terse, --ask, --priority ADD|REC|OPT|SKP, ---tagfile /somedir/tagfile]
-<packages.t?z>

- -

Installs single -binary packages designed for use with the Slackware Linux -distribution into your system. More information please read -"man installpkg".

- -

-u, ---upgradepkg, install-upgrade Slackware binary packages with -new
-slpkg -u [--dry-run, --install-new, --reinstall, ---verbose]
<packages.t?z>

- -

Normally -upgrade only upgrades packages that are already installed on -the system, and will skip any packages that do not already -have a version installed. More information please read -"man upgradepkg".

- -

-r, ---removepkg, remove previously installed Slackware binary -packages
-slpkg -r [-copy, -keep, -preserve, -warn]
<names -of packages>, --deps, --check-deps, ---tag, --checklist, --third-party

- -

Removes a -previously installed Slackware package, while writing a -progress report to the standard output. A package may be -specified either by the full package name (as you’d -see listed in /var/log/packages/), or by the base package -name. If installed packages with command "# slpkg -s -<repo> <packages>" then write a file in -/var/log/slpkg/dep/ with all dependencies and it allows you -can remove them all together. More information please read -"man removepkg".

- -

Additional -options:

- -

--deps : -Remove packages with dependencies.

- - -

--check-deps -: Check if installed packages used by other packages.

- -

--tag : -Remove packages with by TAG.

- - -

--checklist -: Enable dialog utility and checklist option. (Require -python3-pythondialog)

- - -

--third-party -: Remove all the third-party packages. (Be sure update the -package lists before)

- -

-d, ---display, display the installed packages contents and file -list
-slpkg -d
<names of packages>

- -

Display the -installed Slackware packages contents and file list with all -descriptions.

- -

HELP OPTION - -

- - -

Specifying the -help option displays help for slpkg itself, or a command. -
-For example:
-slpkg −−help
- display help for slpkg

- -

DEFAULT REPOSITORIES - -

- - -

slackware.com = -"slack"
-SlackBuilds.org = "sbo"
-Alien’s = "alien"
-slacky.eu = "slacky"
-rworkman’s = "rlw"
-Conraid’s = "conrad"
-slackonly.com = "slonly"
-Alien’s ktown = "ktown{latest}"
-Alien’s multilib = "multi"
-Slacke E17 and E18 = "slacke{18}"
-SalixOS = "salix"
-Slackel.gr = "slackel"
-Alien’s restricted = "rested"
-MATE Desktop Environment = "msb{1.18}"
-Cinnamon Desktop Environment = "csb"
-Connochaetos slack-n-free = "connos"
-Microlinux mles = "mles"

- -

Default enable -repository is "slack" and "sbo".
-Add or remove default repository in configuration file -"/etc/slpkg/repositories.conf".
-Read REPOSITORIES file for particularities.

- -

COLORS - -

- - -

red, green, -yellow, cyan, grey

- -

REGEX - -

- - -

For options -"--skip=" and blacklist file.

- -

All packages -starts with: "string*"
-All packages ends with: "*string"
-All packages include: "*string*"

- -

PASS VARIABLES TO THE SCRIPT - -

- - -

If you want to -pass variables to the script exported as:
-Usage: <NAME_VARIABLE=value>

- -

Example:
-"# export FFMPEG_X264=yes FFMPEG_LAME=yes"

- -

FILES - -

- - - -

/etc/slpkg/slpkg.conf -
-General configuration of slpkg

- - -

/etc/slpkg/repositories.conf -
-Configuration file for repositories

- - -

/etc/slpkg/blacklist -
-List of packages to skip

- - -

/etc/slpkg/slackware-mirrors -
-List of Slackware Mirrors

- - -

/etc/slpkg/default-repositories -
-List of default repositories

- - -

/etc/slpkg/custom-repositories -
-List of custom repositories

- - -

/etc/slpkg/rlworkman.deps -
-Rworkman’s repository dependencies

- - -

/etc/slpkg/pkg_security -
-List of packages for security reasons

- -

/var/log/slpkg -
-ChangeLog.txt repositories files
-SlackBuilds logs and dependencies files

- -

/var/lib/slpkg -
-PACKAGES.TXT files
-SLACKBUILDS.TXT files
-CHECKSUMS.md5 files
-FILELIST.TXT files

- -

/tmp/slpkg
-Slpkg temporary downloaded files and build packages

- -

AUTHOR - -

- - -

Dimitris -Zlatanidis <d.zlatanidis@gmail.com>

- -

HOMEPAGE - -

- - - -

https://dslackw.gitlab.io/slpkg/

- -

COPYRIGHT - -

- - -

Copyright -© 2014-2022 Dimitris Zlatanidis

- -

SEE ALSO - -

- - -

installpkg(8), -upgradepkg(8), removepkg(8), pkgtool(8), slackpkg(8), -explodepkg(8), makepkg(8).

-
- - diff --git a/requirements.txt b/requirements.txt index d4f26dd4..e6e2854c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,16 +1,2 @@ -# Slackware Linux (based) -# Python 3.7+ -# GNU wget -# GNU coreutils -# sqlite3 -# progress -# SQLAlchemy -# -# [OPTIONAL] -# aria2 (alternative downloader) -# curl (alternative downloader) -# httpie (alternative downloader) -# pygraphviz >= 1.3.1 (drawing dependencies diagram) -# perl 5 language and graph-easy >= 0.75 (drawing dependencies ascii diagram) -# python3-pythondialog >= 3.5.0 (Python interface to the UNIX dialog utility) -# flake8 >= 3.5.0 +SQLAlchemy>=1.4.36 + diff --git a/setup.py b/setup.py index 52fbaa27..3e532880 100755 --- a/setup.py +++ b/setup.py @@ -1,102 +1,47 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -# setup.py file is part of slpkg. -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +from setuptools import setup +from slpkg.metadata import Metadata -import os -import time -from slpkg.__metadata__ import MetaData as _meta_ - -try: - from setuptools import setup -except ImportError: - from distutils.core import setup - -docs_requires = [] -tests_requires = [] -install_requires = [ - "SQLAlchemy>=1.4.36", - "progress>=1.6" -] -optional_requires = [ - "pythondialog>=3.5.1", - "pygraphviz>=1.3.1" -] - -# Non-Python/non-PyPI optional dependencies: -# ascii diagram: graph-easy (available from SBo repository) - - -def print_logo(): - """print slpkg logo""" - logo_fname = os.path.join(os.path.dirname(__file__), 'logo.txt') - with open(logo_fname, 'rb') as f: - logo = f.read().decode('utf-8') - print(logo) - time.sleep(0.5) - - -print_logo() +install_requires = ['SQLAlchemy>=1.4.36'] setup( - name="slpkg", - packages=["slpkg", "slpkg/sbo", "slpkg/pkg", "slpkg/slack", - "slpkg/binary", "slpkg/models"], - scripts=["bin/slpkg"], - version=_meta_.__version__, - description="Package manager for Slackware installations", - long_description=open("README.rst").read(), - keywords=["slackware", "slpkg", "upgrade", "install", "remove", - "view", "slackpkg", "tool", "build"], - author=_meta_.__author__, - author_email=_meta_.__email__, - url="https://dslackw.gitlab.io/slpkg/", - package_data={"": ["LICENSE", "README.rst", "CHANGELOG"]}, - data_files=[("man/man8", ["man/slpkg.8"]), - ("/etc/bash_completion.d", ["conf/slpkg.bash-completion"]), - ("/etc/fish/completions", ["conf/slpkg.fish"]), - ("/var/lib/slpkg/database", [])], + name='slpkg', + packages=['slpkg', 'slpkg/models', 'slpkg/views'], + scripts=['bin/slpkg'], + version=Metadata.version, + description='Package manager for Slackware installations', + long_description=open('README.rst').read(), + keywords=['slackware', 'slpkg', 'update', 'build', 'install', 'remove', + 'slackpkg', 'tool'], + author=Metadata.author, + author_email=Metadata.email, + url='https://dslackw.gitlab.io/slpkg/', + package_data={'': ['LICENSE', 'README.rst', 'ChangeLog.txt']}, + data_files=[('/etc/slpkg', ['config/slpkg.json']), + ('/var/lib/slpkg/database', []), + ('/var/lib/slpkg/repository', []), + ('/tmp/slpkg/build', [])], install_requires=install_requires, - extras_require={ - "optional": optional_requires, - "docs": docs_requires, - "tests": tests_requires, - }, classifiers=[ - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Operating System :: POSIX :: Linux", - "Operating System :: Unix", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Unix Shell", - "Topic :: Software Development :: Build Tools", - "Topic :: System :: Archiving :: Packaging", - "Topic :: System :: Software Distribution", - "Topic :: System :: Installation/Setup", - "Topic :: System :: Systems Administration", - "Topic :: System :: Software Distribution", - "Topic :: Utilities"], - python_requires=">=3.7" + 'Development Status :: 5 - Production/Stable', + 'Environment :: Console', + 'License :: OSI Approved :: MIT License', + 'Operating System :: POSIX :: Linux', + 'Operating System :: Unix', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Unix Shell', + 'Topic :: Software Development :: Build Tools', + 'Topic :: System :: Archiving :: Packaging', + 'Topic :: System :: Software Distribution', + 'Topic :: System :: Installation/Setup', + 'Topic :: System :: Systems Administration', + 'Topic :: System :: Software Distribution', + 'Topic :: Utilities'], + python_requires='>=3.9' ) diff --git a/slackbuild/README b/slackbuild/README index ef10d2b7..b4665f85 100644 --- a/slackbuild/README +++ b/slackbuild/README @@ -3,10 +3,3 @@ and removes packages on Slackware based systems. It automatically computes dependencies and figures out what things should occur to install packages. Slpkg makes it easier to maintain groups of machines without having to manually update. - -Optional dependencies: - python3-pythondialog (for dialog box interface) - pygraphviz (for drawing dependencies diagram) - graph-easy (for drawing ascii dependencies diagram) - aria2 (alternative downloader) - httpie (alternative downloader) diff --git a/slackbuild/doinst.sh b/slackbuild/doinst.sh index 8eb6acd1..095e2b41 100644 --- a/slackbuild/doinst.sh +++ b/slackbuild/doinst.sh @@ -8,12 +8,8 @@ config() { fi } -CONFIGS="slpkg.conf repositories.conf blacklist slackware-mirrors default-repositories \ - custom-repositories rlworkman.deps pkg_security" -for file in $CONFIGS; do - config etc/slpkg/${file}.new -done +config etc/slpkg/slpkg.json.new if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 -fi \ No newline at end of file +fi diff --git a/slackbuild/slpkg.SlackBuild b/slackbuild/slpkg.SlackBuild index f54decc8..5126f27d 100755 --- a/slackbuild/slpkg.SlackBuild +++ b/slackbuild/slpkg.SlackBuild @@ -90,26 +90,18 @@ find -L . \ python3 setup.py install --root=$PKG +mkdir -p $PKG/usr/sbin +cp bin/slpkg $PKG/usr/sbin/slpkg + find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true # install configuration files mkdir -p $PKG/etc/slpkg -CONFIGS="slpkg.conf repositories.conf blacklist slackware-mirrors \ - default-repositories custom-repositories rlworkman.deps pkg_security" -for file in $CONFIGS; do - install -D -m0644 conf/$file $PKG/etc/slpkg/${file}.new -done - -# keep original configuration file for reset -cp -p conf/slpkg.conf $PKG/etc/slpkg/slpkg.conf.orig - -find $PKG/usr/man -type f -exec gzip -9 {} \; -for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +install -D -m0644 conf/slpkg.json $PKG/etc/slpkg/slpkg.json.new mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a README.rst ChangeLog.txt LICENSE ISSUES KNOWN_ISSUES REPOSITORIES.md \ - INSTALL.md requirements.txt $PKG/usr/doc/$PRGNAM-$VERSION +cp -a README.rst ChangeLog.txt LICENSE requirements.txt $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install diff --git a/slpkg/__init__.py b/slpkg/__init__.py index ee3482ea..2ec89ad5 100644 --- a/slpkg/__init__.py +++ b/slpkg/__init__.py @@ -1 +1 @@ -# [ slpkg ] directory +from main import Flags diff --git a/slpkg/__metadata__.py b/slpkg/__metadata__.py deleted file mode 100644 index d2a2bebf..00000000 --- a/slpkg/__metadata__.py +++ /dev/null @@ -1,255 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# __metadata__.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - - -# Slackware distribution branches -STABLE = "stable" -CURRENT = "current" - - -def remove_repositories(repositories, default_repositories): - """Removes no default repositories - """ - for repo in repositories: - if repo in default_repositories: - yield repo - - -def update_repositories(repositories, conf_path): - """Upadate with user custom repositories - """ - repo_file = f"{conf_path}custom-repositories" - if os.path.isfile(repo_file): - f = open(repo_file, "r") - repositories_list = f.read() - f.close() - for line in repositories_list.splitlines(): - line = line.lstrip() - if line and not line.startswith("#"): - repositories.append(line.split()[0]) - return repositories - - -def grab_sub_repo(repositories, repos): - """Grabs SUB_REPOSITORY - """ - for i, repo in enumerate(repositories): - if repos in repo: - sub = repositories[i].replace(repos, "") - repositories[i] = repos - return sub - return "" - - -def select_slack_release(slack_rel): - """Warning message if Slackware release not defined or - defined wrong - """ - if slack_rel not in [STABLE, CURRENT]: - return "FAULT" - return slack_rel - - -class MetaData: - - __all__ = "slpkg" - __author__ = "dslackw" - __version_info__ = (4, 0, 2) - __version__ = "{0}.{1}.{2}".format(*__version_info__) - __license__ = "GNU General Public License v3 (GPLv3)" - __email__ = "d.zlatanidis@gmail.com" - __maintainer__ = "Dimitris Zlatanidis (dslackw)" - __homepage__ = "https://dslackw.gitlab.io/slpkg/" - - # Default Slackware release - slack_rel = STABLE - - # Configuration path - conf_path = f"/etc/{__all__}/" - - # tmp paths - tmp = "/tmp/" - tmp_path = f"{tmp}{__all__}/" - - # Default configuration values - _conf_slpkg = { - "RELEASE": STABLE, - "SLACKWARE_VERSION": "off", - "COMP_ARCH": "off", - "REPOSITORIES": ["slack", "sbo", "rlw", "alien", - "slacky", "conrad", "slonly", - "ktown{latest}", "multi", "slacke{18}", - "salix", "slackl", "rested", "msb{1.18}", - "csb", "connos", "mles{desktop}"], - "BUILD_PATH": "/tmp/slpkg/build/", - "SBOSRCARCH": "off", - "SBOSRCARCH_LINK": "http://slackware.uk/sbosrcarch/by-name/", - "PACKAGES": "/tmp/slpkg/packages/", - "PATCHES": "/tmp/slpkg/patches/", - "CHECKMD5": "on", - "DEL_ALL": "on", - "DEL_BUILD": "off", - "SBO_BUILD_LOG": "on", - "MAKEFLAGS": "off", - "DEFAULT_ANSWER": "n", - "REMOVE_DEPS_ANSWER": "n", - "SKIP_UNST": "n", - "RSL_DEPS": "on", - "DEL_DEPS": "off", - "USE_COLORS": "on", - "DOWNDER": "wget", - "DOWNDER_OPTIONS": "-c -N", - "SLACKPKG_LOG": "on", - "ONLY_INSTALLED": "off", - "EDITOR": "nano", - "NOT_DOWNGRADE": "off", - "HTTP_PROXY": "", - } - - default_repositories = ["slack", "sbo", "rlw", "alien", "slacky", "conrad", - "slonly", "ktown", "multi", "slacke", "salix", - "slackl", "rested", "msb", "csb", "connos", "mles"] - - # reads values from the configuration file - repositories = [] - for files in ["slpkg.conf", "repositories.conf"]: - if os.path.isfile(f"{conf_path}{files}"): - f = open(f"{conf_path}{files}", "r") - conf = f.read() - f.close() - for line in conf.splitlines(): - line = line.lstrip() - if line and not line.startswith("#"): - if files == "slpkg.conf": - _conf_slpkg[line.split("=")[0]] = line.split("=")[1] - elif files == "repositories.conf": - repositories.append(line) - - # Sets values from the configuration file - slack_rel = _conf_slpkg["RELEASE"] - slackware_version = _conf_slpkg["SLACKWARE_VERSION"] - comp_arch = _conf_slpkg["COMP_ARCH"] - build_path = _conf_slpkg["BUILD_PATH"] - sbosrcarch = _conf_slpkg["SBOSRCARCH"] - sbosrcarch_link = _conf_slpkg["SBOSRCARCH_LINK"] - slpkg_tmp_packages = _conf_slpkg["PACKAGES"] - slpkg_tmp_patches = _conf_slpkg["PATCHES"] - checkmd5 = _conf_slpkg["CHECKMD5"] - del_all = _conf_slpkg["DEL_ALL"] - del_folder = _conf_slpkg["DEL_BUILD"] - sbo_build_log = _conf_slpkg["SBO_BUILD_LOG"] - makeflags = _conf_slpkg["MAKEFLAGS"] - default_answer = _conf_slpkg["DEFAULT_ANSWER"] - remove_deps_answer = _conf_slpkg["REMOVE_DEPS_ANSWER"] - skip_unst = _conf_slpkg["SKIP_UNST"] - rsl_deps = _conf_slpkg["RSL_DEPS"] - del_deps = _conf_slpkg["DEL_DEPS"] - use_colors = _conf_slpkg["USE_COLORS"] - downder = _conf_slpkg["DOWNDER"] - downder_options = _conf_slpkg["DOWNDER_OPTIONS"] - slackpkg_log = _conf_slpkg["SLACKPKG_LOG"] - only_installed = _conf_slpkg["ONLY_INSTALLED"] - editor = _conf_slpkg["EDITOR"] - not_downgrade = _conf_slpkg["NOT_DOWNGRADE"] - http_proxy = _conf_slpkg["HTTP_PROXY"] - - # SBo downloading sources path - SBo_SOURCES = build_path + "_SOURCES/" - - # Removes any gaps - repositories = [repo.strip() for repo in repositories] - - # Checks Slackware release - slack_rel = select_slack_release(slack_rel) - - # Grabs sub repositories - ktown_kde_repo = grab_sub_repo(repositories, "ktown") - slacke_sub_repo = grab_sub_repo(repositories, "slacke") - msb_sub_repo = grab_sub_repo(repositories, "msb") - mles_sub_repo = grab_sub_repo(repositories, "mles") - - # removes no default repositories - repositories = list(remove_repositories(repositories, - default_repositories)) - # adds custom repositories - update_repositories(repositories, conf_path) - - color = { - "RED": "\x1b[31m", - "GREEN": "\x1b[32m", - "YELLOW": "\x1b[33m", - "CYAN": "\x1b[36m", - "GREY": "\x1b[38;5;247m", - "ENDC": "\x1b[0m" - } - - if use_colors in ["off", "OFF"]: - color = { - "RED": "", - "GREEN": "", - "YELLOW": "", - "CYAN": "", - "GREY": "", - "ENDC": "" - } - - CHECKSUMS_link = (f"https://gitlab.com/{__author__}/{__all__}/raw/" - "master/CHECKSUMS.md5") - - # current path - try: - path = os.getcwd() + "/" - except OSError: - path = tmp_path - - # library path - lib_path = "/var/lib/slpkg/" - - # log path - log_path = "/var/log/slpkg/" - - # packages log files path - pkg_path = "/var/log/packages/" - - # slackpkg lib path - slackpkg_lib_path = "/var/lib/slackpkg/" - - # database name - db = "database/database.slpkg" - - # computer architecture - if comp_arch in ["off", "OFF"]: - arch = os.uname()[4] - else: - arch = comp_arch - - # gets sbo OUTPUT enviroment variable - try: - output = os.environ["OUTPUT"] - except KeyError: - output = tmp - if not output.endswith("/"): - output += "/" diff --git a/slpkg/arguments.py b/slpkg/arguments.py deleted file mode 100644 index c5a00e44..00000000 --- a/slpkg/arguments.py +++ /dev/null @@ -1,228 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# arguments.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.repolist import RepoList -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.slack.slack_version import slack_ver - - -def header(): - """help header message""" - print(f"slpkg - version {_meta_.__version__} | Slackware release: " - f"{_meta_.slack_rel} - {slack_ver()}\n") - - -def options(): - """Slpkg is a user-friendly package manager for Slackware installations - -Usage: slpkg [COMMANDS|OPTIONS] {repository|package...} - - _ _ - ___| |_ __ | | ____ _ - / __| | '_ \| |/ / _` | - \__ \ | |_) | < (_| | - |___/_| .__/|_|\_\__, | - |_| |___/ - _Slackware package manager_______ - -Commands: - update, --repos=[...] Run this command to update all - the packages lists. - - upgrade, --repos=[...] Delete and recreate all packages - lists. - - repo-add [repository name] [URL] Add custom repository. - - repo-remove [repository] Remove custom repository. - - repo-enable Enable or disable default - repositories via dialog utility. - - repo-list Print a list of all the - repositories. - - repo-info [repository] Get information about a - repository. - - update slpkg Upgrade the program directly from - repository. - - health, --silent Health check installed packages. - - deps-status, --tree, --graph=[type] Print dependencies status used by - packages or drawing dependencies - diagram. - - new-config Manage .new configuration files. - - clean-tmp Clean the tmp/ directory from - downloaded packages and sources. -Optional arguments: - -h | --help Print this help message and exit. - - -v | --version Print program version and exit. - - -a | --autobuild, [script] [source...] Auto build SBo packages. - If you have already downloaded the - script and the source code you can - build a new package with this - command. - - -b | --blacklist, [package...] --add, Manage packages in the blacklist. - --remove, list Add or remove packages and print - the list. Each package is added - here will not be accessible by the - program. - - -q | --queue, [package...] --add, Manage SBo packages in the queue. - --remove, list, build, install, Add or remove and print the list - build-install of packages. Build and then - install the packages from the - queue. - - -g | --config, print, edit, reset Configuration file management. - Print, edit the configuration file - or reset in the default values. - - -l | --list, [repository], --index, Print a list of all available - --installed, --name packages from repository, index or - print only packages installed on - the system. - - -c | --check, [repository], --upgrade, Check for updated packages from - --rebuild --skip=[...], the repositories and upgrade or - --resolve-off, --checklist install with all dependencies. - - -s | --sync, [repository] [package...], Sync packages. Install packages - --rebuild, --reinstall, directly from remote repositories - --case-ins, --patches with all dependencies. - - -t | --tracking, [repository] [package], Tracking package dependencies and - --check-deps, --graph=[type], print package dependencies tree - --case-ins with highlight if packages is - installed. Also check if - dependencies used or drawing - dependencies diagram. - - -p | --desc, [repository] [package], Print description of a package - --color=[] directly from the repository and - change color text. - - -n | --network, [package], --checklist, View a standard of SBo page in - --case-ins terminal and manage multiple - options like reading, downloading, - building, installation, etc. - - -F | --FIND, [package...], --case-ins Find packages from each enabled - repository and view results. - - -f | --find, [package...], --case-ins, Find and print installed packages - --third-party reporting the size and the sum. - - -i | --installpkg, [options] [package...] Installs single or multiple *.tgz - options=[--warn, --md5sum, --root, (or .tbz, .tlz, .txz) Slackware - --infobox, --menu, --terse, --ask, binary packages designed for use - --priority, --tagfile] with the Slackware Linux - distribution onto your system. - - -u | --upgradepkg, [options] [package...] Upgrade single or multiple - options=[--dry-run, --install-new, Slackware binary packages from - --reinstall, --verbose] an older version to a newer one. - - -r | --removepkg, [options] [package...], Removes a previously installed - --deps, --check-deps, --tag, Slackware binary packages, - --checklist, --third-party while writing a progress report - options=[-warn, -preserve, -copy, to the standard output. - -keep] Use only package name. - - -d | --display, [package...] Display the contents of installed - packages and file list. - -You can read more about slpkg from manpage or see examples from readme file. -Issues: https://gitlab.com/dslackw/slpkg/issues -Homepage: https://dslackw.gitlab.io/slpkg/ -""" - header() - print(options.__doc__) - - -def usage(repo, stderr): - """Usage: slpkg [COMMANDS|OPTIONS] {repository|package...} - - Commands: - [update, --repos=[...]] - [upgrade, --repos=[...]] - [repo-add [repository name] [URL]] - [repo-remove [repository]] - [repo-enable] - [repo-list] - [repo-info [repository]] - [update [slpkg]] - [health, --silent] - [deps-status, --tree, --graph=[type]] - [new-config] - [clean-tmp] - - Optional arguments: - [-h] [-v] - [-a [script] [sources...]] - [-b [package...] --add, --remove, - [list]] - [-q [package...] --add, --remove, - [list, build, install, build-install]] - [-g [print, edit, reset]] - [-l [repository], --index, --installed, --name] - [-c [repository], --upgrade, --rebuild, --skip=[...], - --resolve-off, --checklist] - [-s [repository] [package...], --rebuild, --reinstall, - --case-ins, --patches] - [-t [repository] [package], --check-deps, --graph=[type], - --case-ins] - [-p [repository] [package], --color=[]] - [-n [SBo package], --checklist, --case-ins] - [-F [package...], --case-ins] - [-f [package...], --case-ins, --third-party] - [-i [options] [package...]] - [-u [options] [package...]] - [-r [options] [package...], --deps, --check-deps, --tag, - --checklist, --third-party] - [-d [package...]] - """ - if repo and repo not in _meta_.repositories: - error_repo = "" - all_repos = RepoList().all_repos.keys() - del RepoList().all_repos - if repo in all_repos: - error_repo = (f"slpkg: Error: Repository '{repo}' is not activated" - "\n") - else: - error_repo = (f"slpkg: Error: Repository '{repo}' does not exist" - "\n") - raise SystemExit(f"\n{error_repo}") - print(usage.__doc__) - print("For more information try 'slpkg -h, --help' or view manpage\n") - if stderr == 1: - raise SystemExit(stderr) diff --git a/slpkg/auto_pkg.py b/slpkg/auto_pkg.py deleted file mode 100644 index 8c19bcd8..00000000 --- a/slpkg/auto_pkg.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# auto_pkg.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.messages import Msg -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.manager import PackageManager - - -class AutoInstall: - """Select the Slackware command to install packages - """ - def __init__(self, packages): - self.packages = packages - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.cyan = _meta_.color["CYAN"] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.commands = { - "i": "installpkg", - "u": "upgradepkg --install-new", - "r": "upgradepkg --reinstall" - } - - def select(self): - """Select Slackware command - """ - print("\nDetected Slackware binary package for installation:\n") - - for pkg in self.packages: - print(" " + pkg.split("/")[-1]) - - print() - - self.msg.template(78) - print("| Choose a Slackware command:") - self.msg.template(78) - - for com in sorted(self.commands): - print(f"| {self.red}{com}{self.endc}) {self.green}" - f"{self.commands[com]}{self.endc}") - - self.msg.template(78) - - try: - self.choice = input(" > ") - except EOFError: - raise SystemExit("\n") - - if self.choice in self.commands.keys(): - print(f" \x1b[1A{self.cyan}{self.commands[self.choice]}" - f"{self.endc}", end="\n\n") - print(end="", flush=True) - - self.execute() - - def execute(self): - """Executes Slackware command - """ - if self.choice in self.commands.keys(): - - if self.choice == "i": - PackageManager(self.packages).install("") - - elif self.choice in ["u", "r"]: - PackageManager(self.packages).upgrade( - self.commands[self.choice][11:]) diff --git a/slpkg/binary/__init__.py b/slpkg/binary/__init__.py deleted file mode 100644 index 508f2ef0..00000000 --- a/slpkg/binary/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# [ binarys ] directory diff --git a/slpkg/binary/check.py b/slpkg/binary/check.py deleted file mode 100644 index 2d64a64c..00000000 --- a/slpkg/binary/check.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# check.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from pkg_resources import parse_version - -from slpkg.messages import Msg -from slpkg.splitting import split_package -from slpkg.upgrade_checklist import choose_upg -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package - -from slpkg.binary.greps import repo_data -from slpkg.binary.repo_init import RepoInit - - -def pkg_upgrade(repo, skip, flag): - """Checking packages for upgrade - """ - msg = Msg() - msg.checking() - PACKAGES_TXT = RepoInit(repo).fetch()[0] - pkgs_for_upgrade = [] - - # name = data[0] - # location = data[1] - # size = data[2] - # unsize = data[3] - data = repo_data(PACKAGES_TXT, repo, flag="") - - for pkg in installed(): - inst_pkg = split_package(pkg) - - for name in data[0]: - - if name: # this tips because some pkg_name is empty - repo_pkg = split_package(name[:-4]) - - if (repo_pkg[0] == inst_pkg[0] and - parse_version(repo_pkg[1]) > parse_version(inst_pkg[1]) and - repo_pkg[3] >= inst_pkg[3] and - inst_pkg[0] not in skip and - repo_pkg[1] != "blacklist"): - pkgs_for_upgrade.append(repo_pkg[0]) - - msg.done() - - if "--checklist" in flag: - pkgs_for_upgrade = choose_upg(pkgs_for_upgrade) - - return pkgs_for_upgrade - - -def installed(): - """Returns all installed packages - """ - return find_package("", _meta_.pkg_path) diff --git a/slpkg/binary/dependency.py b/slpkg/binary/dependency.py deleted file mode 100644 index 3045e208..00000000 --- a/slpkg/binary/dependency.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# dependency.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import sys -from functools import lru_cache - -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.binary.greps import Requires - - -class Dependencies: - """Resolving binary dependencies - """ - def __init__(self, repo, black): - self.repo = repo - self.black = black - self.dep_results = [] - self.meta = _meta_ - - def binary(self, name, flag): - """Builds all dependencies of a package - """ - if self.meta.rsl_deps in ["on", "ON"] and "--resolve-off" not in flag: - sys.setrecursionlimit(10000) - dependencies = [] - requires = Requires(name, self.repo).get_deps() - - if requires: - - for req in requires: - - if req and req not in self.black: - dependencies.append(req) - - self.deep_check(tuple(dependencies), tuple(flag)) - - return self.dep_results - - else: - return [] - - @lru_cache - def deep_check(self, dependencies, flag): - """Checking if dependencies are finnished - """ - if dependencies: - self.dep_results.append(dependencies) - [self.binary(dep, flag) for dep in dependencies] diff --git a/slpkg/binary/greps.py b/slpkg/binary/greps.py deleted file mode 100644 index 125560a5..00000000 --- a/slpkg/binary/greps.py +++ /dev/null @@ -1,284 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# greps.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from functools import lru_cache -from slpkg.utils import Utils -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.slack.slack_version import slack_ver - - -def repo_data(PACKAGES_TXT, repo, flag): - """Grabs data packages - """ - (name, location, size, unsize, - rname, rlocation, rsize, runsize) = ([] for i in range(8)) - - for line in PACKAGES_TXT.splitlines(): - - if line.startswith("PACKAGE NAME:"): - name.append(line[15:].strip()) - - if line.startswith("PACKAGE LOCATION:"): - location.append(line[21:].strip()) - - if line.startswith("PACKAGE SIZE (compressed):"): - size.append(line[28:-2].strip()) - - if line.startswith("PACKAGE SIZE (uncompressed):"): - unsize.append(line[30:-2].strip()) - - if repo == "slack" and "--upgrade" not in flag: - (rname, - rlocation, - rsize, - runsize - ) = slack_filter(name, location, size, unsize, flag) - - elif repo == "rlw": - (rname, - rlocation, - rsize, - runsize - ) = rlw_filter(name, location, size, unsize) - - elif repo == "alien": - (rname, - rlocation, - rsize, - runsize - ) = alien_filter(name, location, size, unsize) - - elif repo == "rested": - (rname, - rlocation, - rsize, - runsize - ) = rested_filter(name, location, size, unsize) - - elif repo == "ktown": - (rname, - rlocation, - rsize, - runsize - ) = ktown_filter(name, location, size, unsize) - - else: - rname, rlocation, rsize, runsize = name, location, size, unsize - - return [rname, rlocation, rsize, runsize] - - -def slack_filter(name, location, size, unsize, flag): - """Slackware filter seperate packages from patches/ directory - """ - (fname, flocation, fsize, funsize) = ([] for i in range(4)) - - if "--patches" not in flag: - - for n, l, s, u in zip(name, location, size, unsize): - - if f"_slack{slack_ver()}" not in n: - fname.append(n) - flocation.append(l) - fsize.append(s) - funsize.append(u) - - if "--patches" in flag: - - for n, l, s, u in zip(name, location, size, unsize): - - if f"_slack{slack_ver()}" in n: - fname.append(n) - flocation.append(l) - fsize.append(s) - funsize.append(u) - - return [fname, flocation, fsize, funsize] - - -def rlw_filter(name, location, size, unsize): - """Filter rlw repository data - """ - arch = _meta_.arch - - if arch.startswith("i") and arch.endswith("86"): - arch = "i486" - - (fname, flocation, fsize, funsize) = ([] for i in range(4)) - - for n, l, s, u in zip(name, location, size, unsize): - - loc = l.split("/") - - if arch == loc[-1]: - fname.append(n) - flocation.append(l) - fsize.append(s) - funsize.append(u) - - return [fname, flocation, fsize, funsize] - - -def alien_filter(name, location, size, unsize): - """Fix to avoid packages include in slackbuilds folder - """ - (fname, flocation, fsize, funsize) = ([] for i in range(4)) - - for n, l, s, u in zip(name, location, size, unsize): - - if "slackbuilds" != l: - fname.append(n) - flocation.append(l) - fsize.append(s) - funsize.append(u) - - return [fname, flocation, fsize, funsize] - - -def rested_filter(name, location, size, unsize): - """Filter Alien"s repository data - """ - ver = slack_ver() - if _meta_.slack_rel == "current": - ver = "current" - - path_pkg = "pkg" - - if _meta_.arch == "x86_64": - path_pkg = "pkg64" - - (fname, flocation, fsize, funsize) = ([] for i in range(4)) - - for n, l, s, u in zip(name, location, size, unsize): - - if path_pkg == l.split("/")[-2] and ver == l.split("/")[-1]: - fname.append(n) - flocation.append(l) - fsize.append(s) - funsize.append(u) - - return [fname, flocation, fsize, funsize] - - -def ktown_filter(name, location, size, unsize): - """Filter Alien"s ktown repository data - """ - ver = slack_ver() - - if _meta_.slack_rel == "current": - ver = "current" - - path_pkg = "x86" - - if _meta_.arch == "x86_64": - path_pkg = _meta_.arch - - (fname, flocation, fsize, funsize) = ([] for i in range(4)) - - for n, l, s, u in zip(name, location, size, unsize): - - if (path_pkg in l and _meta_.ktown_kde_repo[1:-1] in l and - l.startswith(ver)): - fname.append(n) - flocation.append(l) - fsize.append(s) - funsize.append(u) - - return [fname, flocation, fsize, funsize] - - -class Requires: - - def __init__(self, name, repo): - self.name = name - self.repo = repo - - def get_deps(self): - """Grabs package requirements from repositories - """ - if self.repo == "rlw": - - dependencies = {} - rlw_deps = Utils().read_file(_meta_.conf_path + "rlworkman.deps") - - for line in rlw_deps.splitlines(): - - if line and not line.startswith("#"): - pkgs = line.split(":") - dependencies[pkgs[0]] = pkgs[1] - - if self.name in dependencies.keys(): - return dependencies[self.name].split() - - else: - return "" - - else: - PACKAGES_TXT = Utils().read_file(f"{_meta_.lib_path}" - f"{self.repo}_repo/PACKAGES.TXT") - - for line in PACKAGES_TXT.splitlines(): - - if line.startswith("PACKAGE NAME:"): - pkg_name = split_package(line[14:].strip())[0] - - if line.startswith("PACKAGE REQUIRED:"): - - if pkg_name == self.name: - - if line[18:].strip(): - return self._req_fix(line) - - @lru_cache - def _req_fix(self, line): - """Fix slacky and salix requirements because many dependencies - splitting with "," and others with "|" - """ - deps = [] - - for dep in line[18:].strip().split(","): - dep = dep.split("|") - - if self.repo == "slacky": - - if len(dep) > 1: - - for d in dep: - deps.append(d.split()[0]) - - dep = "".join(dep) - deps.append(dep.split()[0]) - - else: - - if len(dep) > 1: - - for d in dep: - deps.append(d) - - deps.append(dep[0]) - - return deps diff --git a/slpkg/binary/install.py b/slpkg/binary/install.py deleted file mode 100644 index f60de9cc..00000000 --- a/slpkg/binary/install.py +++ /dev/null @@ -1,403 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# install.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -from itertools import zip_longest -from pkg_resources import parse_version - -from slpkg.utils import Utils -from slpkg.sizes import units -from slpkg.messages import Msg -from slpkg.checksum import check_md5 -from slpkg.blacklist import BlackList -from slpkg.downloader import Download -from slpkg.log_deps import write_deps -from slpkg.grep_md5 import pkg_checksum -from slpkg.remove import delete_package -from slpkg.security import pkg_security -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package -from slpkg.pkg.manager import PackageManager -from slpkg.pkg.installed import GetFromInstalled - -from slpkg.binary.greps import repo_data -from slpkg.binary.repo_init import RepoInit -from slpkg.binary.dependency import Dependencies - - -class BinaryInstall(BlackList, Utils): - """Installs binaries packages with all dependencies from - repository - """ - def __init__(self, packages, repo, flag): - super().__init__() - self.packages = packages - pkg_security(packages) - self.repo = repo - self.flag = flag - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.grey = _meta_.color["GREY"] - self.yellow = _meta_.color['YELLOW'] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.version = self.meta.slack_rel - self.tmp_path = self.meta.slpkg_tmp_packages - self.dwn, self.dep_dwn = [], [] - self.install, self.dep_install = [], [] - self.comp_sum, self.dep_comp_sum = [], [] - self.uncomp_sum, self.dep_uncomp_sum = [], [] - self.dependencies = [] - self.deps_dict = {} - self.answer = "" - self.msg.reading() - self.PACKAGES_TXT, self.mirror = RepoInit(self.repo).fetch() - self.data = repo_data(self.PACKAGES_TXT, self.repo, self.flag) - self.repo_pkg_names = [] - - for name in self.data[0]: - self.repo_pkg_names.append(split_package(name)[0]) - - self.blacklist = list(self.get_black()) - self.matching = False - - def start(self, is_upgrade): - """Installs packages from official Slackware distribution - """ - self.case_insensitive() - # fix if packages is for upgrade - self.is_upgrade = is_upgrade - mas_sum = dep_sum = sums = 0, 0, 0, 0 - self.msg.done() - self.dependencies = self.resolving_deps() - self.update_deps() - - (self.dep_dwn, self.dep_install, self.dep_comp_sum, - self.dep_uncomp_sum) = self.store(self.dependencies) - - self.clear_masters() - - (self.dwn, self.install, self.comp_sum, - self.uncomp_sum) = self.store(self.packages) - - if self.meta.rsl_deps in ["on", "ON"]: - self.msg.done() - - if self.install: - - if self.matching and [""] != self.packages: - self.msg.matching(self.packages) - - else: - print("\nThe following packages will be automatically " - "installed or upgraded \nwith new version:\n") - self.top_view() - - self.msg.upg_inst(self.is_upgrade) - - mas_sum = self.views(self.install, self.comp_sum) - - if self.dependencies: - print("Installing for dependencies:") - dep_sum = self.views(self.dep_install, self.dep_comp_sum) - - # sums[0] --> total packages - # sums[1] --> reinstall - # sums[2] --> upgraded - # sums[3] --> uninstall - - sums = [sum(s) for s in zip_longest(mas_sum, dep_sum)] - unit, size = units(self.comp_sum + self.dep_comp_sum, - self.uncomp_sum + self.dep_uncomp_sum) - - if self.matching and [""] != self.packages: - print("\nMatching summary") - print("=" * 79) - raise SystemExit(f"Total {sums[0]} matching packages\n") - - print("\nInstalling summary") - print("=" * 79) - print(f"{self.grey}Total {sums[0]} {self.msg.pkg(sums[0])}.") - print(f"{sums[3]} {self.msg.pkg(sums[3])} will be installed, " - f"{sums[2]} will be upgraded and " - f"{sums[1]} will be reinstalled.") - print(f"Need to get {size[0]} {unit[0]} of archives.") - print(f"After this process, {size[1]} {unit[1]} of additional " - f"disk space will be used.{self.endc}") - - print() - - self.if_all_installed() - - if self.msg.answer() in ["y", "Y"]: - - for inst, dwn in zip(self.dep_install + self.install, - self.dep_dwn + self.dwn): - - if (self.meta.not_downgrade == "on" and - self.not_downgrade(inst) is True): - continue - - if (not os.path.isfile(self.meta.pkg_path + inst[:-4]) or - "--reinstall" in self.flag): - Download(self.tmp_path, dwn.split(), self.repo).start() - - else: - self.msg.template(78) - self.msg.pkg_found(inst) - self.msg.template(78) - - self.dep_install = list(self.check_downloaded( - self.tmp_path, self.dep_install)) - - self.install = list(self.check_downloaded( - self.tmp_path, self.install)) - - ins, upg = self.install_packages() - - self.msg.reference(ins, upg) - - write_deps(self.deps_dict) - delete_package(self.tmp_path, self.dep_install + self.install) - - else: - self.msg.not_found(self.is_upgrade) - raise SystemExit(1) - - def if_all_installed(self): - """Checks if all packages is already installed - """ - count_inst = 0 - - for inst in (self.dep_install + self.install): - - if (os.path.isfile(self.meta.pkg_path + inst[:-4])): - count_inst += 1 - - if (count_inst == len(self.dep_install + self.install) and - "--reinstall" not in self.flag): - raise SystemExit() - - def case_insensitive(self): - """Matching packages distinguish between uppercase and - lowercase - """ - if "--case-ins" in self.flag: - data = list(self.package_name(self.PACKAGES_TXT)) - data_dict = self.case_sensitive(data) - - for pkg in self.packages: - index = self.packages.index(pkg) - - for key, value in data_dict.items(): - - if key == pkg.lower(): - self.packages[index] = value - - def update_deps(self): - """Updates dependencies dictionary with all package - """ - for dep in self.dependencies: - deps = self.dimensional_list(Dependencies( - self.repo, self.blacklist).binary( - dep, self.flag)) - - self.deps_dict[dep] = deps - - def clear_masters(self): - """Clear master packages if already exist in dependencies - or if added to install two or more times - """ - packages = [] - for mas in self.remove_dbs(self.packages): - - if mas not in self.dependencies: - packages.append(mas) - - self.packages = packages - - def install_packages(self): - """Installs or upgrades packages - """ - installs, upgraded = [], [] - for inst in (self.dep_install + self.install): - package = (self.tmp_path + inst).split() - pkg_ver = f"{split_package(inst)[0]}-{split_package(inst)[1]}" - self.checksums(inst) - - if GetFromInstalled(split_package(inst)[0]).name(): - print(f"[ {self.yellow}upgrading{self.endc} ] --> {inst}") - upgraded.append(pkg_ver) - - if "--reinstall" in self.flag: - PackageManager(package).upgrade("--reinstall") - - else: - PackageManager(package).upgrade("--install-new") - - else: - print(f"[ {self.green}installing{self.endc} ] --> {inst}") - installs.append(pkg_ver) - PackageManager(package).upgrade("--install-new") - - return [installs, upgraded] - - def not_downgrade(self, package): - """Don't downgrade packages if repository version is lower than - installed""" - name = split_package(package)[0] - rep_ver = split_package(package)[1] - ins_ver = GetFromInstalled(name).version() - - if not ins_ver: - ins_ver = "0" - - if parse_version(rep_ver) < parse_version(ins_ver): - self.msg.template(78) - print(f"| Package {name} does not downgrade, setting by user") - self.msg.template(78) - return True - - def checksums(self, install): - """Checksums before install - """ - check_md5(pkg_checksum(install, self.repo), self.tmp_path + install) - - def resolving_deps(self): - """Returns package dependencies - """ - requires = [] - - if self.meta.rsl_deps in ["on", "ON"]: - self.msg.resolving() - - for dep in self.packages: - dependencies = [] - dependencies = self.dimensional_list(Dependencies( - self.repo, self.blacklist).binary(dep, self.flag)) - requires += list(self._fix_deps_repos(dependencies)) - self.deps_dict[dep] = self.remove_dbs(requires) - - return self.remove_dbs(requires) - - def _fix_deps_repos(self, dependencies): - """Fixes store deps include in the repository - """ - for dep in dependencies: - - if dep in self.repo_pkg_names: - yield dep - - def views(self, install, comp_sum): - """Views packages - """ - pkg_sum = uni_sum = upg_sum = res_sum = 0 - - # fix repositories align - repo = self.repo + (" " * (6 - (len(self.repo)))) - for pkg, comp in zip(install, comp_sum): - pkg_sum += 1 - pkg_repo = split_package(pkg[:-4]) - - if find_package(pkg[:-4], self.meta.pkg_path): - - if "--reinstall" in self.flag: - res_sum += 1 - COLOR = self.meta.color["GREEN"] - - elif pkg_repo[0] == GetFromInstalled(pkg_repo[0]).name(): - COLOR = self.meta.color["YELLOW"] - upg_sum += 1 - - else: - COLOR = self.meta.color["RED"] - uni_sum += 1 - - ver = GetFromInstalled(pkg_repo[0]).version() - - if ver: - ver = f"-{ver}" - - print(f" {COLOR}{pkg_repo[0] + ver}{self.endc}" - f"{' ' * (23-len(pkg_repo[0] + ver))} {pkg_repo[1]}" - f"{' ' * (18-len(pkg_repo[1]))} {pkg_repo[2]}" - f"{' ' * (8-len(pkg_repo[2]))}{pkg_repo[3]}" - f"{' ' * (7-len(pkg_repo[3]))}{repo}{comp:>11}{' K'}") - - return [pkg_sum, res_sum, upg_sum, uni_sum] - - def top_view(self): - """Prints packages status bar - """ - self.msg.template(78) - print(f"| Package{' ' * 17}New Version{' ' * 8}Arch{' ' * 4}" - f"Build{' ' * 2}Repos{' ' * 10}Size") - self.msg.template(78) - - def store(self, packages): - """Stores and returns packages for install - """ - dwn, install, comp_sum, uncomp_sum = ([] for i in range(4)) - - # name = data[0] - # location = data[1] - # size = data[2] - # unsize = data[3] - - for pkg in packages: - - for pk, loc, comp, uncomp in zip(self.data[0], self.data[1], - self.data[2], self.data[3]): - - if (pk and pkg == split_package(pk)[0] and - pk not in install and - split_package(pk)[0] not in self.blacklist): - dwn.append(f"{self.mirror}{loc}/{pk}") - install.append(pk) - comp_sum.append(comp) - uncomp_sum.append(uncomp) - - if not install: - - for pkg in packages: - - for pk, loc, comp, uncomp in zip(self.data[0], self.data[1], - self.data[2], self.data[3]): - name = split_package(pk)[0] - - if (pk and pkg in name and name not in self.blacklist): - self.matching = True - dwn.append(f"{self.mirror}{loc}/{pk}") - install.append(pk) - comp_sum.append(comp) - uncomp_sum.append(uncomp) - dwn.reverse() - install.reverse() - comp_sum.reverse() - uncomp_sum.reverse() - - return [dwn, install, comp_sum, uncomp_sum] diff --git a/slpkg/binary/repo_init.py b/slpkg/binary/repo_init.py deleted file mode 100644 index 56a1d9cf..00000000 --- a/slpkg/binary/repo_init.py +++ /dev/null @@ -1,163 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# repo_init.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.utils import Utils -from slpkg.repositories import Repo -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.slack.mirrors import mirrors -from slpkg.slack.slack_version import slack_ver - - -class RepoInit(Utils): - """Returns PACKAGES.TXT and mirror by repository - """ - def __init__(self, repo): - self.repo = repo - self.meta = _meta_ - self.def_repo_dict = Repo().default_repository() - self.mirror = "" - - def fetch(self): - if self.repo in self.meta.default_repositories: - getattr(self, f"_init_{self.repo}")() - - else: - self._init_custom() - - self.lib = self.meta.lib_path + f"{self.repo}_repo/PACKAGES.TXT" - PACKAGES_TXT = self.read_file(self.lib) - return PACKAGES_TXT, self.mirror - - def _init_custom(self): - repo = Repo() - self.mirror = repo.custom_repository()[self.repo] - - def _init_slack(self): - self.mirror = mirrors(name="", location="") - - def _init_rlw(self): - self.mirror = f"{self.def_repo_dict}{slack_ver()}/" - - def _init_alien(self): - ver = slack_ver() - arch = "x86" - if self.meta.arch == "x86_64": - arch = "x86_64" - - if self.meta.slack_rel == "current": - ver = self.meta.slack_rel - - self.mirror = f"{self.def_repo_dict['alien']}{ver}/{arch}/" - - def _init_slacky(self): - arch = "" - if self.meta.arch == "x86_64": - arch = "64" - - self.mirror = f"{self.def_repo_dict}slackware{arch}-{slack_ver()}/" - - def _init_conrad(self): - self.mirror = self.def_repo_dict["conrad"] - - def _init_slonly(self): - ver = slack_ver() - arch = f"{ver}-x86" - if self.meta.arch == "x86_64": - arch = f"{ver}-x86_64" - - if self.meta.slack_rel == "current": - - if self.meta.arch == "x86_64": - arch = f"{self.meta.slack_rel}-x86_64" - - else: - arch = f"{self.meat.slack_rel}-x86" - - self.mirror = f"{self.def_repo_dict['slonly']}{arch}/" - - def _init_ktown(self): - self.mirror = self.def_repo_dict["ktown"] - - def _init_multi(self): - ver = slack_ver() - if self.meta.slack_rel == "current": - ver = self.meta.slack_rel - - self.mirror = self.def_repo_dict["multi"] + ver + "/" - - def _init_slacke(self): - arch = "" - if self.meta.arch == "x86_64": - arch = "64" - - self.mirror = (f"{self.def_repo_dict['slacke']}" - f"slacke{self.meta.slacke_sub_repo[1:-1]}/slackware" - f"{arch}-{slack_ver()}/") - - def _init_salix(self): - arch = "i486" - if self.meta.arch == "x86_64": - arch = "x86_64" - - self.mirror = f"{self.def_repo_dict['salix']}{arch}/{slack_ver()}/" - - def _init_slackl(self): - arch = "i486" - if self.meta.arch == "x86_64": - arch = "x86_64" - - self.mirror = f"{self.def_repo_dict['slackl']}{arch}/current/" - - def _init_rested(self): - self.mirror = self.def_repo_dict["rested"] - - def _init_msb(self): - arch = "x86" - if self.meta.arch == "x86_64": - arch = "x86_64" - self.mirror = (f"{self.def_repo_dict['msb']}{slack_ver()}/" - f"{self.meta.msb_sub_repo[1:-1]}/{arch}/") - - def _init_csb(self): - arch = "x86" - if self.meta.arch == "x86_64": - arch = "x86_64" - - self.mirror = f"{self.def_repo_dict['csb']}{slack_ver()}/{arch}" - - def _init_connos(self): - arch = "" - if self.meta.arch == "x86_64": - arch = "64" - self.mirror = (f"{self.def_repo_dict['connos']}slack-n-free" - f"{arch}-{slack_ver()}/") - - def _init_mles(self): - arch = "32" - if self.meta.arch == "x86_64": - arch = "64" - self.mirror = (f"{self.def_repo_dict['mles']}" - f"{self.meta.mles_sub_repo[1:-1]}-" - f"{slack_ver()}-{arch}bit/") diff --git a/slpkg/binary/search.py b/slpkg/binary/search.py deleted file mode 100644 index 31f24b2b..00000000 --- a/slpkg/binary/search.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# search.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.utils import Utils -from slpkg.blacklist import BlackList -from slpkg.__metadata__ import MetaData as _meta_ - - -def search_pkg(name, repo): - """Searching if the package exists in PACKAGES.TXT file - and return the name. - """ - utils = Utils() - black = BlackList() - - text = utils.read_file(_meta_.lib_path + f"{repo}_repo/PACKAGES.TXT") - - PACKAGES_TXT = list(utils.package_name(text)) - blacklist = list(black.get_black()) - - if name in PACKAGES_TXT and name not in blacklist: - return name diff --git a/slpkg/blacklist.py b/slpkg/blacklist.py deleted file mode 100644 index e22f2d13..00000000 --- a/slpkg/blacklist.py +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# blacklist.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.utils import Utils -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - - -class BlackList(Utils): - """Blacklist class to add, remove or list packages - in blacklist file.""" - - def __init__(self): - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.endc = _meta_.color["ENDC"] - self.blackfile = "/etc/slpkg/blacklist" - self.black_conf = "" - - if os.path.isfile(self.blackfile): - self.black_conf = self.read_file(self.blackfile) - - def get_black(self): - """Return blacklist packages from /etc/slpkg/blacklist - configuration file.""" - blacklist = list(self.black_filter()) - installed = os.listdir("/var/log/packages/") - - for black in blacklist: - - if black.endswith("*"): - - for inst in installed: - - if inst.startswith(black[:-1]): - yield split_package(inst)[0] - - else: - yield black - - def black_filter(self): - """Returns all the installed files that start - by the name - """ - for read in self.black_conf.splitlines(): - - read = read.lstrip() - - if not read.startswith("#"): - yield read.replace("\n", "") - - def black_listed(self): - """Prints blacklist packages - """ - print("Packages in the blacklist:") - for black in list(self.black_filter()): - if black: - print(f"{self.green}{black}{self.endc}") - print() - - def black_add(self, pkgs): - """Adds blacklist packages if not exist - """ - blacklist = list(self.black_filter()) - pkgs = set(pkgs) - - print("Add packages in the blacklist:") - - with open(self.blackfile, "a") as black_conf: - - for pkg in pkgs: - - if pkg not in blacklist: - print(f"{self.green}{pkg}{self.endc}") - black_conf.write(pkg + "\n") - print() - - def black_remove(self, pkgs): - """Removes packages from blacklist - """ - print("Remove packages from the blacklist:") - - with open(self.blackfile, "w") as remove: - - for line in self.black_conf.splitlines(): - - if line not in pkgs: - remove.write(line + "\n") - - else: - print(f"{self.red}{line}{self.endc}") - print() diff --git a/slpkg/checks.py b/slpkg/checks.py deleted file mode 100644 index aaa10025..00000000 --- a/slpkg/checks.py +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# checks.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.messages import Msg -from slpkg.arguments import usage -from slpkg.init import Init -from slpkg.__metadata__ import MetaData as _meta_ - - -class Updates: - """Checking for news in ChangeLog.txt - """ - def __init__(self, repo): - self.repo = repo - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.check = 2 - self.st = "" - self.count_repo = 0 - self.count_news = 0 - self._init = Init(True) - - self.all_repos = { - "slack": self._init.slack, - "sbo": self._init.sbo, - "rlw": self._init.rlw, - "alien": self._init.alien, - "slacky": self._init.slacky, - "conrad": self._init.conrad, - "slonly": self._init.slonly, - "ktown": self._init.ktown, - "multi": self._init.multi, - "slacke": self._init.slacke, - "salix": self._init.salix, - "slackl": self._init.slackl, - "rested": self._init.rested, - "msb": self._init.msb, - "csb": self._init.csb, - "connos": self._init.msb, - "mles": self._init.mles - } - - def status_bar(self): - """Top view bar status - """ - self.msg.template(78) - print("| Repository Status") - self.msg.template(78) - - def run(self): - """Run and check if new in ChangeLog.txt - """ - if (self.repo in self.meta.default_repositories and - self.repo in self.meta.repositories): - - try: - self.check = self.all_repos[self.repo]() - except OSError: - usage(self.repo, 1) - - elif self.repo in self.meta.repositories: - self.check = self._init.custom(self.repo) - - else: - usage(self.repo, 1) - - self.status_bar() - self.status() - self.print_status(self.repo) - self.summary() - - def ALL(self): - """Check ALL enabled repositories ChangeLogs - """ - self.status_bar() - - for repo in self.meta.repositories: - - if repo in self.meta.default_repositories: - - try: - self.check = self.all_repos[repo]() - - except OSError: - usage(self.repo, 1) - - elif repo in self.meta.repositories: - self.check = self._init.custom(repo) - - self.status() - self.print_status(repo) - - self.summary() - - def status(self): - """Set messages - """ - self.count_repo += 1 - - if self.check == 1: - self.count_news += 1 - self.st = f"{self.green}News in ChangeLog.txt{self.endc}" - - elif self.check == 0: - self.st = "No changes in ChangeLog.txt" - - def print_status(self, repo): - """Print status - """ - print(f" {repo}{' ' * (19 - len(repo))}{self.st}") - - def summary(self): - """Print summary - """ - print("\nSummary") - print("=" * 79) - - cmd = "All repositories are updated." - - if self.count_repo == 1: - cmd = "Repository is updated." - - if self.count_news > 0: - cmd = "Run the command 'slpkg update'." - - print(f"From {self.count_repo} repositories need" - f" {self.count_news} updating. {cmd}", end="\n") diff --git a/slpkg/checksum.py b/slpkg/checksum.py deleted file mode 100644 index 948f1192..00000000 --- a/slpkg/checksum.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# checksum.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.md5sum import md5 -from slpkg.messages import Msg -from slpkg.__metadata__ import MetaData as _meta_ - - -def check_md5(pkg_md5, src_file): - """MD5 Checksum - """ - msg = Msg() - red = _meta_.color["RED"] - green = _meta_.color["GREEN"] - endc = _meta_.color["ENDC"] - - if _meta_.checkmd5 in ["on", "ON"]: - - print() - - md5s = md5(src_file) - - if pkg_md5 != md5s: - - msg.template(78) - - print(f"| MD5SUM check for {src_file.split('/')[-1]}" - f" [ {red}FAILED{endc} ]") - - msg.template(78) - - print(f"| Expected: {pkg_md5}") - print(f"| Found: {md5s}") - - msg.template(78) - - print() - - if not msg.answer() in ["y", "Y"]: - raise SystemExit() - else: - msg.template(78) - - print(f"| MD5SUM check for {src_file.split('/')[-1]}" - f" [ {green}PASSED{endc} ]") - - msg.template(78) - - print() # new line after pass checksum diff --git a/slpkg/clean.py b/slpkg/clean.py deleted file mode 100644 index ab530912..00000000 --- a/slpkg/clean.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# clean.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import shutil - -from slpkg.__metadata__ import MetaData as _meta_ - - -def clean_tmp(): - """Deletes packages and sources from tmp/ directory - """ - tmps = [_meta_.tmp_path, # /tmp/slpkg/ - _meta_.build_path, # /tmp/slpkg/build/ - _meta_.slpkg_tmp_packages, # /tmp/slpkg/packages/ - _meta_.slpkg_tmp_patches # /tmp/slpkg/patches/ - ] - - # Delete a whole slpkg folder from the tmp directory - if os.path.exists(tmps[0]): - shutil.rmtree(tmps[0]) - print(f"All packages and sources were deleted from: {tmps[0]}") - - # Recreate the paths again - if not os.path.exists(tmps[0]): - - for tmp in tmps: - os.mkdir(tmp) - print(f"Created directory: {tmp}") - - print("Done!") diff --git a/slpkg/clean_logs.py b/slpkg/clean_logs.py new file mode 100644 index 00000000..ae4f25b9 --- /dev/null +++ b/slpkg/clean_logs.py @@ -0,0 +1,34 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +from dataclasses import dataclass + +from views.views import ViewMessage +from models.models import LogsDependencies +from models.models import session as Session + + +@dataclass +class CleanLogsDependencies: + flags: str + session: str = Session + + @classmethod + def clean(cls): + deps = cls.session.query( + LogsDependencies.name, LogsDependencies.requires).all() + + if deps: + print('The following logs will be removed:\n') + + for dep in deps: + print(f'{dep[0]} -> Dependencies: {dep[1]}') + + view = ViewMessage() + view.question(cls.flags) + + cls.session.query(LogsDependencies).delete() + cls.session.commit() + else: + print('Nothing to clean.') diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py new file mode 100644 index 00000000..82fbe578 --- /dev/null +++ b/slpkg/cli_menu.py @@ -0,0 +1,23 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +from metadata import Metadata + + +def usage(status): + args = [f'Usage: {Metadata.proj_name} [OPTIONS] [packages]\n', + ' Tool that interact with the SBo repository.\n', + 'Options:', + ' update Update the data packages.', + ' build Build only the packages.', + ' install Build and install the packages.', + ' remove Remove installed packages.', + ' clean-logs Purge logs of dependencies.', + ' --yes Answer Yes to all questions.', + ' --resolve-off Turns off dependency resolving.', + ' -h, --help Show this message and exit.', + ' -v, --version Print version and exit.\n', + 'If you need more information try to use slpkg manpage.'] + for opt in args: + print(opt) + raise SystemExit(status) diff --git a/slpkg/config.py b/slpkg/config.py deleted file mode 100644 index 5a8241f1..00000000 --- a/slpkg/config.py +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# config.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import shutil -import filecmp -import subprocess - -from slpkg.utils import Utils -from slpkg.__metadata__ import MetaData as _meta_ - - -class Config(Utils): - """Print or edit slpkg configuration file - """ - def __init__(self): - self.config_file = "/etc/slpkg/slpkg.conf" - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.cyan = _meta_.color["CYAN"] - self.endc = _meta_.color["ENDC"] - - def view(self): - """View slpkg config file - """ - conf_args = [ - "RELEASE", - "SLACKWARE_VERSION", - "COMP_ARCH", - "BUILD_PATH", - "PACKAGES", - "PATCHES", - "CHECKMD5", - "DEL_ALL", - "DEL_BUILD", - "SBO_BUILD_LOG", - "MAKEFLAGS", - "DEFAULT_ANSWER", - "REMOVE_DEPS_ANSWER", - "SKIP_UNST", - "RSL_DEPS", - "DEL_DEPS", - "USE_COLORS", - "DOWNDER", - "DOWNDER_OPTIONS", - "SLACKPKG_LOG", - "ONLY_INSTALLED", - "EDITOR", - "NOT_DOWNGRADE", - "HTTP_PROXY", - ] - - read_conf = self.read_file(self.config_file) - - for line in read_conf.splitlines(): - - if not line.startswith("#") and line.split("=")[0] in conf_args: - print(line) - - else: - print(f"{self.cyan}{line}{self.endc}", end="\n") - - def edit(self): - """Edit configuration file - """ - subprocess.call(f"{self.meta.editor} {self.config_file}", shell=True) - - def reset(self): - """Reset slpkg.conf file with default values - """ - shutil.copy2(f"{self.config_file}.orig", self.config_file) - - if filecmp.cmp(f"{self.config_file}.orig", self.config_file): - print(f"{self.green}The reset was done{self.endc}") - - else: - print(f"{self.red}Reset failed{self.endc}") diff --git a/slpkg/create_data.py b/slpkg/create_data.py new file mode 100644 index 00000000..6f0e8e50 --- /dev/null +++ b/slpkg/create_data.py @@ -0,0 +1,63 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +from dataclasses import dataclass + +from metadata import Metadata +from models.models import SBoTable +from models.models import session as Session + + +@dataclass +class CreateData: + + db_path: str = Metadata.db_path + sbo_txt: str = Metadata.sbo_txt + sbo_repo_path: str = Metadata.sbo_repo_path + session: str = Session + + def insert_sbo_table(self): + sbo_tags = [ + "SLACKBUILD NAME:", + "SLACKBUILD LOCATION:", + "SLACKBUILD FILES:", + "SLACKBUILD VERSION:", + "SLACKBUILD DOWNLOAD:", + "SLACKBUILD DOWNLOAD_x86_64:", + "SLACKBUILD MD5SUM:", + "SLACKBUILD MD5SUM_x86_64:", + "SLACKBUILD REQUIRES:", + "SLACKBUILD SHORT DESCRIPTION:" + ] + + sbo_file = self.read_file(f"{self.sbo_repo_path}/SLACKBUILDS.TXT") + + cache = [] # init cache + + print('Creating the database... ', end='', flush=True) + + for i, line in enumerate(sbo_file, 1): + + for s in sbo_tags: + if line.startswith(s): + line = line.replace(s, "").strip() + cache.append(line) + + if (i % 11) == 0: + data = SBoTable(name=cache[0], location=cache[1].split('/')[1], + files=cache[2], version=cache[3], + download=cache[4], download64=cache[5], + md5sum=cache[6], md5sum64=cache[7], + requires=cache[8], short_description=cache[9]) + self.session.add(data) + + cache = [] # reset cache after 11 lines + + print('Done') + + self.session.commit() + + def read_file(self, file): + with open(file, "r", encoding="utf-8") as f: + return f.readlines() diff --git a/slpkg/dependencies.py b/slpkg/dependencies.py new file mode 100644 index 00000000..1fe556de --- /dev/null +++ b/slpkg/dependencies.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +from queries import SBoQueries +from dataclasses import dataclass + + +@dataclass +class Requires: + ''' Creates a list of dependencies with + the right order to install ''' + name: str + + def resolve(self) -> list: + requires = SBoQueries(self.name).requires() + + for r in requires: + if r and r != "%README%": + sub = SBoQueries(r).requires() + for s in sub: + requires.append(s) + + requires.reverse() + + return list(dict.fromkeys(requires)) diff --git a/slpkg/desc.py b/slpkg/desc.py deleted file mode 100644 index 97e4a6f8..00000000 --- a/slpkg/desc.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# desc.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.utils import Utils -from slpkg.messages import Msg -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.sbo.greps import SBoGrep - - -class PkgDesc(Utils): - """Prints package description from the repository - """ - def __init__(self, name, repo, paint): - self.name = name - self.repo = repo - self.paint = paint - self.meta = _meta_ - self.msg = Msg() - self.lib = "" - self.color = { - "red": self.meta.color["RED"], - "green": self.meta.color["GREEN"], - "yellow": self.meta.color["YELLOW"], - "cyan": self.meta.color["CYAN"], - "grey": self.meta.color["GREY"], - "": "" - }[self.paint] - - if self.repo in self.meta.repositories and self.repo != "sbo": - self.lib = f"{self.meta.lib_path}{self.repo}_repo/PACKAGES.TXT" - - def view(self): - """Prints package description by repository - """ - description, count = "", 0 - - if self.repo == "sbo": - description = SBoGrep(self.name).description() - - else: - PACKAGES_TXT = self.read_file(self.lib) - - for line in PACKAGES_TXT.splitlines(): - - if line.startswith(self.name + ":"): - description += f"{line[len(self.name) + 2:]}\n" - count += 1 - - if count == 11: - break - - if description: - print(f"{self.color}{description}{self.meta.color['ENDC']}") - - else: - self.msg.pkg_not_found("", self.name, "No matching", "") diff --git a/slpkg/dialog_box.py b/slpkg/dialog_box.py deleted file mode 100644 index fbaa397d..00000000 --- a/slpkg/dialog_box.py +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# dialog_box.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from __future__ import unicode_literals - -import os - - -class DialogUtil: - """Creates dialog checklist - """ - def __init__(self, *args): - self.imp_dialog() - self.data = args[0] - self.text = args[1] - self.title = args[2] - self.backtitle = args[3] - self.status = args[4] - self.ununicode = [] - self.tags = [] - - def imp_dialog(self): - try: - from dialog import Dialog - except ImportError as er: - raise SystemExit(er) - - self.d = Dialog(dialog="dialog", autowidgetsize=True) - - def checklist(self): - """Runs dialog checklist - """ - choice = [] - - for item in self.data: - choice.append((item, "", self.status)) - - code, self.tags = self.d.checklist( - text=self.text, height=20, width=65, list_height=13, - choices=choice, title=self.title, backtitle=self.backtitle) - - if code == "ok": - self.unicode_to_string() - return self.ununicode - - if code in ["cancel", "esc"]: - self.exit() - - def buildlist(self, enabled): - """Runs dialog buildlist - """ - choice = [] - - for item in self.data: - choice.append((item, False)) - - for item in enabled: - choice.append((item, True)) - - items = [(tag, tag, sta) for (tag, sta) in choice] - - code, self.tags = self.d.buildlist( - text=self.text, items=items, visit_items=True, item_help=False, - title=self.title) - - if code == "ok": - self.unicode_to_string() - return self.ununicode - - if code in ["cancel", "esc"]: - self.exit() - - def exit(self): - """Exits from dialog - """ - self.clear_screen() - raise SystemExit() - - def clear_screen(self): - """Clear screen - """ - os.system("clear") - - def unicode_to_string(self): - """Converts unicode in string - """ - for tag in self.tags: - self.ununicode.append(str(tag)) diff --git a/slpkg/downloader.py b/slpkg/downloader.py index f693af84..b4bf4bb5 100644 --- a/slpkg/downloader.py +++ b/slpkg/downloader.py @@ -1,147 +1,16 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -# downloader.py file is part of slpkg. -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import tarfile import subprocess - -from slpkg.utils import Utils -from slpkg.messages import Msg -from slpkg.slack.slack_version import slack_ver -from slpkg.__metadata__ import MetaData as _meta_ +from dataclasses import dataclass +from metadata import Metadata -class Download(Utils): - """Downloader manager. Slpkg use wget by default but support - curl, aria2 and httpie - """ - def __init__(self, path, url, repo): - self.path = path - self.url = url - self.repo = repo - self.file_name = "" - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.dir_prefix = "" - self.downder = self.meta.downder - self.downder_options = self.meta.downder_options +@dataclass +class Wget: + wget_options: str = Metadata.wget_options - def start(self): - """Download files using wget or other downloaders. - Optional curl, aria2c and httpie - """ - dwn_count = 1 - - self._directory_prefix() - - for dwn in self.url: - - self.file_name = self.fix_file_name(dwn.split("/")[-1]) - - if dwn.startswith("file:///"): - source_dir = dwn[7:-7].replace(slack_ver(), "") - self._make_tarfile(self.file_name, source_dir) - - self._check_certificate() - - print(f"\n[{dwn_count}/{len(self.url)}][ {self.green}" - f"Download{self.endc} ] --> {self.file_name}\n") - - if self.downder in ["wget"]: - subprocess.call(f"{self.downder} {self.downder_options}" - f" {self.dir_prefix}{self.path} {dwn}", - shell=True) - - if self.downder in ["aria2c"]: - subprocess.call(f"{self.downder} {self.downder_options}" - f" {self.dir_prefix}{self.path[:-1]} {dwn}", - shell=True) - - elif self.downder in ["curl", "http"]: - subprocess.call(f"{self.downder} {self.downder_options}" - f" {self.path}{self.file_name} {dwn}", - shell=True) - - self._check_if_downloaded() - - dwn_count += 1 - - def _make_tarfile(self, output_filename, source_dir): - """Creates .tar.gz file - """ - with tarfile.open(output_filename, "w:gz") as tar: - tar.add(source_dir, arcname=os.path.basename(source_dir)) - - def _directory_prefix(self): - """Downloader options for specific directory - """ - if self.downder == "wget": - self.dir_prefix = "--directory-prefix=" - - elif self.downder == "aria2c": - self.dir_prefix = "--dir=" - - def _check_if_downloaded(self): - """Checks if file downloaded - """ - if not os.path.isfile(self.path + self.file_name): - - print() - - self.msg.template(78) - - print(f"| Download '{self.file_name}' file" - f" [ {self.red}FAILED{self.endc} ]") - - self.msg.template(78) - - print() - - if not self.msg.answer() in ["y", "Y"]: - raise SystemExit() - - def _check_certificate(self): - """Checks for certificates options for wget - """ - if (self.file_name.startswith("jdk-") and self.repo == "sbo" and - self.downder == "wget"): - certificate = (' --no-check-certificate --header="Cookie: ' - 'oraclelicense=accept-securebackup-cookie"') - - self.msg.template(78) - - print(f"| '{certificate[:23].strip()}' need to go" - f" ahead downloading") - - self.msg.template(78) - - print() - - self.downder_options += certificate - - if not self.msg.answer() in ["y", "Y"]: - raise SystemExit() + def download(self, path: str, url: str): + subprocess.call(f'wget {self.wget_options} --directory-prefix={path}' + f' {url}', shell=True) diff --git a/slpkg/file_size.py b/slpkg/file_size.py deleted file mode 100644 index 750f8698..00000000 --- a/slpkg/file_size.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -* - -# file_size.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import urllib3 - -from slpkg.__metadata__ import MetaData as _meta_ - - -class FileSize: - """Checks local or remote file size - """ - def __init__(self, registry): - self.meta = _meta_ - self.registry = registry - - if self.meta.http_proxy: - self.http = urllib3.ProxyManager(self.meta.http_proxy) - - else: - self.http = urllib3.PoolManager() - - def server(self): - """Returns the size of remote files - """ - try: - r = self.http.request("GET", self.registry) - return int(r.headers["Content-Length"]) - except urllib3.exceptions.NewConnectionError: - return " " - - def local(self): - """Returns the size of local files - """ - return os.path.getsize(self.registry) diff --git a/slpkg/graph.py b/slpkg/graph.py deleted file mode 100644 index 4fb28ad5..00000000 --- a/slpkg/graph.py +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# graph.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import subprocess - - -# class ImportErrorGraphEasy(Exception): -# def __init__(self, GraphEasyImportError): -# Exception.__init__(self, "graph-easy required") -# self.GraphEasyImportError = GraphEasyImportError - - -class Graph: - """Drawing dependencies diagram - """ - def __init__(self, image): - self.image = image - self.file_format = [ - ".bmp", ".canon", ".cmap", ".cmapx", ".cmapx_np", ".dot", - ".eps", ".fig", ".gd", ".gd2", ".gif", ".gtk", ".gv", ".ico", - ".imap", ".imap_np", ".ismap", ".jpe", ".jpeg", ".jpg", ".pdf", - ".pic", ".plain", ".plain-ext", ".png", ".pov", ".ps", ".ps2", - ".svg", ".svgz", ".tif", ".tiff", ".tk", ".vml", ".vmlz", - ".vrml", ".wbmp", ".x11", ".xdot", ".xlib" - ] - - def dependencies(self, deps_dict): - """Generates graph file with dependencies map tree - """ - try: - import pygraphviz as pgv - except ImportError: - - if (self.image == "ascii" - and not os.path.isfile("/usr/bin/graph-easy")): - print("Require 'grap_easy': " - "Install with 'slpkg -s sbo graph-easy'") - - else: - raise SystemExit("Require 'pygraphviz: " - "Install with 'slpkg -s sbo pygraphviz'") - - if self.image != "ascii": - self.check_file() - - try: - G = pgv.AGraph(deps_dict) - - G.layout(prog="fdp") - - if self.image == "ascii": - G.write(f"{self.image}.dot") - self.graph_easy() - - G.draw(self.image) - - except IOError: - raise SystemExit(1) - - if os.path.isfile(self.image): - print(f"Graph image file '{self.image}' created") - raise SystemExit() - - def check_file(self): - """Checks for file format and type - """ - try: - image_type = f".{self.image.split('.')[1]}" - - if image_type not in self.file_format: - raise SystemExit(f"Format: '{self.image.split('.')[1]}' not " - f"recognized. Use one of them:\n" - f"{', '.join(self.file_format)}") - except IndexError: - raise SystemExit("slpkg: Error: Image file suffix missing") - - def graph_easy(self): - """Drawing ascii diagram. graph-easy perl module requires - """ - if not os.path.isfile("/usr/bin/graph-easy"): - - print("Require 'graph-easy': Install with 'slpkg -s sbo" - " graph-easy'") - self.remove_dot() - - raise SystemExit(1) - - subprocess.call(f"graph-easy {self.image}.dot", shell=True) - - self.remove_dot() - - raise SystemExit(1) - - def remove_dot(self): - """Removes .dot files - """ - if os.path.isfile(f"{self.image}.dot"): - os.remove(f"{self.image}.dot") diff --git a/slpkg/grep_md5.py b/slpkg/grep_md5.py deleted file mode 100644 index 6a7870b1..00000000 --- a/slpkg/grep_md5.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# grep_md5.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.slack.mirrors import mirrors - -from slpkg.url_read import URL -from slpkg.__metadata__ import MetaData as _meta_ - - -def pkg_checksum(binary, repo): - """Returns checksum from CHECKSUMS.md5 file by repository - """ - md5 = "None" - - if repo == "slack_patches" and _meta_.slack_rel == "stable": - CHECKSUMS_md5 = URL(mirrors("CHECKSUMS.md5", "patches/")).get_request() - - elif repo == "slack_patches" and _meta_.slack_rel == "current": - CHECKSUMS_md5 = URL(mirrors("CHECKSUMS.md5", "")).get_request() - - elif repo == "slpkg": - CHECKSUMS_md5 = URL(_meta_.CHECKSUMS_link).get_request() - - else: - lib = f"{_meta_.lib_path}{repo}_repo/CHECKSUMS.md5" - f = open(lib, "r") - CHECKSUMS_md5 = f.read() - f.close() - - for line in CHECKSUMS_md5.splitlines(): - - if line.endswith(f"/{binary}"): - md5 = line.split()[0] - - return md5 diff --git a/slpkg/health.py b/slpkg/health.py deleted file mode 100644 index bdbdd4cd..00000000 --- a/slpkg/health.py +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# health.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.messages import Msg -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package - - -class PackageHealth: - """Health check for the installed packages - """ - def __init__(self, mode): - self.mode = mode - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.yellow = _meta_.color["YELLOW"] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.pkg_path = _meta_.pkg_path - self.installed = [] - self.cn = 0 - - def packages(self): - """Gets all installed packages from /var/log/packages/ path - """ - self.installed = find_package("", self.pkg_path) - - def check(self, line, pkg): - line = line.replace("\n", "") - try: - - if (not line.endswith("/") and - not line.endswith(".new") and - not line.startswith("dev/") and - not line.startswith("install/") and - "/incoming/" not in line): - - if not os.path.isfile(r"/" + line): - self.cn += 1 - print(f"Not installed: {self.red}/{line}{self.endc} --> {pkg}") - - elif not self.mode: - print(line) - - except IOError: - raise SystemExit("\n") - - def test(self): - """Starts testing each package and reading the file list - """ - self.packages() - self.cf = 0 - - for pkg in self.installed: - - if os.path.isfile(f"{self.meta.pkg_path}{pkg}"): - self.lf = 0 - - with open(self.pkg_path + pkg, "r") as fopen: - - for line in fopen: - - if "\0" in line: - print(f"Null: {line}") - break - - self.cf += 1 # count all files - self.lf += 1 # count each package files - - if self.lf > 19: - self.check(line, pkg) - self.results() - - def results(self): - """Prints results - """ - print() - per = int(round((float(self.cf) / (self.cf + self.cn)) * 100)) - - if per > 90: - color = self.green - - elif per < 90 and per > 60: - color = self.yellow - - elif per < 60: - color = self.red - - health = f"{color}{str(per)}%{self.endc}" - - self.msg.template(78) - print(f"| Total files{' ' * 7}Not installed{' ' * 40}Health") - self.msg.template(78) - print(f"| {self.cf}{' ' * (18-len(str(self.cf)))}{self.cn}{' ' * (55-len(str(self.cn)))}{health:>4}") - self.msg.template(78) diff --git a/slpkg/init.py b/slpkg/init.py deleted file mode 100644 index fdb479a8..00000000 --- a/slpkg/init.py +++ /dev/null @@ -1,940 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# init.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import shutil - -from slpkg.utils import Utils -from slpkg.repositories import Repo -from slpkg.file_size import FileSize -from slpkg.downloader import Download -from slpkg.models.data import Database -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.slack.mirrors import mirrors -from slpkg.slack.slack_version import slack_ver -from slpkg.models.models import SBoTable, session - - -class Init(Utils): - """Slpkg initialization starts all from here. - Creates local package lists and updates or upgrades these. - """ - def __init__(self, check): - self.check = check - self.meta = _meta_ - self.arch = _meta_.arch - self.session = session - self.conf_path = self.meta.conf_path - self.log_path = self.meta.log_path - self.lib_path = self.meta.lib_path - self.tmp_path = self.meta.tmp_path - self.build_path = self.meta.build_path - self._SOURCES = self.meta.SBo_SOURCES - self.slpkg_tmp_packages = self.meta.slpkg_tmp_packages - self.slpkg_tmp_patches = self.meta.slpkg_tmp_patches - self.slack_ver = slack_ver() - self.def_repos_dict = Repo().default_repository() - self.constructing() - - def constructing(self): - """Creating the all necessary directories - """ - paths_basic = [ - self.conf_path, - self.log_path, - self.lib_path, - self.tmp_path - ] - - paths_extra = [ - self.build_path, - self._SOURCES, - self.slpkg_tmp_packages, - self.slpkg_tmp_patches - ] - - self.make_dir(paths_basic) - self.make_dirs(paths_extra) - - def make_dir(self, path: list): - for p in path: - if not os.path.exists(p): - os.mkdir(p) - - def make_dirs(self, path: list): - for p in path: - if not os.path.exists(p): - os.makedirs(p) - - def custom(self, name): - """Creating user custom repository local library - """ - repo = Repo().custom_repository()[name] - log = self.log_path + name + "/" - lib = self.lib_path + f"{name}_repo/" - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - PACKAGES_TXT = f"{repo}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{md5_file}" - ChangeLog_txt = f"{repo}{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, name) - self.down(lib, CHECKSUMS_MD5, name) - self.down(log, ChangeLog_txt, name) - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, name) - - def slack(self): - """Creating slack local libraries - """ - log = self.log_path + "slack/" - lib = self.lib_path + "slack_repo/" - repo_name = Init.slack.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - dirs = ["core/", "extra/", "patches/"] - - self.make_dir([log, lib]) - self.make_dir([f"{lib}{dirs[0]}", - f"{lib}{dirs[1]}", - f"{lib}{dirs[2]}"]) - - PACKAGES_TXT = mirrors(lib_file, "") - FILELIST_TXT = "" - CHECKSUMS_MD5 = mirrors(md5_file, "") - - self.EXTRA = mirrors(lib_file, dirs[1]) - self.EXT_CHECKSUMS = mirrors(md5_file, dirs[1]) - self.PATCHES = mirrors(lib_file, dirs[2]) - self.PAT_CHECKSUMS = mirrors(md5_file, dirs[2]) - ChangeLog_txt = mirrors(log_file, "") - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib + dirs[0], PACKAGES_TXT, repo_name) - self.down(lib + dirs[0], CHECKSUMS_MD5, repo_name) - self.down(lib + dirs[1], self.EXTRA, repo_name) - self.down(lib + dirs[1], self.EXT_CHECKSUMS, repo_name) - self.down(lib + dirs[2], self.PATCHES, repo_name) - self.down(lib + dirs[2], self.PAT_CHECKSUMS, repo_name) - self.down(log, ChangeLog_txt, repo_name) - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - self.merge(lib, "PACKAGES.TXT", ["core/PACKAGES.TXT", - "extra/PACKAGES.TXT", - "patches/PACKAGES.TXT"]) - self.merge(lib, "CHECKSUMS.md5", ["core/CHECKSUMS.md5", - "extra/CHECKSUMS.md5", - "patches/CHECKSUMS_md5"]) - - def sbo(self): - """Creating sbo local library - """ - repo = self.def_repos_dict["sbo"] - log = self.log_path + "sbo/" - lib = self.lib_path + "sbo_repo/" - repo_name = Init.sbo.__name__ - - lib_file = "SLACKBUILDS.TXT" - # lst_file = "" - # md5_file = "" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - SLACKBUILDS_TXT = f"{repo}{self.slack_ver}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = "" - ChangeLog_txt = f"{repo}{self.slack_ver}/{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, SLACKBUILDS_TXT, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, SLACKBUILDS_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def rlw(self): - """Creating rlw local library - """ - repo = self.def_repos_dict["rlw"] - log = self.log_path + "rlw/" - lib = self.lib_path + "rlw_repo/" - repo_name = Init.rlw.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - PACKAGES_TXT = f"{repo}{self.slack_ver}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{self.slack_ver}/{md5_file}" - ChangeLog_txt = f"{repo}{self.slack_ver}/{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def alien(self): - """Creating alien local library - """ - ar = "x86" - ver = self.slack_ver - repo = self.def_repos_dict["alien"] - log = self.log_path + "alien/" - lib = self.lib_path + "alien_repo/" - repo_name = Init.alien.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = self.arch - - if self.meta.slack_rel == "current": - ver = self.meta.slack_rel - - PACKAGES_TXT = f"{repo}/{ver}/{ar}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}/{ver}/{ar}/{md5_file}" - ChangeLog_txt = f"{repo}{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def slacky(self): - """Creating slacky.eu local library - """ - ar = "" - repo = self.def_repos_dict["slacky"] - log = self.log_path + "slacky/" - lib = self.lib_path + "slacky_repo/" - repo_name = Init.slacky.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = "64" - - PACKAGES_TXT = f"{repo}slackware{ar}-{self.slack_ver}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}slackware{ar}-{self.slack_ver}/{md5_file}" - - ChangeLog_txt = f"{repo}slackware{ar}-{self.slack_ver}/{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def conrad(self): - """Creating slackers local library - """ - repo = self.def_repos_dict["conrad"] - log = self.log_path + "conrad/" - lib = self.lib_path + "conrad_repo/" - repo_name = Init.conrad.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - PACKAGES_TXT = f"{repo}{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{md5_file}" - ChangeLog_txt = f"{repo}{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def slonly(self): - """Creating slackers local library - """ - ar = f"{self.slack_ver}-x86" - repo = self.def_repos_dict["slonly"] - log = self.log_path + "slonly/" - lib = self.lib_path + "slonly_repo/" - repo_name = Init.slonly.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = f"{self.slack_ver}-x86_64" - - if self.meta.slack_rel == "current": - ar = f"{self.meta.slack_rel}-x86" - - if self.meta.slack_rel == "current" and self.arch == "x86_64": - ar = f"{self.meta.slack_rel}-x86_64" - - PACKAGES_TXT = f"{repo}{ar}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{ar}/{md5_file}" - ChangeLog_txt = f"{repo}{ar}/{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def ktown(self): - """Creating alien ktown local library - """ - repo = self.def_repos_dict["ktown"] - log = self.log_path + "ktown/" - lib = self.lib_path + "ktown_repo/" - repo_name = Init.ktown.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - PACKAGES_TXT = f"{repo}{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{md5_file}" - ChangeLog_txt = f"{repo}{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def multi(self): - """Creating alien multilib local library - """ - ver = self.slack_ver - repo = self.def_repos_dict["multi"] - log = self.log_path + "multi/" - lib = self.lib_path + "multi_repo/" - repo_name = Init.multi.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.meta.slack_rel == "current": - ver = self.meta.slack_rel - - PACKAGES_TXT = f"{repo}{ver}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{ver}/{md5_file}" - ChangeLog_txt = f"{repo}{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def slacke(self): - """Creating Slacke local library - """ - ar = "" - repo = self.def_repos_dict["slacke"] - log = self.log_path + "slacke/" - lib = self.lib_path + "slacke_repo/" - repo_name = Init.slacke.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = "64" - - version = self.meta.slacke_sub_repo[1:-1] - PACKAGES_TXT = (f"{repo}slacke{version}/slackware{ar}-" - f"{self.slack_ver}/{lib_file}") - FILELIST_TXT = "" - CHECKSUMS_MD5 = (f"{repo}slacke{version}/slackware{ar}-" - f"{self.slack_ver}/{md5_file}") - ChangeLog_txt = (f"{repo}slacke{version}/slackware{ar}-" - f"{self.slack_ver}/{log_file}") - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def salix(self): - """Creating SalixOS local library - """ - ar = "i486" - repo = self.def_repos_dict["salix"] - log = self.log_path + "salix/" - lib = self.lib_path + "salix_repo/" - repo_name = Init.salix.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = "x86_64" - - PACKAGES_TXT = f"{repo}{ar}/{self.slack_ver}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{ar}/{self.slack_ver}/{md5_file}" - ChangeLog_txt = f"{repo}{ar}/{self.slack_ver}/{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def slackl(self): - """Creating slackel.gr local library - """ - ar = "i486" - repo = self.def_repos_dict["slackl"] - log = self.log_path + "slackl/" - lib = self.lib_path + "slackl_repo/" - repo_name = Init.slackl.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = "x86_64" - - PACKAGES_TXT = f"{repo}{ar}/current/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{ar}/current/{md5_file}" - ChangeLog_txt = f"{repo}{ar}/current/{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def rested(self): - """Creating alien restricted local library - """ - repo = self.def_repos_dict["rested"] - log = self.log_path + "rested/" - lib = self.lib_path + "rested_repo/" - repo_name = Init.rested.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - PACKAGES_TXT = f"{repo}{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{md5_file}" - ChangeLog_txt = f"{repo}{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def msb(self): - """Creating MATE local library - """ - ar = "x86" - ver_slack = self.slack_ver - repo = self.def_repos_dict["msb"] - log = self.log_path + "msb/" - lib = self.lib_path + "msb_repo/" - repo_name = Init.msb.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = "x86_64" - - version = self.meta.msb_sub_repo[1:-1] - - if self.meta.slack_rel == "current": - ver_slack = self.meta.slack_rel - - PACKAGES_TXT = f"{repo}{ver_slack}/{version}/{ar}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{ver_slack}/{version}/{ar}/{md5_file}" - ChangeLog_txt = f"{repo}{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def csb(self): - """Creating Cinnamon local library - """ - ar = "x86" - ver_slack = self.slack_ver - repo = self.def_repos_dict["csb"] - log = self.log_path + "csb/" - lib = self.lib_path + "csb_repo/" - repo_name = Init.csb.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = "x86_64" - - if self.meta.slack_rel == "current": - ver_slack = self.meta.slack_rel - - PACKAGES_TXT = f"{repo}{ver_slack}/{ar}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{ver_slack}/{ar}/{md5_file}" - ChangeLog_txt = f"{repo}{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def connos(self): - """Creating connochaetos (slack-n-free) local library - """ - nickname = "slack-n-free" - ar = "" - repo = self.def_repos_dict["connos"] - log = self.log_path + "connos/" - lib = self.lib_path + "connos_repo/" - repo_name = Init.connos.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = "64" - - PACKAGES_TXT = f"{repo}{nickname}{ar}-{self.slack_ver}/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{nickname}{ar}-{self.slack_ver}/{md5_file}" - ChangeLog_txt = f"{repo}{nickname}{ar}-{self.slack_ver}/{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def mles(self): - """Creating Microlinux local library - """ - ar = "32" - repo = self.def_repos_dict["mles"] - log = self.log_path + "mles/" - lib = self.lib_path + "mles_repo/" - repo_name = Init.mles.__name__ - - lib_file = "PACKAGES.TXT" - # lst_file = "" - md5_file = "CHECKSUMS.md5" - log_file = "ChangeLog.txt" - - self.make_dir([log, lib]) - - if self.arch == "x86_64": - ar = "64" - - version = self.meta.mles_sub_repo[1:-1] - PACKAGES_TXT = f"{repo}{version}-{self.slack_ver}-{ar}bit/{lib_file}" - FILELIST_TXT = "" - CHECKSUMS_MD5 = f"{repo}{version}-{self.slack_ver}-{ar}bit/{md5_file}" - ChangeLog_txt = f"{repo}{version}-{self.slack_ver}-{ar}bit/{log_file}" - - if self.check: - return self.checks_logs(log, ChangeLog_txt) - - self.down(lib, PACKAGES_TXT, repo_name) - self.down(lib, CHECKSUMS_MD5, repo_name) - self.down(log, ChangeLog_txt, repo_name) - - self.remote(log, ChangeLog_txt, lib, PACKAGES_TXT, CHECKSUMS_MD5, - FILELIST_TXT, repo_name) - - def down(self, path, link, repo): - """Downloads files - """ - filename = link.split("/")[-1] - if not os.path.isfile(path + filename): - Download(path, link.split(), repo).start() - - def remote(self, *args): - """Removes and recreates files - """ - log_path = args[0] - ChangeLog_txt = args[1] - lib_path = args[2] - PACKAGES_TXT = args[3] - CHECKSUMS_MD5 = args[4] - FILELIST_TXT = args[5] - repo = args[6] - - if self.checks_logs(log_path, ChangeLog_txt): - # remove old files - self.file_remove(log_path, ChangeLog_txt.split("/")[-1]) - self.file_remove(lib_path, PACKAGES_TXT.split("/")[-1]) - self.file_remove(lib_path, CHECKSUMS_MD5.split("/")[-1]) - self.file_remove(lib_path, FILELIST_TXT.split("/")[-1]) - - if repo == "slack": - - dirs = ["core/", "extra/"] - - for d in dirs: - self.file_remove(lib_path + d, "PACKAGES.TXT") - self.file_remove(lib_path + d, "CHECKSUMS.md5") - - self.down(lib_path + "core/", PACKAGES_TXT, repo) - self.down(lib_path + "core/", CHECKSUMS_MD5, repo) - self.down(lib_path + "extra/", self.EXTRA, repo) - self.down(lib_path + "extra/", self.EXT_CHECKSUMS, repo) - - # download new files - if repo != "slack": - self.down(lib_path, PACKAGES_TXT, repo) - self.down(lib_path, CHECKSUMS_MD5, repo) - - self.down(lib_path, FILELIST_TXT, repo) - self.down(log_path, ChangeLog_txt, repo) - - if repo == 'sbo': - self.session.query(SBoTable).delete() # delete all data - self.session.commit() - - def merge(self, path, outfile, infiles): - """Merging files - """ - code = "utf-8" - - with open(path + outfile, 'w', encoding=code) as out_f: - - for f in infiles: - - if os.path.isfile(f"{path}{f}"): - - # checking the encoding before read the file - code = self.check_encoding(path, f) - - with open(path + f, "r", encoding=code) as in_f: - - for line in in_f: - out_f.write(line) - - def file_remove(self, path, filename): - """Checks if filename exists and removes - """ - if os.path.isfile(path + filename): - os.remove(path + filename) - - def checks_logs(self, log_path, url): - """Checks ChangeLog.txt for changes - """ - local = "" - filename = url.split("/")[-1] - server = FileSize(url).server() - - if os.path.isfile(log_path + filename): - local = FileSize(log_path + filename).local() - - if server != local: - return True - - return False - - -class Upgrade: - - def __init__(self): - self.meta = _meta_ - self.log_path = self.meta.log_path - self.lib_path = self.meta.lib_path - self.session = session - - def run(self, repos): - """Removing and creating the packages lists - """ - repositories = self.meta.repositories - - # Replace the enabled repositories from user defined - if repos: - repositories = repos - - for repo in repositories: - - changelogs = f"{self.log_path}{repo}/ChangeLog.txt" - - self.del_tables(repo) - - if os.path.isfile(changelogs): - os.remove(changelogs) - - if os.path.isdir(f"{self.lib_path}{repo}_repo/"): - - for f in os.listdir(f"{self.lib_path}{repo}_repo/"): - - files = f"{self.lib_path}{repo}_repo/{f}" - - if os.path.isfile(files): - os.remove(files) - - elif os.path.isdir(files): - shutil.rmtree(files) - - update = Update() - update.run(repos) - - def del_tables(self, repo): - if repo == 'sbo': - self.session.query(SBoTable).delete() # delete all data - self.session.commit() - - -class Update: - - def __init__(self): - self.meta = _meta_ - self.grey = _meta_.color["GREY"] - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.cyan = _meta_.color["CYAN"] - self.endc = _meta_.color["ENDC"] - self.done = f"{self.green}Done{self.endc}\n" - self.error = f"{self.red}Error{self.endc}\n" - self.session = session - - def run(self, repos): - """Updates repositories lists - """ - print("\nCheck and update repositories:\n") - default = self.meta.default_repositories - enabled = self.meta.repositories - custom = Repo().custom_repository() - - # Replace the enabled repositories from user defined - if repos: - enabled = repos - - for repo in enabled: - - if check_for_local_repos(repo) is True: - continue - - self.done_msg(repo) - - if repo in default: - getattr(Init(False), repo)() - print(self.done, end="") - - elif repo in custom: - Init(False).custom(repo) - print(self.done, end="") - - else: - print(self.error, end="") - - print() # new line at end - - self.check_db() - - raise SystemExit() - - def check_db(self): - """Checking if the table is empty - """ - db = Database() - - if self.session.query(SBoTable).first() is None: - db.insert_sbo_table() - - def done_msg(self, repo): - print(f"{self.grey}Checking repository " - f"[{self.cyan}{repo}{self.grey}] ... " - f"{self.endc}", end="", flush=True) - - -def check_exists_repositories(repo): - """Checking if repositories exists by PACKAGES.TXT file - """ - pkg_list = "PACKAGES.TXT" - - if repo == "sbo": - pkg_list = "SLACKBUILDS.TXT" - - elif check_for_local_repos(repo) is True: - pkg_list = "PACKAGES.TXT" - - if not os.path.isfile(f"{_meta_.lib_path}{repo}_repo/{pkg_list}"): - return False - - -def check_for_local_repos(repo): - """Checks if repository is local - """ - repos_dict = Repo().default_repository() - if repo in repos_dict: - - repo_url = repos_dict[repo] - - if repo_url.startswith("file:///"): - return True diff --git a/slpkg/load.py b/slpkg/load.py deleted file mode 100644 index 15fa0122..00000000 --- a/slpkg/load.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# load.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.utils import Utils -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package - - -def library(repo): - """Loads packages from slpkg library and from local - """ - utils = Utils() - pkg_list, packages = [], "" - - if repo == "sbo": - - if (os.path.isfile( - f"{_meta_.lib_path}{repo}_repo/SLACKBUILDS.TXT")): - packages = utils.read_file( - f"{_meta_.lib_path}{repo}_repo/SLACKBUILDS.TXT") - - else: - - if (os.path.isfile( - f"{_meta_.lib_path}{repo}_repo/PACKAGES.TXT")): - packages = utils.read_file( - f"{_meta_.lib_path}{repo}_repo/PACKAGES.TXT") - - for line in packages.splitlines(): - - if repo == "sbo": - - if line.startswith("SLACKBUILD NAME: "): - pkg_list.append(line[17:].strip()) - - elif "local" not in repo: - - if line.startswith("PACKAGE NAME: "): - pkg_list.append(line[15:].strip()) - - if repo == "local": - pkg_list = find_package("", _meta_.pkg_path) - - return pkg_list - - -class Regex: - """Graps packages with simple regex using asterisk * - with options: starts with string* - ends with *string - include *string* - """ - def __init__(self, pkgs): - self.pkgs = pkgs - - def get(self): - lib, data = [], [] - - for pkg in self.pkgs.split(","): - pr = pkg.split(":") # priotity by repository - data = library(pr[0]) # load data - - if len(pr) > 1: - - for d in data: - - if pr[1].startswith("*") and pr[1].endswith("*"): - - if pr[1][1:-1] in d: - lib.append(self.add(pr[0], d)) - - elif pr[1].endswith("*"): - - if d.startswith(pr[1][:-1]): - lib.append(self.add(pr[0], d)) - - elif pr[1].startswith("*"): - - if d.endswith(pr[1][1:]): - lib.append(self.add(pr[0], d)) - - else: - lib.append(self.add(pr[0], d)) - - else: - lib += pkg.split() - return lib - - def add(self, repo, pkg): - """Splits packages by repository - """ - if repo == "sbo": - return pkg - - else: - return split_package(pkg)[0] diff --git a/slpkg/log_deps.py b/slpkg/log_deps.py deleted file mode 100644 index 7d0fb2ec..00000000 --- a/slpkg/log_deps.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# log_deps.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package - - -def write_deps(deps_dict): - """Writes dependencies in a log file - into the directory `/var/log/slpkg/dep/` - """ - for name, dependencies in deps_dict.items(): - - if find_package(f"{name}-", _meta_.pkg_path): - dep_path = f"{_meta_.log_path}dep/" - - if not os.path.exists(dep_path): - os.mkdir(dep_path) - - if os.path.isfile(f"{dep_path}{name}"): - os.remove(f"{dep_path}{name}") - - if len(dependencies) >= 1: - - with open(f"{dep_path}{name}", "w") as f: - - for dep in dependencies: - f.write(f"{dep}\n") diff --git a/slpkg/main.py b/slpkg/main.py index 9c189db6..e100a293 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -1,1038 +1,141 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -# main.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - import os import sys - -from slpkg.load import Regex -from slpkg.desc import PkgDesc -from slpkg.messages import Msg -from slpkg.config import Config -from slpkg.checks import Updates -from slpkg.clean import clean_tmp -from slpkg.repoinfo import RepoInfo -from slpkg.repolist import RepoList -from slpkg.repositories import Repo -from slpkg.blacklist import BlackList -from slpkg.version import prog_version -from slpkg.auto_pkg import AutoInstall -from slpkg.health import PackageHealth -from slpkg.new_config import NewConfig -from slpkg.tracking import TrackingDeps -from slpkg.repoenable import RepoEnable -from slpkg.pkg_find import FindFromRepos -from slpkg.arguments import options, usage -from slpkg.slpkg_update import it_self_update -from slpkg.status_deps import DependenciesStatus - -from slpkg.init import ( - Update, - Upgrade, - check_exists_repositories -) -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.manager import PackageManager - -from slpkg.sbo.queue import QueuePkgs -from slpkg.sbo.check import sbo_upgrade -from slpkg.sbo.network import SBoNetwork -from slpkg.sbo.autobuild import AutoBuild -from slpkg.sbo.slackbuild import SBoInstall - -from slpkg.slack.patches import Patches -from slpkg.binary.check import pkg_upgrade -from slpkg.binary.install import BinaryInstall - - -class ArgParse(BlackList): - - def __init__(self, args): - super().__init__() - self.args = args - self.meta = _meta_ - self.msg = Msg() - self.commands = [ - "update", - "upgrade", - "repo-add", - "repo-remove", - "repo-enable", - "repo-list", - "repo-info", - "update-slpkg", - "health", - "deps-status", - "new-config", - "clean" - ] - - options = [ - "-c", "--check", - "-l", "--list", - "-c", "--check", - "-s", "--sync", - "-t", "--tracking", - "-p", "--desc", - "-F", "--FIND", - "-f", "--find" - ] - - # checking if the repositories exist - enabled_repos = _meta_.repositories - - if len(self.args) > 1: - repo = self.args[1] - check = check_exists_repositories(repo) - - if (len(self.args) > 1 and self.args[0] in options - and check is False and repo in enabled_repos): - - print("\n Please update the packages lists. Run 'slpkg update'.\n" - " This command should be used to synchronize the packages\n" - " lists from the repositories that are enabled.\n") - - raise SystemExit(1) - - def help_version(self): - """Help and version info - """ - if (len(self.args) == 1 and self.args[0] in ["-h", "--help"] and - self.args[1:] == []): - options() - - elif (len(self.args) == 1 and self.args[0] in ["-v", "--version"] and - self.args[1:] == []): - prog_version() - - else: - usage("", 1) - - def command_update(self): - """Updates package lists repositories - """ - update = Update() - - if len(self.args) == 1 and self.args[0] == "update": - update.run(repos="") - - elif (len(self.args) == 2 and self.args[0] == "update" and - self.args[1].startswith("--repos=")): - - repos = self.args[1].split("=")[-1].split(",") - - for rp in repos: - if rp not in self.meta.repositories: - usage(rp, 1) - - update.run(repos) - - else: - usage("", 1) - - def command_upgrade(self): - """Recreates repositories package lists - """ - upgrade = Upgrade() - - if len(self.args) == 1 and self.args[0] == "upgrade": - upgrade.run(repos="") - - elif (len(self.args) == 2 and self.args[0] == "upgrade" and - self.args[1].startswith("--repos=")): - - repos = self.args[1].split("=")[-1].split(",") - - for rp in repos: - - if rp not in self.meta.repositories: - usage(rp, 1) - - upgrade.run(repos) - - else: - usage("", 1) - - def command_update_slpkg(self): - """Slpkg it self update - """ - if len(self.args) == 2 and self.args[0] == "update-slpkg": - it_self_update() - - else: - usage("", 1) - - def command_repo_enable(self): - """Repositories enable/disable - """ - self.if_checklist() - if len(self.args) == 1 and self.args[0] == "repo-enable": - RepoEnable().choose() - - else: - usage("", 1) - - def command_repo_list(self): - """Repositories list - """ - if len(self.args) == 1 and self.args[0] == "repo-list": - RepoList().repos() - - else: - usage("", 1) - - def command_repo_add(self): - """Adds custom repositories - """ - if len(self.args) == 3 and self.args[0] == "repo-add": - Repo().add(self.args[1], self.args[2]) - - else: - usage("", 1) - - def command_repo_remove(self): - """Removes custom repositories - """ - if len(self.args) == 2 and self.args[0] == "repo-remove": - Repo().remove(self.args[1]) - - else: - usage("", 1) - - def command_repo_info(self): - """Repositories informations - """ - if (len(self.args) == 2 and self.args[0] == "repo-info" and - self.args[1] in RepoList().all_repos): - del RepoList().all_repos - RepoInfo().view(self.args[1]) - - elif (len(self.args) > 1 and self.args[0] == "repo-info" and - self.args[1] not in RepoList().all_repos): - usage(self.args[1], 1) - - else: - usage("", 1) - - def command_health(self): - """Checks package health - """ - if len(self.args) == 1 and self.args[0] == "health": - PackageHealth(mode="").test() - - elif (len(self.args) == 2 and self.args[0] == "health" and - self.args[1] == "--silent"): - PackageHealth(mode=self.args[1]).test() - - else: - usage("", 1) - - def command_deps_status(self): - """Prints dependencies status - """ - image = "" - - for arg in self.args: - - if arg.startswith("--graph="): - image = arg.split("=")[1] - - if len(self.args) == 1 and self.args[0] == "deps-status": - DependenciesStatus(image).show() - - elif len(self.args) == 2 and self.args[0] == "deps-status" and image: - DependenciesStatus(image).show() - - elif (len(self.args) == 2 and self.args[0] == "deps-status" and - "--tree" in self.args): - DependenciesStatus(image).tree() - - elif (len(self.args) == 3 and self.args[0] == "deps-status" and - "--tree" in self.args and image): - DependenciesStatus(image).tree() - - else: - usage("", 1) - - def command_new_config(self): - """Manages .new configuration files - """ - if len(self.args) == 1 and self.args[0] == "new-config": - NewConfig().run() - - else: - usage("", 1) - - def command_clean_tmp(self): - """Clean all downloaded packages and sources""" - if len(self.args) == 1 and self.args[0] == "clean-tmp": - clean_tmp() - - else: - usage("", 1) - - def auto_build(self): - """Auto built tool - """ - options = [ - "-a", - "--autobuild" - ] - - if len(self.args) >= 3 and self.args[0] in options: - AutoBuild(self.args[1], self.args[2:], self.meta.path).run() - - else: - usage("", 1) - - def pkg_list(self): - """List of packages by repository - """ - options = [ - "-l", - "--list" - ] - - flag = ["--index", "--installed", "--name"] - name = INDEX = installed = False - - for arg in self.args[2:]: - - if flag[0] == arg: - INDEX = True - - if flag[1] in arg: - installed = True - - if flag[2] == arg: - name = True - - if arg not in flag: - usage("", 1) - - if (len(self.args) > 1 and len(self.args) <= 5 and - self.args[0] in options): - - if self.args[1] in self.meta.repositories: - PackageManager(binary=None).package_list(self.args[1], - name, - INDEX, - installed) - - else: - usage(self.args[1], 1) - - else: - usage("", 1) - - def pkg_upgrade(self): - """Checks and upgrade packages by repository - """ - options = [ - "-c", - "--check" - ] - flags = [ - "--upgrade", - "--skip=", - "--resolve-off", - "--checklist", - "--rebuild" - ] - flag, skip = self.__pkg_upgrade_flags(flags) - - # Removes --checklist flag from args so that works with - # both conditions - # if flags[3] in self.args: - # self.args.remove(flags[3]) - - if (len(self.args) >= 3 and self.args[0] in options and - self.args[2] == flags[0] and - self.args[1] in self.meta.repositories): - - if self.args[1] not in ["slack", "sbo"]: - BinaryInstall(pkg_upgrade(self.args[1], skip, flag), - self.args[1], flag).start(is_upgrade=True) - - elif self.args[1] == "slack": - Patches(skip, flag).start() - - elif self.args[1] == "sbo": - SBoInstall(sbo_upgrade(skip, flag), flag).start( - is_upgrade=True) - - else: - usage(self.args[1], 1) - - elif len(self.args) == 1 and self.args[0] in options: - Updates(repo="").ALL() - - elif len(self.args) == 2 and self.args[0] in options: - Updates(self.args[1]).run() - - elif (len(self.args) >= 2 and self.args[0] in options and - self.args[1] not in self.meta.repositories): - usage(self.args[1], 1) - - else: - usage("", 1) - - def __pkg_upgrade_flags(self, flags): - """Manages flags for the package upgrade option - """ - # Check for typos or unssuported flags - for arg in self.args[2:]: - - if arg not in flags: - usage("", 1) - - flag, skip = [], "" - if flags[0] in self.args: - - for arg in self.args: - - if arg.startswith(flags[1]): - skip = Regex(arg.split("=")[1]).get() - self.args.remove(arg) - - if arg in flags: - flag.append(arg) - - if arg not in self.args: - self.args.remove(arg) - if "--checklist" in flag: - self.if_checklist() - - return flag, skip - - def pkg_install(self): - """Installs packages by repository - """ - flag = [] - options = [ - "-s", - "--sync" - ] - additional_options = [ - "--case-ins", - "--rebuild", - "--reinstall", - "--patches" - ] - - for arg in self.args: - - if arg.startswith(additional_options[2]): - flag.append(arg) - arg = "" - - if arg in additional_options: - flag.append(arg) - - # clean from flags - for ar in flag: - - if ar in self.args: - self.args.remove(ar) - - if len(self.args) >= 3 and self.args[0] in options: - - if (self.args[1] in self.meta.repositories and - self.args[1] not in ["sbo"]): - BinaryInstall(self.args[2:], self.args[1], flag).start( - is_upgrade=False) - - elif (self.args[1] == "sbo" and - self.args[1] in self.meta.repositories): - SBoInstall(self.args[2:], flag).start(is_upgrade=False) - - else: - usage(self.args[1], 1) - - else: - usage("", 1) - - def pkg_tracking(self): - """Tracking package dependencies - """ - flag = [] - options = [ - "-t", - "--tracking" - ] - additional_options = [ - "--check-deps", - "--graph=", - "--case-ins" - ] - for arg in self.args[2:]: - - if arg.startswith(additional_options[1]): - flag.append(arg) - self.args.remove(arg) - - if arg in additional_options: - flag.append(arg) - - # clean additional options from args - for f in flag: - - if f in self.args: - self.args.remove(f) - - # print usage message if wrong additional option - for arg in self.args: - - if arg.startswith("--"): - - if arg not in additional_options: - usage("", 1) - - if (len(self.args) >= 3 and len(self.args) <= 3 and - self.args[0] in options and - self.args[1] in self.meta.repositories): - TrackingDeps(self.args[2], self.args[1], flag).run() - - elif (len(self.args) >= 2 and - self.args[1] not in self.meta.repositories): - usage(self.args[1], 1) - - else: - usage("", 1) - - def sbo_network(self): - """Views slackbuilds packages - """ - flag = [] - options = [ - "-n", - "--network" - ] - additional_options = [ - "--checklist", - "--case-ins" - ] - - for add in additional_options: - - if add in self.args: - flag.append(add) - self.args.remove(add) - - if "--checklist" in flag: - self.if_checklist() - - if (len(self.args) == 2 and self.args[0] in options and - "sbo" in self.meta.repositories): - SBoNetwork(self.args[1], flag).view() - - elif (len(self.args) == 1 and self.args[0] in options and - "sbo" in self.meta.repositories and - additional_options[0] in flag): - SBoNetwork("", flag).view() - - else: - usage("sbo", 1) - - def pkg_blacklist(self): - """Manages blacklist packages - """ - options = [ - "-b", - "--blacklist" - ] - flag = [ - "--add", - "--remove" - ] - - command = ["list"] - - if (len(self.args) == 2 and self.args[0] in options and - self.args[1] == command[0]): - self.black_listed() - - elif (len(self.args) > 2 and self.args[0] in options and - flag[0] in self.args): - self.args.remove(flag[0]) - self.black_add(self.args[1:]) - - elif (len(self.args) == 2 and self.args[0] in options and - flag[1] in self.args): - self.args.remove(flag[1]) - self.black_remove(list(self.get_black())) - - elif (len(self.args) > 2 and self.args[0] in options and - flag[1] in self.args): - self.args.remove(flag[1]) - self.black_remove(self.args[1:]) - - else: - usage("", 1) - - def pkg_queue(self): - """Manages packages in queue - """ - queue = QueuePkgs() - options = [ - "-q", - "--queue" - ] - - flag = [ - "--add", - "--remove" - ] - - command = [ - "list", - "build", - "install", - "build-install" - ] - - if (len(self.args) > 2 and self.args[0] in options and - flag[0] in self.args): - self.args.remove(flag[0]) - queue.add(self.args[1:]) - - elif (len(self.args) == 2 and self.args[0] in options and - flag[1] in self.args): - self.args.remove(flag[1]) - queue.remove(queue.packages()) - - elif (len(self.args) > 2 and self.args[0] in options and - flag[1] in self.args): - self.args.remove(flag[1]) - queue.remove(self.args[1:]) - - elif (len(self.args) == 2 and self.args[0] in options and - self.args[1] == command[0]): - queue.listed() - - elif (len(self.args) == 2 and self.args[0] in options and - self.args[1] == command[1]): - queue.build() - - elif (len(self.args) == 2 and self.args[0] in options and - self.args[1] == command[2]): - queue.install() - - elif (len(self.args) == 2 and self.args[0] in options and - self.args[1] == command[3]): - queue.build() - queue.install() - - else: - usage("", 1) - - def bin_install(self): - """Installs Slackware binary packages - """ - packages = self.args[1:] - - options = [ - "-i", - "--installpkg" - ] - - flag = "" - - flags = [ - "--warn", - "--md5sum", - "--root", - "--infobox", - "--menu", - "--terse", - "--ask", - "--priority", - "--tagfile" - ] - - if len(self.args) > 1 and self.args[0] in options: - - if self.args[1] in flags: - flag = self.args[1] - packages = self.args[2:] - - PackageManager(packages).install(flag) - - else: - usage("", 1) - - def bin_upgrade(self): - """Installs, upgrades Slackware binary packages - """ - packages = self.args[1:] - - options = [ - "-u", - "--upgradepkg" - ] - - flag = "" - - flags = [ - "--dry-run", - "--install-new", - "--reinstall", - "--verbose" - ] - - if len(self.args) > 1 and self.args[0] in options: - - if self.args[1] in flags: - flag = self.args[1] - packages = self.args[2:] - - PackageManager(packages).upgrade(flag) - - else: - usage("", 1) - - def bin_remove(self): - """Remove Slackware packages - """ - packages = self.args[1:] - - options = [ - "-r", - "--removepkg" - ] - - additional_options = [ - "--deps", - "--check-deps", - "--tag", - "--checklist", - "--third-party" - ] - - flag, extra = "", [] - - flags = [ - "-warn", - "-preserve", - "-copy", - "-keep" - ] - - # merge --check-deps and --deps options - if (additional_options[1] in self.args and - additional_options[0] not in self.args): - self.args.append(additional_options[0]) - - if len(self.args) > 1 and self.args[0] in options: - - for additional in additional_options: - - if additional in self.args: - extra.append(additional) - self.args.remove(additional) - +from dataclasses import dataclass + +from cli_menu import usage +from metadata import Metadata +from queries import SBoQueries +from slackbuild import Slackbuilds +from remove_packages import RemovePackages +from update_repository import UpdateRepository +from clean_logs import CleanLogsDependencies + + +@dataclass +class Check: + slackbuilds: list + log_packages: str = Metadata.log_packages + repo_tag: str = Metadata.repo_tag + + def exists(self): + ''' Checking if the slackbuild exists in the repository. ''' + for sbo in self.slackbuilds: + if not SBoQueries(sbo).slackbuild(): + raise SystemExit(f'Error: Slackbuild {sbo} does not exists.') + + def unsupported(self): + ''' Checking for unsupported slackbuilds. ''' + for sbo in self.slackbuilds: + sources = SBoQueries(sbo).sources() + if 'UNSUPPORTED' in sources: + raise SystemExit(f'Error: Slackbuild {sbo} ' + 'unsupported by arch.') + + def installed(self): + ''' Checking for installed packages. ''' + installed = os.listdir(self.log_packages) + for package in installed: + for sbo in self.slackbuilds: + if sbo + '-' in package and self.repo_tag in package: + return + raise SystemExit('Error: Not found packages for remove.') + + +@dataclass +class Argparse: + args: list + + def flags(self): + self.flags = [] + resolve_off = '--resolve-off' + yes = '--yes' + + if resolve_off in self.args: + self.args.remove(resolve_off) + self.flags.append(resolve_off) + + if yes in self.args: + self.args.remove(yes) + self.flags.append(yes) + + def command(self): + + self.flags() + + if len(self.args) <= 0: + usage(1) + + if len(self.args) == 1: + if self.args[0] in ['--help', '-h']: + usage(0) + + if self.args[0] in ['--version', '-v']: + print(f'{Metadata.proj_name}: {Metadata.version}') + raise SystemExit(0) + + if self.args[0] == 'clean-logs': + logs = CleanLogsDependencies(self.flags) + logs.clean() + raise SystemExit(0) + + # Update repository + if self.args[0] == 'update': + update = UpdateRepository() + update.sbo() + raise SystemExit(0) + + usage(1) + + if len(self.args) >= 2: + # Build slackbuilds + if self.args[0] == 'build': packages = self.args[1:] - for fl in flags: + check = Check(packages) + check.exists() + check.unsupported() - if fl in self.args: - flag = self.args[1] - packages = self.args[2:] + build = Slackbuilds(packages, self.flags, False) + build.execute() + raise SystemExit() - if "--checklist" in extra: - self.if_checklist() + # Install packages + if self.args[0] == 'install': + packages = self.args[1:] - if not packages: - packages = [""] - PackageManager(packages).remove(flag, extra) + check = Check(packages) + check.exists() + check.unsupported() - else: - usage("", 1) + install = Slackbuilds(packages, self.flags, True) + install.execute() + raise SystemExit() - def bin_find(self): - """Finds installed packages - """ - flag = [] - options = [ - "-f", - "--find" - ] + # Remove packages + if self.args[0] == 'remove': + packages = self.args[1:] - additional_options = [ - "--case-ins", - "--third-party" - ] + check = Check(packages) + check.installed() - for add in additional_options: + remove = RemovePackages(packages, self.flags) + remove.remove() + raise SystemExit() - if add in self.args: - flag.append(add) - self.args.remove(add) - - packages = self.args[1:] - - if not packages: - packages = [""] - - if len(self.args) == 1 and self.args[0] in options: - PackageManager(packages).find(flag) - - elif len(self.args) > 1 and self.args[0] in options: - PackageManager(packages).find(flag) - - else: - usage("", 1) - - def pkg_desc(self): - """Prints slack-desc by repository - """ - options = [ - "-p", - "--desc" - ] - - flag = ["--color="] - - colors = [ - "red", - "green", - "yellow", - "cyan", - "grey" - ] - - tag = "" - - for arg in self.args: - - if arg.startswith(flag[0]): - tag = arg[len(flag[0]):] - self.args.remove(arg) - break - - if tag and tag not in colors: - raise SystemExit(f"\nslpkg: Error: Available colors {colors}\n") - - if (len(self.args) == 3 and self.args[0] in options and - self.args[1] in self.meta.repositories and tag in colors): - PkgDesc(self.args[2], self.args[1], tag).view() - - elif (len(self.args) == 3 and self.args[0] in options and - self.args[1] in self.meta.repositories): - PkgDesc(self.args[2], self.args[1], paint="").view() - - elif (len(self.args) > 1 and self.args[0] in options and - self.args[1] not in self.meta.repositories): - usage(self.args[1], 1) - - else: - usage("", 1) - - def pkg_find(self): - """Finds packages from all the enabled repositories - """ - flag = [] - options = [ - "-F", - "--FIND" - ] - - additional_options = ["--case-ins"] - - for arg in self.args: - - if arg in additional_options: - flag.append(arg) - self.args.remove(arg) - - packages = self.args[1:] - - if len(self.args) > 1 and self.args[0] in options: - FindFromRepos().find(packages, flag) - - else: - usage("", 1) - - def pkg_contents(self): - """Prints packages contents - """ - packages = self.args[1:] - - options = [ - "-d", - "--display" - ] - - if len(self.args) > 1 and self.args[0] in options: - PackageManager(packages).display() - - else: - usage("", 1) - - def congiguration(self): - """Manages slpkg configuration file - """ - options = [ - "-g", - "--config" - ] - - command = [ - "print", - "edit", - "reset" - ] - - conf = Config() - - if (len(self.args) == 2 and self.args[0] in options - and self.args[1] in command): - - if self.args[1] == command[0]: - conf.view() - - if self.args[1] == command[1]: - conf.edit() - - if self.args[1] == command[2]: - conf.reset() - - else: - usage("", 1) - - def auto_detect(self, args): - """Checks for already Slackware binary packages - """ - suffixes = [ - ".tgz", - ".txz", - ".tbz", - ".tlz" - ] - - if (not args[0].startswith("-") and args[0] not in self.commands and - args[0].endswith(tuple(suffixes))): - packages, not_found = [], [] - - for pkg in args: - - if pkg.endswith(tuple(suffixes)): - - if os.path.isfile(pkg): - packages.append(pkg) - - else: - not_found.append(pkg) - - if packages: - AutoInstall(packages).select() - - if not_found: - - for ntf in not_found: - self.msg.pkg_not_found("", ntf, "Not installed", "") - - raise SystemExit(0) - - def if_checklist(self): - try: - from dialog import Dialog - except ImportError: - raise SystemExit("Require 'pythondialog': Install with 'slpkg " - "-s sbo python3-pythondialog'") + usage(1) def main(): - args = sys.argv args.pop(0) - argparse = ArgParse(args) - - if len(args) == 0: - usage("", 1) - - argparse.auto_detect(args) - - if len(args) == 2 and args[0] == "update" and args[1] == "slpkg": - args[0] = "update-slpkg" - - arguments = { - "-h": argparse.help_version, - "--help": argparse.help_version, - "-v": argparse.help_version, - "--version": argparse.help_version, - "update": argparse.command_update, - "upgrade": argparse.command_upgrade, - "update-slpkg": argparse.command_update_slpkg, - "repo-enable": argparse.command_repo_enable, - "repo-list": argparse.command_repo_list, - "repo-add": argparse.command_repo_add, - "repo-remove": argparse.command_repo_remove, - "repo-info": argparse.command_repo_info, - "health": argparse.command_health, - "deps-status": argparse.command_deps_status, - "new-config": argparse.command_new_config, - "clean-tmp": argparse.command_clean_tmp, - "-a": argparse.auto_build, - "--autobuild": argparse.auto_build, - "-l": argparse.pkg_list, - "--list": argparse.pkg_list, - "-c": argparse.pkg_upgrade, - "--check": argparse.pkg_upgrade, - "-s": argparse.pkg_install, - "--sync": argparse.pkg_install, - "-t": argparse.pkg_tracking, - "--tracking": argparse.pkg_tracking, - "-n": argparse.sbo_network, - "--netwotk": argparse.sbo_network, - "-b": argparse.pkg_blacklist, - "--blacklist": argparse.pkg_blacklist, - "-q": argparse.pkg_queue, - "--queue": argparse.pkg_queue, - "-i": argparse.bin_install, - "--installpkg": argparse.bin_install, - "-u": argparse.bin_upgrade, - "--upgradepkg": argparse.bin_upgrade, - "-r": argparse.bin_remove, - "--removepkg": argparse.bin_remove, - "-f": argparse.bin_find, - "--find": argparse.bin_find, - "-F": argparse.pkg_find, - "--FIND": argparse.pkg_find, - "-p": argparse.pkg_desc, - "--desc": argparse.pkg_desc, - "-d": argparse.pkg_contents, - "--display": argparse.pkg_contents, - "-g": argparse.congiguration, - "--config": argparse.congiguration - } - try: - arguments[args[0]]() - except KeyError: - usage("", 1) + argparse = Argparse(args) + argparse.command() -if __name__ == "__main__": +if __name__ == '__main__': main() diff --git a/slpkg/md5sum.py b/slpkg/md5sum.py deleted file mode 100644 index 49ec35f2..00000000 --- a/slpkg/md5sum.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# md5sum.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import hashlib - - -def md5(source): - """Return MD5 Checksum - """ - # fix passing char '+' from source - source = source.replace("%2B", "+") - - with open(source, "rb") as file_to_check: - data = file_to_check.read() - - return hashlib.md5(data).hexdigest() diff --git a/slpkg/messages.py b/slpkg/messages.py deleted file mode 100644 index 486b750c..00000000 --- a/slpkg/messages.py +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# messages.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import itertools - -from slpkg.__metadata__ import MetaData as _meta_ - - -class Msg: - """Messages control - """ - def __init__(self): - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.grey = _meta_.color["GREY"] - self.red = _meta_.color["RED"] - self.cyan = _meta_.color["CYAN"] - self.endc = _meta_.color["ENDC"] - - def pkg_not_found(self, bol, pkg, message, eol): - print(f"{bol}No such package {pkg}: {message}{eol}") - - def pkg_found(self, prgnam): - print(f"| Package {prgnam} is already installed") - - def pkg_installed(self, pkg): - print(f"| Package {pkg} installed") - - def build_FAILED(self, prgnam): - self.template(78) - print(f"| Some error on the package {prgnam} " - f"[ {self.red}FAILED{self.endc} ]") - self.template(78) - print(f"| See the log file in '{self.cyan}" - f"/var/log/slpkg/sbo/build_logs{self.endc}' " - f"directory or read the README file") - self.template(78) - print() # new line at end - - def template(self, max_len): - print("+" + "=" * max_len) - - def checking(self): - print(f"{self.grey}Checking...{self.endc} ", end="", flush=True) - - def reading(self): - print(f"{self.grey}Reading package lists...{self.endc} ", - end="", flush=True) - - def resolving(self): - print(f"{self.grey}Resolving dependencies...{self.endc} ", - end="", flush=True) - - def done(self): - print(f"\b{self.green}Done{self.endc}\n", end="") - - def pkg(self, count): - message = "package" - if count > 1: - message = message + "s" - - return message - - def not_found(self, if_upgrade): - if if_upgrade: - print("\nNot found packages for upgrade\n") - - else: - print("\nNot found packages for installation\n") - - def upg_inst(self, if_upgrade): - if not if_upgrade: - print("Installing:") - - else: - print("Upgrading:") - - def answer(self): - if self.meta.default_answer in ["y", "Y"]: - answer = self.meta.default_answer - - else: - try: - answer = input("Would you like to continue [y/N]? ") - except EOFError: - raise SystemExit("\n") - return answer - - def security_pkg(self, pkg): - print() - self.template(78) - print(f"| {' ' * 27}{self.red}*** WARNING ***{self.endc}") - self.template(78) - print(f"| Before proceed with the package '{pkg}' will you must read\n" - f"| the README file. You can use the command " - f"'slpkg -n {pkg}'") - self.template(78) - print() - - def reference(self, install, upgrade): - self.template(78) - print(f"| Total {len(install)} {self.pkg(len(install))} installed and " - f"{len(upgrade)} {self.pkg(len(upgrade))} upgraded") - self.template(78) - - for installed, upgraded in itertools.zip_longest(install, upgrade): - - if upgraded: - print(f"| Package {upgraded} upgraded successfully") - - if installed: - print(f"| Package {installed} installed successfully") - - self.template(78) - print() - - def matching(self, packages): - print(f"\nNot found package with the name " - f"[ {self.cyan}{''.join(packages)}{self.endc} ]. " - "Matching packages:\nNOTE: Not dependencies are resolved\n") diff --git a/slpkg/metadata.py b/slpkg/metadata.py new file mode 100644 index 00000000..675cd426 --- /dev/null +++ b/slpkg/metadata.py @@ -0,0 +1,93 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +# import json +from dataclasses import dataclass + + +@dataclass +class Metadata: + + # Project info + prog_name: str = 'slpkg' + version_info: tuple = (4, 1, 0) + version: str = '{0}.{1}.{2}'.format(*version_info) + license: str = 'MIT' + author: str = 'dslackw' + + ''' Default configurations. ''' + # OS architecture by default + os_arch: str = 'x86_64' + # All necessary paths + tmp_path: str = '/tmp' + tmp_slpkg: str = f'{tmp_path}/{prog_name}' + build_path: str = f'/tmp/{prog_name}/build' + lib_path: str = f'/var/lib/{prog_name}' + log_path: str = f'/var/log/{prog_name}' + db_path: str = f'/var/lib/{prog_name}/database' + sbo_repo_path: str = f'/var/lib/{prog_name}/repository' + log_packages: str = '/var/log/packages' + # Database name + database: str = f'database.{prog_name}' + # Repository details + repo_version: str = '15.0' + sbo_url: str = f'http://slackbuilds.org/slackbuilds/{repo_version}' + sbo_txt: str = 'SLACKBUILDS.TXT' + tar_suffix: str = '.tar.gz' + pkg_suffix: str = '.tgz' + repo_tag: str = '_SBo' + # Slackware commands + installpkg: str = 'upgradepkg --install-new' + removepkg: str = 'removepkg' + # Other configs + colors: str = 'on' + wget_options = '-c -N' + + @classmethod + def colour(cls): + color = { + 'RED': '', + 'GREEN': '', + 'YELLOW': '', + 'CYAN': '', + 'GREY': '', + 'ENDC': '' + } + + if cls.colors in ['on', 'ON']: + color = { + 'RED': '\x1b[31m', + 'GREEN': '\x1b[32m', + 'YELLOW': '\x1b[93m', + 'CYAN': '\x1b[36m', + 'GREY': '\x1b[38;5;247m', + 'ENDC': '\x1b[0m' + } + + return color + + ''' User configuration in /etc/slpkg/ folder. ''' + # with open(f'/etc/{prog_name}/{prog_name}.json', 'r') as conf: + # config = json.load(conf) + + # tmp_path: str = config['tmp_path'] + # tmp_slpkg: str = config['tmp_slpkg'] + # build_path: str = config['build_path'] + # lib_path: str = config['lib_path'] + # log_path: str = config['log_path'] + # db_path: str = config['db_path'] + # sbo_repo_path: str = config['sbo_repo_path'] + # log_packages: str = config['log_packages'] + # # Database name + # database: str = config['database'] + # # Repository details + # repo_version: str = config['repo_version'] + # sbo_url: str = config['sbo_url'] + # sbo_txt: str = config['sbo_txt'] + # tar_suffix: str = config['tar_suffix'] + # pkg_suffix: str = config['pkg_suffix'] + # repo_tag: str = config['repo_tag'] + # # Slackware commands + # upgradepkg: str = config['upgradepkg'] + # removepkg: str = config['removepkg'] diff --git a/slpkg/models/__init.py__ b/slpkg/models/__init__.py similarity index 100% rename from slpkg/models/__init.py__ rename to slpkg/models/__init__.py diff --git a/slpkg/models/data.py b/slpkg/models/data.py deleted file mode 100644 index b406012b..00000000 --- a/slpkg/models/data.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# data.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from progress.bar import Bar -from slpkg.__metadata__ import MetaData as _meta_ -from slpkg.models.models import SBoTable, session - - -class Database: - - def __init__(self): - self.lib_path = _meta_.lib_path - self.session = session - - def insert_sbo_table(self): - """Grabbing data line by line and inserting them into the database - """ - - sbo_tags = [ - "SLACKBUILD NAME:", - "SLACKBUILD LOCATION:", - "SLACKBUILD FILES:", - "SLACKBUILD VERSION:", - "SLACKBUILD DOWNLOAD:", - "SLACKBUILD DOWNLOAD_x86_64:", - "SLACKBUILD MD5SUM:", - "SLACKBUILD MD5SUM_x86_64:", - "SLACKBUILD REQUIRES:", - "SLACKBUILD SHORT DESCRIPTION:" - ] - - sbo_file = self.open_file(f"{self.lib_path}sbo_repo/SLACKBUILDS.TXT") - - bar = Bar("Creating sbo database", max=len(sbo_file), - suffix="%(percent)d%% - %(eta)ds") - - cache = [] # init cache - - for i, line in enumerate(sbo_file, 1): - - for s in sbo_tags: - if line.startswith(s): - line = line.replace(s, "").strip() - cache.append(line) - - if (i % 11) == 0: - data = SBoTable(name=cache[0], location=cache[1], - files=cache[2], version=cache[3], - download=cache[4], download64=cache[5], - md5sum=cache[6], md5sum64=cache[7], - requires=cache[8], short_description=cache[9]) - self.session.add(data) - - cache = [] # reset cache after 11 lines - - bar.next() - bar.finish() - - self.session.commit() - - def open_file(self, file): - with open(file, "r", encoding="utf-8") as f: - return f.readlines() diff --git a/slpkg/models/models.py b/slpkg/models/models.py index 5dfd0958..31100e45 100644 --- a/slpkg/models/models.py +++ b/slpkg/models/models.py @@ -1,58 +1,51 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -# models.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - +from metadata import Metadata +from dataclasses import dataclass from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine, Column, Integer, Text -from slpkg.__metadata__ import MetaData as _meta_ -lib_path = _meta_.lib_path -db = _meta_.db +db_path = Metadata.db_path +database = Metadata.database -DATABASE_URI = f"sqlite:///{lib_path}{db}" +DATABASE_URI = f"sqlite:///{db_path}/{database}" engine = create_engine(DATABASE_URI) session = sessionmaker(engine)() Base = declarative_base() +@dataclass class SBoTable(Base): + ''' The main table for the SBo repository. ''' __tablename__ = "sbotable" - id = Column(Integer, primary_key=True) - name = Column(Text) - location = Column(Text) - files = Column(Text) - version = Column(Text) - download = Column(Text) - download64 = Column(Text) - md5sum = Column(Text) - md5sum64 = Column(Text) - requires = Column(Text) - short_description = Column(Text) + id: int = Column(Integer, primary_key=True) + name: str = Column(Text) + location: str = Column(Text) + files: str = Column(Text) + version: str = Column(Text) + download: str = Column(Text) + download64: str = Column(Text) + md5sum: str = Column(Text) + md5sum64: str = Column(Text) + requires: str = Column(Text) + short_description: str = Column(Text) + + +@dataclass +class LogsDependencies(Base): + ''' The table that stores the dependencies after installing a package. ''' + + __tablename__ = 'logsdependencies' + + id: int = Column(Integer, primary_key=True) + name: str = Column(Text) + requires: str = Column(Text) Base.metadata.create_all(engine) diff --git a/slpkg/new_config.py b/slpkg/new_config.py deleted file mode 100644 index dea9ddd9..00000000 --- a/slpkg/new_config.py +++ /dev/null @@ -1,271 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# new_config.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import shutil -import itertools - -from slpkg.messages import Msg -from slpkg.utils import Utils -from slpkg.__metadata__ import MetaData as _meta_ - - -class NewConfig(Utils): - """Manages .new configuration files - """ - def __init__(self): - self.meta = _meta_ - self.msg = Msg() - self.red = self.meta.color["RED"] - self.green = self.meta.color["GREEN"] - self.endc = self.meta.color["ENDC"] - self.br = "" - - if self.meta.use_colors in ["off", "OFF"]: - self.br = ")" - - self.etc = "/etc/" - self.news = [] - - def run(self): - """prints .new configuration files - """ - self.find_new() - - for n in self.news: - print(n) - - print() - self.msg.template(78) - print(f"| Installed {len(self.news)} new configuration files:") - - self.msg.template(78) - self.choices() - - def find_new(self): - """Finds all '.new' files from /etc/ folder - and subfolders - """ - print("Search for .new configuration files:\n") - - for path, dirs, files in os.walk(self.etc): - del dirs # delete unsed - - for f in files: - - if f.endswith(".new"): - self.news.append(os.path.join(path, f)) - - if not self.news: - print(" No new configuration files\n") - raise SystemExit() - - def choices(self): - """Menu options for new configuration files - """ - print(f"| {self.red}K{self.endc}{self.br}eep the old and .new files, no changes") - print(f"| {self.red}O{self.endc}{self.br}verwrite all old configuration files with new ones") - print("| The old files will be saved with suffix .old") - print(f"| {self.red}R{self.endc}{self.br}emove all .new files") - print(f"| {self.red}P{self.endc}{self.br}rompt K, O, R, D, M option for each single file") - print(f"| {self.red}Q{self.endc}{self.br}uit from menu") - self.msg.template(78) - - try: - choose = input("\nWhat would you like to do [K/O/R/P/Q]? ") - except EOFError: - raise SystemExit("\n") - - print() - - if choose in ("K", "k"): - self.keep() - - elif choose in ("O", "o"): - self.overwrite_all() - - elif choose in ("R", "r"): - self.remove_all() - - elif choose in ("P", "p"): - self.prompt() - - def overwrite_all(self): - """Overwrites all .new files and keep - old with suffix .old - """ - for n in self.news: - self._overwrite(n) - - def remove_all(self): - """Removes all .new files - """ - for n in self.news: - self._remove(n) - print() - - def prompt(self): - """Select file - """ - self.msg.template(78) - print("| Choose what to do file by file:") - print("| {0}K{1}{2}eep, {3}O{4}{5}verwrite, {6}R{7}{8}emove, " - "{9}D{10}{11}iff, {12}M{13}{14}erge, {15}Q{16}{17}uit".format( - self.red, self.endc, self.br, self.red, self.endc, self.br, - self.red, self.endc, self.br, self.red, self.endc, self.br, - self.red, self.endc, self.br, self.red, self.endc, self.br)) - self.msg.template(78) - print() - - self.i = 0 - - try: - while self.i < len(self.news): - self.question(self.news[self.i]) - self.i += 1 - except EOFError: - raise SystemExit("\n") - - def question(self, n): - """Chooses what do to file by file - """ - print() - prompt_ask = input(f"{n} [K/O/R/D/M/Q]? ") - print() - - if prompt_ask in ("K", "k"): - self.keep() - - elif prompt_ask in ("O", "o"): - self._overwrite(n) - - elif prompt_ask in ("R", "r"): - self._remove(n) - - elif prompt_ask in ("D", "d"): - self.diff(n) - self.i -= 1 - - elif prompt_ask in ("M", "m"): - self.merge(n) - - elif prompt_ask in ("Q", "q", "quit"): - self.quit() - - def _remove(self, n): - """Removes one single file - """ - if os.path.isfile(n): - os.remove(n) - - if not os.path.isfile(n): - print(f"File '{n}' removed") - - def _overwrite(self, n): - """Overwrites old file with new and keep file with suffix .old - """ - if os.path.isfile(n[:-4]): - shutil.copy2(n[:-4], n[:-4] + ".old") - print("Old file {0} saved as {1}.old".format( - n[:-4].split("/")[-1], n[:-4].split("/")[-1])) - - if os.path.isfile(n): - shutil.move(n, n[:-4]) - print("New file {0} overwrite as {1}".format( - n.split("/")[-1], n[:-4].split("/")[-1])) - - def keep(self): - pass - - def diff(self, n): - """Prints the differences between the two files - """ - if os.path.isfile(n[:-4]): - diff1 = self.read_file(n[:-4]).splitlines() - - if os.path.isfile(n): - diff2 = self.read_file(n).splitlines() - - lines, ln, c = [], 0, 0 - - for a, b in itertools.izip_longest(diff1, diff2): - ln += 1 - - if a != b: - - for s1, s2 in itertools.izip_longest(str(a), str(b)): - c += 1 - - if s1 != s2: - break - print(f"@@ -{ln},{c} +{ln},{c} @@\n") - - for line in lines[-3:]: - print(f"{line}") - - if a is None: - a = "" - - print(f"{self.red}-{self.endc}{a}") - - if b is None: - b = "" - - print(f"{self.green}+{self.endc}{b}") - lines = [] - c = 0 - - else: - lines.append(a) - - def merge(self, n): - """Merges new file into old - """ - if os.path.isfile(n[:-4]): - old = self.read_file(n[:-4]).splitlines() - - if os.path.isfile(n): - new = self.read_file(n).splitlines() - - with open(n[:-4], "w") as out: - - for l1, l2 in itertools.izip_longest(old, new): - - if l1 is None: - l1 = "" - - if l2 is None: - l2 = "" - - if l1 != l2: - out.write(l2 + "\n") - - else: - out.write(l1 + "\n") - - print("The file {0} merged in file {1}".format( - n.split("/")[-1], n[:-4].split("/")[-1])) - - def quit(self): - raise SystemExit() diff --git a/slpkg/pkg/__init__.py b/slpkg/pkg/__init__.py deleted file mode 100644 index 1c43f989..00000000 --- a/slpkg/pkg/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# [ packages ] directory diff --git a/slpkg/pkg/build.py b/slpkg/pkg/build.py deleted file mode 100644 index 6bbfe032..00000000 --- a/slpkg/pkg/build.py +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# build.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import re -import sys -import time -import shutil -import tarfile -import itertools -import subprocess -import multiprocessing - -from slpkg.utils import Utils -from slpkg.messages import Msg -from slpkg.checksum import check_md5 -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.sbo.greps import SBoGrep - - -class BuildPackage(Utils): - """Builds SBo packages from source - """ - def __init__(self, script, sources, path, auto): - self.script = script - self.sources = sources - self._check_sources() - self.path = path - self.auto = auto - self.meta = _meta_ - self.msg = Msg() - self._SOURCES = self.meta.SBo_SOURCES - self.prgnam = self.script[:-7] - self.log_file = f"build_{self.prgnam}_log" - self.sbo_logs = self.meta.log_path + "sbo/" - self.build_logs = self.sbo_logs + "build_logs/" - self.start_log_time = time.strftime("%H:%M:%S") - self.start_time = time.time() - - if not os.path.exists(self.meta.log_path): - os.mkdir(self.meta.log_path) - - if not os.path.exists(self.sbo_logs): - os.mkdir(self.sbo_logs) - - if not os.path.exists(self.build_logs): - os.mkdir(self.build_logs) - - def build(self): - """Builds package from source and creates log - file in path /var/log/slpkg/sbo/build_logs/. - Also checks the md5sum calculation. - """ - try: - self._delete_dir() - - try: - tar = tarfile.open(self.script) - except Exception as err: - raise SystemExit(err) - - tar.extractall() - tar.close() - - self._makeflags() - self._delete_sbo_tar_gz() - self._create_md5_dict() - - if not self.auto: - os.chdir(self._SOURCES) - - for src in self.sources: - - if not os.path.isfile(src): - continue - # fix build sources with spaces - src = src.replace("%20", " ") - check_md5(self.sbo_md5[src], src) - # copy source and fix passing char '+' from file name - shutil.copy2(src, self.path + self.prgnam) - - os.chdir(self.path + self.prgnam) - - # change permissions - subprocess.call(f"chmod +x {self.prgnam}.SlackBuild", shell=True) - - pass_var = self._pass_variable() - - if self.meta.sbo_build_log in ["on", "ON"]: - - if os.path.isfile(self.build_logs + self.log_file): - os.remove(self.build_logs + self.log_file) - - # start log write - log_head(self.build_logs, self.log_file, self.start_log_time) - subprocess.Popen(f"{' '.join(pass_var)} ./{self.prgnam}.SlackBuild 2>&1 | tee -a " - f"{self.build_logs}{self.log_file}", shell=True, stdout=sys.stdout).communicate() - - sum_time = build_time(self.start_time) - - # write end in log file - log_end(self.build_logs, self.log_file, sum_time) - print(f"Total build time for the package {self.prgnam} : {sum_time}\n") - - else: - subprocess.call(f"{' '.join(pass_var)} ./{self.prgnam}.SlackBuild", shell=True) - os.chdir(self.path) - - except (KeyboardInterrupt, KeyError) as e: - print(e) # (OSError, IOError, KeyError): - self.msg.pkg_not_found("\n", self.prgnam, "Wrong file", "\n") - - def _check_sources(self): - """Fixes filenames with char + - """ - new_sources = [] - for src in self.sources: - new_sources.append(self.fix_file_name(src)) - - self.sources = new_sources - - def _create_md5_dict(self): - """Creates md5 dictionary per source - """ - self.sbo_md5 = {} - - md5_lists = SBoGrep(self.prgnam).checksum() - - for src, md5 in itertools.zip_longest(self.sources, md5_lists): - self.sbo_md5[src] = md5 - - def _makeflags(self): - """Sets variable MAKEFLAGS with the numbers of - processors - """ - if self.meta.makeflags in ["on", "ON"]: - cpus = multiprocessing.cpu_count() - os.environ["MAKEFLAGS"] = f"-j{cpus}" - - def _pass_variable(self): - """Returns enviroment variables - """ - pass_var = [] - - for var in os.environ.keys(): - expVAR = var.split("_") - - if expVAR[0] == self.prgnam.upper() and expVAR[1] != "PATH": - pass_var.append(f"{expVAR[1]}={os.environ[var]}") - - return pass_var - - def _delete_sbo_tar_gz(self): - """Deletes slackbuild tar.gz file after untar - """ - if not self.auto and os.path.isfile(self.meta.build_path + self.script): - os.remove(self.meta.build_path + self.script) - - def _delete_dir(self): - """Deletes old folder if exists before start build - """ - if not self.auto and os.path.isdir(self.meta.build_path + self.prgnam): - shutil.rmtree(self.meta.build_path + self.prgnam) - - -def log_head(path, log_file, log_time): - """Writes headers to log file - """ - with open(path + log_file, "w") as log: - log.write("#" * 79 + "\n\n") - log.write("File : " + log_file + "\n") - log.write("Path : " + path + "\n") - log.write("Date : " + time.strftime("%d/%m/%Y") + "\n") - log.write("Time : " + log_time + "\n\n") - log.write("#" * 79 + "\n\n") - - -def log_end(path, log_file, sum_time): - """Appends END tag to a log file - """ - with open(path + log_file, "a") as log: - log.seek(2) - log.write("#" * 79 + "\n\n") - log.write("Time : " + time.strftime("%H:%M:%S") + "\n") - log.write(f"Total build time : {sum_time}\n") - log.write(" " * 38 + "E N D\n\n") - log.write("#" * 79 + "\n\n") - - -def build_time(start_time): - """Calculates build time per package - """ - diff_time = round(time.time() - start_time, 2) - if diff_time <= 59.99: - sum_time = str(diff_time) + " Sec" - - elif diff_time > 59.99 and diff_time <= 3599.99: - sum_time = round(diff_time / 60, 2) - sum_time_list = re.findall(r"\d+", str(sum_time)) - sum_time = (f"{sum_time_list[0]} Min {sum_time_list[1]} Sec") - - elif diff_time > 3599.99: - sum_time = round(diff_time / 3600, 2) - sum_time_list = re.findall(r"\d+", str(sum_time)) - sum_time = (f"{sum_time_list[0]} Hours {sum_time_list[1]} Min") - - return sum_time diff --git a/slpkg/pkg/find.py b/slpkg/pkg/find.py deleted file mode 100644 index 8c4bd149..00000000 --- a/slpkg/pkg/find.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# find.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -from slpkg.blacklist import BlackList -from slpkg.splitting import split_package - - -def searching(find_pkg, directory): - """Find packages - """ - black = BlackList() - - if os.path.isdir(directory): - installed = os.listdir(directory) - blacklist = list(black.get_black()) - - if os.path.exists(directory): - - for pkg in installed: - - if (not pkg.startswith(".") and pkg.startswith(find_pkg) and - split_package(pkg)[0] not in blacklist): - - yield pkg - - -def find_package(pkg, path): - """Generator allias - """ - return list(searching(pkg, path)) diff --git a/slpkg/pkg/installed.py b/slpkg/pkg/installed.py deleted file mode 100644 index b3744047..00000000 --- a/slpkg/pkg/installed.py +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -* - -# installed.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.pkg.find import find_package - -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - - -class GetFromInstalled: - """Finds and returns version and package name from - already installed packages - """ - def __init__(self, package): - self.package = package - self.meta = _meta_ - self.files = find_package(f"{self.package}-", self.meta.pkg_path) - self.find = "" - - for file in self.files: - - if split_package(file)[0] == self.package: - self.find = file - - def version(self): - """Returns version from installed packages - """ - if self.find: - return split_package(self.find)[1] - - return self.find - - def name(self): - """Returns installed package name - """ - if self.find: - return self.package - - return self.find diff --git a/slpkg/pkg/manager.py b/slpkg/pkg/manager.py deleted file mode 100644 index 0ddbefb0..00000000 --- a/slpkg/pkg/manager.py +++ /dev/null @@ -1,712 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# manager.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import re -import subprocess - - -from slpkg.pkg.find import find_package -from slpkg.pkg.installed import GetFromInstalled - -from slpkg.utils import Utils -from slpkg.messages import Msg -from slpkg.dialog_box import DialogUtil -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.slack.slackware_repo import slackware_repository - - -class PackageManager(Utils): - """Package manager class for install, upgrade, - reinstall, remove, find and display packages""" - def __init__(self, binary): - self.binary = binary - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.yellow = _meta_.color["YELLOW"] - self.cyan = _meta_.color["CYAN"] - self.grey = _meta_.color["GREY"] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.skip = [] - self.size = 0 - self.file_size = 0 - self.unit = "Kb" - - def install(self, flag): - """Installs Slackware binary packages - """ - for pkg in self.binary: - try: - subprocess.call(f"installpkg {flag} {pkg}", shell=True) - - check = pkg[:-4].split("/")[-1] - - if os.path.isfile(self.meta.pkg_path + check): - print("Completed!\n") - - else: - raise SystemExit(1) - - except subprocess.CalledProcessError: - self._not_found("Can't install", self.binary, pkg) - raise SystemExit(1) - - def upgrade(self, flag): - """Upgrades Slackware binary packages with new - """ - for pkg in self.binary: - try: - subprocess.call(f"upgradepkg {flag} {pkg}", shell=True) - - check = pkg[:-4].split("/")[-1] - - if os.path.isfile(self.meta.pkg_path + check): - print("Completed!\n") - - else: - raise SystemExit(1) - - except subprocess.CalledProcessError: - self._not_found("Can't upgrade", self.binary, pkg) - raise SystemExit(1) - - def _not_found(self, message, binary, pkg): - if len(binary) > 1: - bol = eol = "" - - else: - bol = eol = "\n" - - self.msg.pkg_not_found(bol, pkg, message, eol) - - def remove(self, flag, extra): - """Removes Slackware binary packages - """ - self.flag = flag - self.extra = extra - self.dep_path = self.meta.log_path + "dep/" - dependencies, rmv_list = [], [] - self.removed = self._view_removed() - - if not self.removed: - print() # new line at end - - else: - msg = "package" - - if len(self.removed) > 1: - msg = msg + "s" - - try: - if self.meta.default_answer in ["y", "Y"]: - remove_pkg = self.meta.default_answer - - else: - remove_pkg = input( - "\nAre you sure to remove {0} {1} [y/N]? ".format( - str(len(self.removed)), msg)) - - except EOFError: - raise SystemExit(1) - - if remove_pkg in ["y", "Y"]: - self._check_if_used(self.binary) - - for rmv in self.removed: - '''If package build and install with "slpkg -s sbo " - then looks in the log file for dependencies "/var/log/slpkg/dep", - reads and removes all but remove only the package. - ''' - - if (os.path.isfile(self.dep_path + rmv) and - self.meta.del_deps in ["on", "ON"] or - os.path.isfile(self.dep_path + rmv) and - "--deps" in self.extra): - dependencies = self._view_deps(self.dep_path, rmv) - - if dependencies and self._rmv_deps_answer() in ["y", - "Y"]: - rmv_list += self._rmv_deps(dependencies, rmv) - - else: - rmv_list += self._rmv_pkg(rmv) - - else: - rmv_list += self._rmv_pkg(rmv) - - # Prints all removed packages - self._reference_rmvs(rmv_list) - - def _rmv_deps_answer(self): - """Removes dependencies answer - """ - if self.meta.remove_deps_answer in ["y", "Y"]: - remove_dep = self.meta.remove_deps_answer - - else: - try: - remove_dep = input( - "\nRemove dependencies (maybe used by " - "other packages) [y/N]? ") - print() - except EOFError: - raise SystemExit("\n") - - return remove_dep - - def _get_removed(self): - """Manages removed packages by extra options - """ - extra = self.extra - removed, packages, pkg = [], [], "" - - if "--tag" in extra: - - for pkg in find_package("", self.meta.pkg_path): - - for tag in self.binary: - - if pkg.endswith(tag): - removed.append(split_package(pkg)[0]) - packages.append(pkg) - pkg = "" - extra = "" - - elif "--third-party" in extra: - slack_packages, slack_names = slackware_repository() - slpkg_pkg = self.meta.__all__ + "-" + self.meta.__version__ - binary = self.binary - - for pkg in find_package("", self.meta.pkg_path): - slack_name = split_package(pkg)[0] - - for tag in binary: - - if (slack_name not in slack_names and - slpkg_pkg not in pkg and tag in pkg): - removed.append(split_package(pkg)[0]) - packages.append(pkg) - pkg = "" - extra = "" - - else: - for pkg in self.binary: - name = GetFromInstalled(pkg).name() - ver = GetFromInstalled(pkg).version() - package = find_package(f"{name}-{ver}-", self.meta.pkg_path) - - if pkg and name == pkg: - removed.append(pkg) - packages.append(package[0]) - - if not removed: - self.msg.pkg_not_found("", pkg, "Can't remove", "\n") - raise SystemExit(1) - - return removed, packages - - def _view_removed(self): - """Views packages before removed - """ - print("Packages with name matching [ {0}{1}{2} ]\n".format( - self.cyan, ", ".join(self.binary), self.endc)) - removed, packages = self._get_removed() - - if packages and "--checklist" in self.extra: - removed = [] - text = "Press 'spacebar' to unchoose packages from the remove" - backtitle = f"{self.meta.__all__} {self.meta.__version__}" - status = True - pkgs = DialogUtil(packages, text, " Remove ", backtitle, - status).checklist() - if pkgs: - for rmv in pkgs: - removed.append(split_package(rmv)[0]) - self.meta.default_answer = "y" - - else: - for rmv, pkg in zip(removed, packages): - self._sizes(pkg) - print(f"[ {self.red}delete{self.endc} ] --> " - f"[ {self.file_size} ] - {pkg}") - - self._calc_sizes() - self._remove_summary() - - if "--third-party" in self.extra: - print() - self.msg.template(78) - print(f"| {' ' * 27}{self.red}*** WARNING ***{self.endc}") - print("| Before you use third-party option, be sure you have" - " updated the packages \n| lists. Run the command" - " 'slpkg update' and 'slpkg -c slack --upgrade'") - self.msg.template(78) - - return removed - - def _calc_sizes(self): - """Package size calculation - """ - if self.size > 1024: - self.unit = "Mb" - self.size = (self.size / 1024) - - if self.size > 1024: - self.unit = "Gb" - self.size = (self.size / 1024) - - def _remove_summary(self): - """Removed packge size summary - """ - if self.size > 0: - print("\nRemoved summary") - print("=" * 79) - print("{0}Size of removed packages {1} {2}.{3}".format( - self.grey, round(self.size, 2), self.unit, self.endc)) - - def _view_deps(self, path, package): - """Views dependencies before remove - """ - self.size = 0 - packages = [] - dependencies = (self.read_file(path + package)).splitlines() - - for dep in dependencies: - - if GetFromInstalled(dep).name(): - ver = GetFromInstalled(dep).version() - packages.append(f"{dep}-{ver}") - - else: - dependencies.remove(dep) - - if packages: - - if "--checklist" in self.extra: - deps, dependencies = [], [] - text = "Found dependencies for the package {0}".format(package) - backtitle = f"{self.meta.__all__} {self.meta.__version__}" - status = True - deps = DialogUtil(packages, text, " Remove ", backtitle, - status).checklist() - for d in deps: - dependencies.append("-".join(d.split("-")[:-1])) - self.meta.remove_deps_answer = "y" - - else: - print() # new line at start - self.msg.template(78) - print(f"| Found dependencies for the package {package}:") - self.msg.template(78) - for pkg in packages: - find = find_package(f"{pkg}-", self.meta.pkg_path) - self._sizes(find[0]) - print(f"| {self.red}{pkg}{self.endc}") - self.msg.template(78) - self._calc_sizes() - print("| {0}Size of removed dependencies {1} {2}{3}".format( - self.grey, round(self.size, 2), self.unit, self.endc)) - self.msg.template(78) - - return dependencies - - def _removepkg(self, package): - """removepkg Slackware command - """ - try: - subprocess.call(f"removepkg {self.flag} {package}", shell=True) - - if os.path.isfile(self.dep_path + package): - os.remove(self.dep_path + package) # remove log - - except subprocess.CalledProcessError as er: - raise SystemExit(er) - - def _rmv_deps(self, dependencies, package): - """Removes dependencies - """ - removes = [] - dependencies.append(package) - - self._check_if_used(dependencies) - - for dep in dependencies: - - if dep not in self.skip and GetFromInstalled(dep).name(): - ver = GetFromInstalled(dep).version() - removes.append(f"{dep}-{ver}") - self._removepkg(dep) - - return removes - - def _rmv_pkg(self, package): - """Removes one signle package - """ - removes = [] - - if GetFromInstalled(package).name() and package not in self.skip: - ver = GetFromInstalled(package).version() - removes.append(f"{package}-{ver}") - self._removepkg(package) - - return removes - - def _skip_remove(self): - """Skip packages from remove - """ - if "--checklist" not in self.extra: - self.msg.template(78) - print("| Insert packages to exception remove:") - self.msg.template(78) - try: - self.skip = input(" > ").split() - except EOFError: - raise SystemExit("\n") - - for s in self.skip: - - if s in self.removed: - self.removed.remove(s) - - def _check_if_used(self, removes): - """Checks package if dependencies for another package - before removed""" - if "--check-deps" in self.extra: - package, dependency, pkg_dep = [], [], [] - - for pkg in find_package("", self.dep_path): - deps = self.read_file(self.dep_path + pkg) - - for rmv in removes: - - if GetFromInstalled(rmv).name() and rmv in deps.split(): - pkg_dep.append(f"{rmv} is dependency of the " - f"package --> {pkg}") - package.append(pkg) - dependency.append(rmv) - - if package: - - if "--checklist" in self.extra: - text = ("Press 'spacebar' to choose packages for the" - " remove exception") - backtitle = f"{self.meta.__all__} {self.meta.__version__}" - status = False - choose = DialogUtil(pkg_dep, text, " !!! WARNING !!! ", - backtitle, status).checklist() - - for pkg in choose: - self.skip.append(pkg.split()[0]) - - else: - self.msg.template(78) - print("| {0}{1}{2}".format( - self.red, " " * 30 + "!!! WARNING !!!", self.endc)) - self.msg.template(78) - - for p, d in zip(package, dependency): - print(f"| {self.yellow}{d}{self.endc} is dependency " - f"of the package --> {self.green}{p}{self.endc}") - self.msg.template(78) - self._skip_remove() - - def _reference_rmvs(self, removes): - """Prints all removed packages - """ - print() - self.msg.template(78) - msg_pkg = "package" - - if len(removes) > 1: - msg_pkg = "packages" - - print(f"| Total {len(removes)} {msg_pkg} removed") - self.msg.template(78) - - for pkg in removes: - - if not GetFromInstalled(pkg).name(): - print(f"| Package {pkg} removed") - - else: - print(f"| Package {pkg} not found") - - self.msg.template(78) - print() # new line at end - - def find(self, flag): - """Finds installed Slackware packages - """ - matching, packages = 0, [] - pkg_cache, match_cache = "", "" - slack_packages, slack_names = slackware_repository() - - print("Packages with matching name [ {0}{1}{2} ]\n".format( - self.cyan, ", ".join(self.binary), self.endc)) - - for pkg in self.binary: - - for match in find_package("", self.meta.pkg_path): - pkg_cache = pkg - match_cache = match - split_name = split_package(match)[0] - - if "--case-ins" in flag: - pkg_cache = pkg.lower() - match_cache = match.lower() - - if ("--third-party" in flag and not self.binary and - split_name not in slack_names): - packages.append(match) - - if ("--third-party" in flag and pkg_cache in match_cache and - split_name not in slack_names): - packages.append(match) - - if pkg_cache in match_cache and not flag: - packages.append(match) - - if ("--case-ins" in flag and "--third-party" not in flag and - pkg_cache in match_cache): - packages.append(match) - - for pkgs in packages: - matching += 1 - self._sizes(pkgs) - print(f"[ {self.green}installed{self.endc} ] " - f"[ {self.file_size} ] - {pkgs}") - - if matching == 0: - message = "Can't find" - self.msg.pkg_not_found("", ", ".join(self.binary), message, "\n") - raise SystemExit(1) - - else: - self._calc_sizes() - print("\nFound summary") - print("=" * 79) - print("{0}Total found {1} matching packages.{2}".format( - self.grey, matching, self.endc)) - print("{0}Size of installed packages {1} {2}.{3}\n".format( - self.grey, round(self.size, 2), self.unit, self.endc)) - - def _sizes(self, package): - """Package size summary - """ - data = self.read_file(self.meta.pkg_path + package) - for line in data.splitlines(): - - if line.startswith("UNCOMPRESSED PACKAGE SIZE:"): - digit = float((''.join(re.findall( - r"[-+]?\d+[\.]?\d*[eE]?[-+]?\d*", line[26:])))) - self.file_size = line[26:].strip() - - if "M" in line[26:]: - self.size += digit * 1024 - - else: - self.size += digit - break - - def display(self): - """Prints the Slackware packages contents - """ - for pkg in self.binary: - name = GetFromInstalled(pkg).name() - ver = GetFromInstalled(pkg).version() - find = find_package(f"{name}-{ver}-", self.meta.pkg_path) - - if find: - package = self.read_file( - self.meta.pkg_path + "".join(find)) - print(package) - - else: - message = "Can't dislpay" - - if len(self.binary) > 1: - bol = eol = "" - - else: - bol = eol = "\n" - - self.msg.pkg_not_found(bol, pkg, message, eol) - raise SystemExit(1) - - def package_list(self, repo, name, INDEX, installed): - """List with the installed packages - """ - tty_size = os.popen("stty size", "r").read().split() - row = int(tty_size[0]) - 2 - - try: - all_installed_names = [] - index, page, pkg_list = 0, row, [] - r = self.list_lib(repo) - pkg_list = self.list_greps(repo, r)[0] - all_installed_names = self.list_of_installed(repo, name) - - print() - - for pkg in sorted(pkg_list): - pkg = self._splitting_packages(pkg, repo, name) - - if installed and repo: - - if pkg in all_installed_names: - pkg = f"{self.green}{pkg}{self.endc}" - - if INDEX: - index += 1 - pkg = self.list_color_tag(pkg) - print(f"{self.grey}{index}:{self.endc} {pkg}") - - if index == page: - read = input(f"\nPress {self.cyan}Enter{self.endc} to " - f"continue... ") - - if read in ["Q", "q"]: - break - print() # new line after page - page += row - - else: - print(pkg) - print() # new line at end - - except (EOFError, KeyboardInterrupt, BrokenPipeError, IOError): - raise SystemExit(1) - - def _splitting_packages(self, pkg, repo, name): - """Returns package name from repositories - """ - if name and repo != "sbo": - pkg = split_package(pkg)[0] - - elif not name and repo != "sbo": - pkg = pkg[:-4] - - return pkg - - def list_greps(self, repo, packages): - """Grabs packages - """ - pkg_list, pkg_size = [], [] - for line in packages.splitlines(): - - if repo == "sbo": - - if line.startswith("SLACKBUILD NAME: "): - pkg_list.append(line[17:].strip()) - pkg_size.append("0 K") - - else: - - if line.startswith("PACKAGE NAME: "): - pkg_list.append(line[15:].strip()) - - if line.startswith("PACKAGE SIZE (compressed): "): - pkg_size.append(line[26:].strip()) - - if repo == "alien" or repo == "ktown": - return alien_filter(pkg_list, pkg_size) - - return pkg_list, pkg_size - - def list_lib(self, repo): - """Returns package lists - """ - packages = "" - - if repo == "sbo": - - if (os.path.isfile( - self.meta.lib_path + "sbo_repo/SLACKBUILDS.TXT")): - packages = self.read_file(f"{self.meta.lib_path}" - "sbo_repo/SLACKBUILDS.TXT") - - else: - - if (os.path.isfile( - self.meta.lib_path + f"{repo}_repo/PACKAGES.TXT")): - packages = self.read_file(f"{self.meta.lib_path}" - f"{repo}_repo/PACKAGES.TXT") - return packages - - def list_color_tag(self, pkg): - """Tag with colour installed packages - """ - name = GetFromInstalled(pkg).name() - find = f"{name}-" - - if pkg.endswith(".txz") or pkg.endswith(".tgz"): - find = pkg[:-4] - - if find_package(find, self.meta.pkg_path): - pkg = f"{self.green}{pkg}{self.endc}" - - return pkg - - def list_of_installed(self, repo, name): - """Returns installed packages - """ - all_installed_names = [] - all_installed_packages = find_package("", self.meta.pkg_path) - - for inst in all_installed_packages: - - if repo == "sbo" and inst.endswith("_SBo"): - name = split_package(inst)[0] - all_installed_names.append(name) - - else: - - if name: - all_installed_names.append(split_package(inst)[0]) - - else: - all_installed_names.append(inst) - - return all_installed_names - - -def alien_filter(packages, sizes): - """This filter avoids listing double packages from - alien repository - """ - cache, npkg, nsize = [], [], [] - - for p, s in zip(packages, sizes): - name = split_package(p)[0] - - if name not in cache: - cache.append(name) - npkg.append(p) - nsize.append(s) - - return npkg, nsize diff --git a/slpkg/pkg_find.py b/slpkg/pkg_find.py deleted file mode 100644 index 7b21d32a..00000000 --- a/slpkg/pkg_find.py +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# pkg_find.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.messages import Msg -from slpkg.sbo.greps import SBoGrep -from slpkg.pkg.manager import PackageManager -from slpkg.__metadata__ import MetaData as _meta_ - - -class FindFromRepos: - """Finds packages from all enabled repositories - """ - def __init__(self): - self.cache = "" - self.p_cache = "" - self.find_cache = "" - self.count_pkg = 0 - self.count_repo = 0 - self.meta = _meta_ - self.msg = Msg() - self.cyan = self.meta.color["CYAN"] - self.grey = self.meta.color["GREY"] - self.endc = self.meta.color["ENDC"] - - def find(self, pkg, flag): - """Starts to find packages and print - """ - print(f"Packages with name matching [ {self.cyan}" - f"{', '.join(pkg)}{self.endc} ]\n") - self.msg.template(78) - print(f"| Repository Package {' ' * 54}Size") - self.msg.template(78) - - for repo in _meta_.repositories: - PACKAGES_TXT = PackageManager(pkg).list_lib(repo) - packages, sizes = PackageManager(pkg).list_greps(repo, - PACKAGES_TXT) - for find, size in zip(packages, sizes): - - for p in pkg: - - if "--case-ins" in flag: - self.p_cache = p.lower() - self.find_cache = find.lower() - - else: - self.p_cache = p - self.find_cache = find - - if self.p_cache in self.find_cache: - - if self.cache != repo: - self.count_repo += 1 - self.cache = repo - self.count_pkg += 1 - ver = self.sbo_version(repo, find) - - print(f" {self.cyan}{repo}{self.endc}" - f"{' ' * (11 - len(repo))}{find + ver} " - f"{' ' * (54 -len(find + ver))}{size:>11}") - - print("\nFound summary") - print("=" * 79) - print(f"{self.grey}Total found {self.count_pkg} packages in " - f"{self.count_repo} repositories.{self.endc}\n") - - def sbo_version(self, repo, find): - """Adds version to SBo packages - """ - ver = "" - - if repo == "sbo": - ver = f"-{SBoGrep(find).version()}" - - return ver diff --git a/slpkg/queries.py b/slpkg/queries.py new file mode 100644 index 00000000..81ba707d --- /dev/null +++ b/slpkg/queries.py @@ -0,0 +1,90 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +from metadata import Metadata +from models.models import SBoTable +from models.models import session as Session +from dataclasses import dataclass + + +@dataclass() +class SBoQueries: + ''' Queries class for the sbo repository. ''' + name: str + session: str = Session + os_arch: str = Metadata.os_arch + + def names(self): + return list(self._names_grabbing()) + + def slackbuild(self): + sbo = self.session.query( + SBoTable.name).filter(SBoTable.name == self.name).first() + + return sbo + + def location(self): + location = self.session.query( + SBoTable.location).filter(SBoTable.name == self.name).first() + + return location[0] + + def sources(self): + source, source64 = self.session.query( + SBoTable.download, SBoTable.download64).filter( + SBoTable.name == self.name).first() + + return self._chose_arch(source, source64) + + def requires(self): + requires = self.session.query( + SBoTable.requires).filter( + SBoTable.name == self.name).first() + + return requires[0].split() + + def version(self): + version = self.session.query( + SBoTable.version).filter( + SBoTable.name == self.name).first() + + return version[0] + + def checksum(self): + md5sum, md5sum64, = [], [] + mds5, md5s64 = self.session.query( + SBoTable.md5sum, SBoTable.md5sum64).filter( + SBoTable.name == self.name).first() + + if mds5: + md5sum.append(mds5) + if md5s64: + md5sum64.append(md5s64) + + return self._chose_arch(md5sum, md5sum64) + + def description(self): + desc = self.session.query( + SBoTable.short_description).filter( + SBoTable.name == self.name).first() + + return desc[0] + + def files(self): + files = self.session.query( + SBoTable.files).filter( + SBoTable.name == self.name).first() + + return files[0] + + def _chose_arch(self, arch, arch64): + if self.os_arch and arch64: + return arch64 + + return arch + + def _names_grabbing(self): + names = self.session.query(SBoTable.name).all() + for n in names: + yield n[0] diff --git a/slpkg/remove.py b/slpkg/remove.py deleted file mode 100644 index a20dc10d..00000000 --- a/slpkg/remove.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# remove.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import shutil - - -from slpkg.__metadata__ import MetaData as _meta_ - - -def delete_package(path, packages): - """Deletes downloaded packages - """ - if _meta_.del_all in ["on", "ON"]: - - for pkg in packages: - os.remove(f"{path}{pkg}") - - -def delete_folder(folder): - """Deletes folder with all files. - """ - if _meta_.del_folder in ["on", "ON"] and os.path.exists(folder): - shutil.rmtree(folder) diff --git a/slpkg/remove_packages.py b/slpkg/remove_packages.py new file mode 100644 index 00000000..54f85080 --- /dev/null +++ b/slpkg/remove_packages.py @@ -0,0 +1,79 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +import os +import subprocess +from metadata import Metadata + +from dataclasses import dataclass +from views.views import ViewMessage +from models.models import LogsDependencies +from models.models import session as Session + + +@dataclass +class RemovePackages: + ''' Remove installed packages. ''' + packages: str + flags: list + session: str = Session + log_packages: str = Metadata.log_packages + repo_tag: str = Metadata.repo_tag + removepkg: str = Metadata.removepkg + color: str = Metadata.colour + + def remove(self): + ''' Remove package with dependencies. ''' + self.installed_packages = [] + view = ViewMessage() + view.remove_packages() + + for pkg in self.packages: + self.view_installed_packages(pkg) + + self.dependencies = self.session.query( + LogsDependencies.requires).filter( + LogsDependencies.name == pkg).first() + + if self.dependencies and '--resolve-off' not in self.flags: + print('\nDependencies:') + for dep in self.dependencies[0].split(): + self.view_installed_packages(dep) + + view.question(self.flags) + + self.remove_packages() + self.delete_main_logs() + + if self.dependencies and '--resolve-off' not in self.flags: + self.delete_deps_logs() + + def remove_packages(self): + ''' Run Slackware command to remove the packages. ''' + for package in self.installed_packages: + command = f'{self.removepkg} {package}' + subprocess.call(command, shell=True) + + def delete_main_logs(self): + ''' Delete main packages from logs. ''' + for pkg in self.packages: + self.session.query(LogsDependencies).filter( + LogsDependencies.name == pkg).delete() + self.session.commit() + + def delete_deps_logs(self): + ''' Delete depends packages from logs. ''' + for pkg in self.dependencies[0].split(): + self.session.query(LogsDependencies).filter( + LogsDependencies.name == pkg).delete() + self.session.commit() + + def view_installed_packages(self, name): + ''' View and creates list with packages for remove. ''' + installed = os.listdir(self.log_packages) + color = self.color() + for package in installed: + if package.startswith(name) and self.repo_tag in package: + self.installed_packages.append(package) + print(f'[{color["RED"]} delete {color["ENDC"]}] -> {package}') diff --git a/slpkg/repoenable.py b/slpkg/repoenable.py deleted file mode 100644 index a3b9a6e5..00000000 --- a/slpkg/repoenable.py +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# repoenable.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.utils import Utils -from slpkg.messages import Msg -from slpkg.dialog_box import DialogUtil -from slpkg.__metadata__ import MetaData as _meta_ - - -class RepoEnable(Utils): - """Reads repositories.conf file and update with new enabled or - disabled repositories - """ - def __init__(self): - self.meta = _meta_ - self.red = _meta_.color["RED"] - self.grey = _meta_.color["GREY"] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.tag = "[REPOSITORIES]" - self.tag_line = False - self.repositories_conf = "repositories.conf" - self.conf = self.read_file(f"{self.meta.conf_path}" - f"{self.repositories_conf}") - self.enabled = [] - self.disabled = [] - self.selected = [] - - def choose(self): - """Choose repositories - """ - keys = """ -Choose repositories at the right side for enable or to the -left side for disable. - -Keys: SPACE select or deselect the highlighted repositories, - move it between the left and right lists - ^ move the focus to the left list - $ move the focus to the right list - TAB move focus - ENTER press the focused button - - Disabled <---------------- REPOSITORIES ----------------> Enabled""" - - self.read_enabled() - self.read_disabled() - - text, title, backtitle, status = keys, " Repositories ", "", False - - self.selected = DialogUtil(self.disabled, text, title, backtitle, - status).buildlist(self.enabled) - - if self.selected is not None: - self.update_repos() - - else: - self.selected = self.enabled - - self.clear_screen() - self.reference() - - def read_enabled(self): - """Reads enabled repositories - """ - for line in self.conf.splitlines(): - line = line.lstrip() - - if self.tag in line: - self.tag_line = True - - if (line and self.tag_line and not line.startswith("#") and - self.tag not in line): - self.enabled.append(line) - - self.tag_line = False - - def read_disabled(self): - """Reads disabled repositories - """ - for line in self.conf.splitlines(): - line = line.lstrip() - - if self.tag in line: - self.tag_line = True - - if self.tag_line and line.startswith("#"): - line = "".join(line.split("#")).strip() - self.disabled.append(line) - - self.tag_line = False - - def update_repos(self): - """Updates repositories.conf file with enabled or disabled - repositories - """ - with open(f"{self.meta.conf_path}" - f"{self.repositories_conf}", "w") as new_conf: - - for line in self.conf.splitlines(): - line = line.lstrip() - - if self.tag in line: - self.tag_line = True - - if self.tag_line and line.startswith("#"): - repo = "".join(line.split("#")).strip() - - if repo in self.selected: - new_conf.write(line.replace(line, f"{repo}\n")) - continue - - if (self.tag_line and not line.startswith("#") and - line != self.tag): - repo = line.strip() - - if repo not in self.selected: - new_conf.write(line.replace(line, f"# {line}\n")) - continue - - new_conf.write(f"{line}\n") - - def clear_screen(self): - """Clear screen - """ - os.system("clear") - - def reference(self): - """Reference enable repositories - """ - total_enabled = ", ".join(self.selected) - - if len(total_enabled) < 1: - total_enabled = (f"{self.red}Are you crazy? This is a package " - f"manager for packages :p{self.endc}") - - self.msg.template(78) - print("| Enabled repositories:") - self.msg.template(78) - - print(f"| {total_enabled}") - self.msg.template(78) - print(f"{self.grey}Total {len(self.selected)}/" - f"{len(self.enabled + self.disabled)} " - f"repositories enabled.{self.endc}\n") diff --git a/slpkg/repoinfo.py b/slpkg/repoinfo.py deleted file mode 100644 index c1a17f5b..00000000 --- a/slpkg/repoinfo.py +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# repoinfo.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.sizes import units -from slpkg.utils import Utils -from slpkg.repositories import Repo -from slpkg.repolist import RepoList -from slpkg.__metadata__ import MetaData as _meta_ - - -class RepoInfo(Utils): - """Repository information - """ - def __init__(self): - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.endc = _meta_.color["ENDC"] - self.repo = Repo() - - self.form = { - "Last updated:": "", - "Number of packages:": "", - "Repo id:": "", - "Default:": "", - "Repo url:": "", - "Status:": "", - "Total compressed packages:": "", - "Total uncompressed packages:": "" - } - - self.meta = _meta_ - self.all_repos = self.repo.default_repository() - self.all_repos["slack"] = self.repo.slack() - self.all_repos.update(self.repo.custom_repository()) - - del RepoList().all_repos - - def view(self, repo): - """Views repository information - """ - status = f"{self.red}disabled{self.endc}" - self.form["Status:"] = status - self.form["Default:"] = "no" - - if repo in self.meta.default_repositories: - self.form["Default:"] = "yes" - - if (repo in self.meta.repositories and - os.path.isfile(f"{self.meta.lib_path}" - f"{repo}_repo/PACKAGES.TXT")): - status = f"{self.green}enabled{self.endc}" - - if repo != "sbo": - data = self.repository_data(repo) - size = units(data[1], data[2]) - self.form["Repo id:"] = repo - self.form["Repo url:"] = self.all_repos[repo] - self.form["Total compressed packages:"] = f"{str(size[1][0])} {str(size[0][0])}" - self.form["Total uncompressed packages:"] = f"{str(size[1][1])} {str(size[0][1])}" - self.form["Number of packages:"] = data[0] - self.form["Status:"] = status - self.form["Last updated:"] = data[3] - - elif (repo == "sbo" and os.path.isfile( - f"{self.meta.lib_path}{repo}_repo/SLACKBUILDS.TXT")): - status = f"{self.green}enabled{self.endc}" - sum_sbo_pkgs = 0 - - for line in (self.read_file( - f"{self.meta.lib_path}sbo_repo/SLACKBUILDS." - "TXT").splitlines()): - - if line.startswith("SLACKBUILD NAME: "): - sum_sbo_pkgs += 1 - - changelog_txt = self.read_file( - f"{self.meta.log_path}sbo/ChangeLog.txt") - - last_upd = changelog_txt.split("\n", 1)[0] - - self.form["Repo id:"] = repo - self.form["Repo url:"] = self.all_repos[repo] - self.form["Total compressed packages:"] = "" - self.form["Total uncompressed packages:"] = "" - self.form["Number of packages:"] = sum_sbo_pkgs - self.form["Status:"] = status - self.form["Last updated:"] = last_upd - - for key, value in sorted(self.form.items()): - print(f"{self.green}{key}{self.endc} {value}") - - def repository_data(self, repo): - """Graps data packages - """ - sum_pkgs, size, unsize, last_upd = 0, [], [], "" - f = f"{self.meta.lib_path}{repo}_repo/PACKAGES.TXT" - - for line in self.read_file(f).splitlines(): - - if line.startswith("PACKAGES.TXT;"): - last_upd = line[14:].strip() - - if line.startswith("PACKAGE NAME:"): - sum_pkgs += 1 - - if line.startswith("PACKAGE SIZE (compressed): "): - size.append(line[28:-2].strip()) - - if line.startswith("PACKAGE SIZE (uncompressed): "): - unsize.append(line[30:-2].strip()) - - if repo in ["salix", "slackl"]: - log = self.read_file( - f"{self.meta.log_path}{repo}/ChangeLog.txt") - - last_upd = log.split("\n", 1)[0] - - return [sum_pkgs, size, unsize, last_upd] diff --git a/slpkg/repolist.py b/slpkg/repolist.py deleted file mode 100644 index fca111db..00000000 --- a/slpkg/repolist.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# repolist.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.messages import Msg -from slpkg.repositories import Repo -from slpkg.__metadata__ import MetaData as _meta_ - - -class RepoList: - """List of repositories - """ - def __init__(self): - self.meta = _meta_ - self.green = self.meta.color["GREEN"] - self.red = self.meta.color["RED"] - self.grey = self.meta.color["GREY"] - self.endc = self.meta.color["ENDC"] - self.msg = Msg() - self.all_repos = Repo().default_repository() - self.all_repos["slack"] = Repo().slack() - self.all_repos.update(Repo().custom_repository()) - - def repos(self): - """View or enabled or disabled repositories - """ - def_cnt, cus_cnt = 0, 0 - self.msg.template(78) - print("{0}{1}{2}{3}{4}{5}{6}".format( - "| Repo_id", " " * 2, - "Repo_URL", " " * 44, - "Default", " " * 3, - "Status")) - self.msg.template(78) - - for repo_id, repo_URL in sorted(self.all_repos.items()): - status, COLOR = "disabled", self.red - default = "yes" - - if len(repo_URL) > 49: - repo_URL = repo_URL[:48] + "~" - - if repo_id in self.meta.repositories: - def_cnt += 1 - status, COLOR = "enabled", self.green - - if repo_id not in self.meta.default_repositories: - cus_cnt += 1 - default = "no" - - print(" {0}{1}{2}{3}{4}{5}{6}{7:>8}{8}".format( - repo_id, " " * (9 - len(repo_id)), - repo_URL, " " * (52 - len(repo_URL)), - default, " " * (8 - len(default)), - COLOR, status, self.endc)) - - print("\nRepositories summary") - print("=" * 79) - print(f"{self.grey}{def_cnt}/{len(self.all_repos)} enabled default " - f"repositories and {cus_cnt} custom.") - - print("Edit the file '/etc/slpkg/repositories.conf' for enable " - "and disable default\nrepositories or run 'slpkg " - f"repo-enable' command.{self.endc}") diff --git a/slpkg/repositories.py b/slpkg/repositories.py deleted file mode 100644 index 738fca34..00000000 --- a/slpkg/repositories.py +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# repositories.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.utils import Utils -from slpkg.__metadata__ import MetaData as _meta_ - - -class Repo(Utils): - """Manages repositories configuration files - """ - def __init__(self): - self.meta = _meta_ - self.DEFAULT_REPOS_NAMES = self.meta.default_repositories - self.custom_repo_file = "/etc/slpkg/custom-repositories" - self.default_repo_file = "/etc/slpkg/default-repositories" - self.custom_repositories_list = self.read_file( - self.custom_repo_file) - self.default_repositories_list = self.read_file( - self.default_repo_file) - self.default_repository() - - def add(self, repo, url): - """Writes custom repository name and url in a file - """ - repo_name = [] - if not url.endswith("/"): - url += "/" - - for line in self.custom_repositories_list.splitlines(): - line = line.lstrip() - - if line and not line.startswith("#"): - repo_name.append(line.split()[0]) - - if (repo in self.meta.repositories or repo in repo_name or - repo in self.meta.default_repositories): - - raise SystemExit(f"\nRepository name '{repo}' exist, " - f"select different name.\n" - f"View all repositories with command 'slpkg " - f"repo-list'.\n") - - elif len(repo) > 6: - - raise SystemExit("\nslpkg: Error: Maximum repository name length " - "must be six (6) characters\n") - - with open(self.custom_repo_file, "a") as repos: - new_line = f" {repo}{' ' * (10 - len(repo))}{url}\n" - repos.write(new_line) - - print(f"\nRepository '{repo}' successfully added\n") - - def remove(self, repo): - """Removes custom repository - """ - rem_repo = False - - with open(self.custom_repo_file, "w") as repos: - - for line in self.custom_repositories_list.splitlines(): - repo_name = line.split()[0] - - if repo_name != repo: - repos.write(f"{line}\n") - - else: - print(f"\nRepository '{repo}' successfully " - "removed\n") - rem_repo = True - - if not rem_repo: - print(f"\nRepository '{repo}' doesn't exist\n") - - def custom_repository(self): - """Returns dictionary with repo name and url (used external) - """ - custom_dict_repo = {} - for line in self.custom_repositories_list.splitlines(): - line = line.lstrip() - - if not line.startswith("#"): - custom_dict_repo[line.split()[0]] = line.split()[1] - - return custom_dict_repo - - def default_repository(self): - """Returns dictionary with default repo name and url - """ - default_dict_repo = {} - - for line in self.default_repositories_list.splitlines(): - line = line.lstrip() - - if not line.startswith("#"): - - if line.split()[0] in self.DEFAULT_REPOS_NAMES: - default_dict_repo[line.split()[0]] = line.split()[1] - - else: - raise SystemExit(f"\nslpkg: Error: Repository name " - f"'{line.split()[0]}'" - f" is not default.\n " - f"Please check file: " - f"/etc/slpkg/default-repositories\n") - return default_dict_repo - - def slack(self): - """Official slackware repository - """ - default = "http://mirrors.slackware.com/slackware/" - - if self.meta.arch.startswith("arm"): - default = "http://ftp.arm.slackware.com/slackwarearm/" - - if os.path.isfile("/etc/slpkg/slackware-mirrors"): - mirrors = self.read_file( - f"{self.meta.conf_path}slackware-mirrors") - - for line in mirrors.splitlines(): - line = line.rstrip() - - if not line.startswith("#") and line: - default = line.split()[-1] - - if not default.endswith("/"): - default += "/" - - return default diff --git a/slpkg/sbo/__init__.py b/slpkg/sbo/__init__.py deleted file mode 100644 index 24cb94b3..00000000 --- a/slpkg/sbo/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# [ slackbuilds ] directory diff --git a/slpkg/sbo/autobuild.py b/slpkg/sbo/autobuild.py deleted file mode 100644 index 1eaba5e4..00000000 --- a/slpkg/sbo/autobuild.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# autobuild.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.pkg.build import BuildPackage - -from slpkg.sbo.greps import SBoGrep - - -class AutoBuild: - """Autobuild package if sources and script is already - downloaded - """ - def __init__(self, script, sources, path): - self.script = script - self.sources = sources - self.prgnam = self.script[:-7] - self.path = path - self.sbo_sources = [] - - def run(self): - """Builds package and fix ordelist per checksum - """ - self.files_exist() - self.info_file() - sources = self.sources - - if len(sources) > 1 and self.sbo_sources != sources: - sources = self.sbo_sources - # If the list does not have the same order uses from .info - # order. - BuildPackage(self.script, sources, self.path, auto=True).build() - - raise SystemExit() - - def info_file(self): - """Grabs sources from .info file and stores filename - """ - sources = SBoGrep(self.prgnam).source().split() - for source in sources: - self.sbo_sources.append(source.split("/")[-1]) - - def files_exist(self): - """Check if SlackBuild archive.tar.gz and sources exist - """ - if not os.path.isfile(self.path + self.script): - raise SystemExit("\nslpkg: Error: SlackBuild archive.tar.gz " - "not found\n") - - for src in self.sources: - - if not os.path.isfile(self.path + src): - raise SystemExit(f"\nslpkg: Error: Source file '{src}' " - f"not found\n") diff --git a/slpkg/sbo/build_num.py b/slpkg/sbo/build_num.py deleted file mode 100644 index 5765e4cf..00000000 --- a/slpkg/sbo/build_num.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# build_num.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import re - -from slpkg.utils import Utils -from slpkg.url_read import URL -from slpkg.__metadata__ import MetaData as _meta_ - - -class BuildNumber(Utils): - """Gets build number from SlackBuild script - """ - def __init__(self, sbo_url, pkg): - self.sbo_url = sbo_url - self.pkg = pkg - self.meta = _meta_ - - def get(self): - num = "NO_BUILD" - - if self.sbo_url: - SlackBuild = URL(f"{self.sbo_url}" - f"{self.pkg}.SlackBuild").get_request() - - else: - SlackBuild = self.read_file(f"{self.meta.build_path}{self.pkg}/" - f"{self.pkg}.SlackBuild") - - for line in SlackBuild.splitlines(): - - line = line.lstrip() - - if line.startswith("BUILD="): - num = re.findall(r"\d+", line) - break - - return "".join(num) diff --git a/slpkg/sbo/check.py b/slpkg/sbo/check.py deleted file mode 100644 index 3dd46c5e..00000000 --- a/slpkg/sbo/check.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# check.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -from pkg_resources import parse_version - -from slpkg.messages import Msg -from slpkg.blacklist import BlackList -from slpkg.splitting import split_package -from slpkg.upgrade_checklist import choose_upg -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.sbo.greps import SBoGrep - - -def sbo_upgrade(skip, flag): - """Returns packages for upgrade - """ - msg = Msg() - black = BlackList() - msg.checking() - upgrade_names = [] - data = SBoGrep(name="").names() - blacklist = list(black.get_black()) - - for pkg in sbo_list(): - name = split_package(pkg)[0] - ver = split_package(pkg)[1] - - if (name in data and name not in skip and name not in blacklist): - sbo_package = f"{name}-{SBoGrep(name).version()}" - package = f"{name}-{ver}" - - if parse_version(sbo_package) > parse_version(package): - upgrade_names.append(name) - msg.done() - - if "--checklist" in flag: - upgrade_names = choose_upg(upgrade_names) - - return upgrade_names - - -def sbo_list(): - """Returns all SBo packages - """ - for pkg in os.listdir(_meta_.pkg_path): - - if pkg.endswith("_SBo"): - yield pkg diff --git a/slpkg/sbo/compressed.py b/slpkg/sbo/compressed.py deleted file mode 100644 index a2ba6fd1..00000000 --- a/slpkg/sbo/compressed.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# download.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -class SBoLink: - """Creates slackbuild tar.gz archive from url - """ - def __init__(self, sbo_url): - self.sbo_url = sbo_url - - def tar_gz(self): - return f"{self.sbo_url[:-1]}.tar.gz" diff --git a/slpkg/sbo/dependency.py b/slpkg/sbo/dependency.py deleted file mode 100644 index 5de378b8..00000000 --- a/slpkg/sbo/dependency.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# dependency.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import sys -from functools import lru_cache - -from slpkg.blacklist import BlackList -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.sbo.greps import SBoGrep - - -class Requires(BlackList): - """Resolving SBo dependencies - """ - def __init__(self, flag): - super().__init__() - self.flag = flag - self.meta = _meta_ - self.SLACKBUILDS_TXT = SBoGrep(name="").names() - self.blacklist = list(self.get_black()) - self.dep_results = [] - - @lru_cache - def sbo(self, name): - """Builds all dependencies of a package - """ - if (self.meta.rsl_deps in ["on", "ON"] and - "--resolve-off" not in self.flag): - sys.setrecursionlimit(10000) - dependencies = [] - requires = SBoGrep(name).requires() - - if requires: - for req in requires: - # avoids adding %README% as dependency and if - # requires in the blacklist - if "%README%" not in req and req not in self.blacklist: - dependencies.append(req) - - self.deep_check(tuple(dependencies)) - - return self.dep_results - - else: - return [] - - @lru_cache - def deep_check(self, dependencies): - """Checking if dependencies are finished - """ - if dependencies: - self.dep_results.append(dependencies) - [self.sbo(dep) for dep in dependencies] diff --git a/slpkg/sbo/greps.py b/slpkg/sbo/greps.py deleted file mode 100644 index 69d3a954..00000000 --- a/slpkg/sbo/greps.py +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# greps.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.__metadata__ import MetaData as _meta_ -from slpkg.models.models import SBoTable, session - - -class SBoGrep: - """Grabs data from sbo database - """ - def __init__(self, name): - self.name = name - self.meta = _meta_ - self.arch64 = "x86_64" - self.session = session - - def names(self): - """Alias method convert generator and return - a list - """ - return list(self._names_grabbing()) - - def source(self): - """Grabs sources downloads links - """ - source, source64 = self.session.query( - SBoTable.download, SBoTable.download64).filter( - SBoTable.name == self.name).first() - - return self._sorting_arch(source, source64) - - def requires(self): - """Grabs package requirements - """ - requires = self.session.query( - SBoTable.requires).filter( - SBoTable.name == self.name).first() - - return requires[0].split() - - def version(self): - """Grabs package version - """ - version = self.session.query( - SBoTable.version).filter( - SBoTable.name == self.name).first() - - return version[0] - - def checksum(self): - """Grabs checksum string - """ - md5sum, md5sum64, = [], [] - mds5, md5s64 = self.session.query( - SBoTable.md5sum, SBoTable.md5sum64).filter( - SBoTable.name == self.name).first() - - if mds5: - md5sum.append(mds5) - if md5s64: - md5sum64.append(md5s64) - - return self._sorting_arch(md5sum, md5sum64) - - def description(self): - """Grabs package description - """ - desc = self.session.query( - SBoTable.short_description).filter( - SBoTable.name == self.name).first() - - return desc[0] - - def files(self): - """Grabs files - """ - files = self.session.query( - SBoTable.files).filter( - SBoTable.name == self.name).first() - - return files[0] - - def _names_grabbing(self): - """Generator that collecting all packages names - """ - names = self.session.query(SBoTable.name).all() - for n in names: - yield n[0] - - def _sorting_arch(self, arch, arch64): - """Returns sources by arch - """ - if self.meta.arch == self.arch64 and arch64: - return arch64 - - return arch diff --git a/slpkg/sbo/network.py b/slpkg/sbo/network.py deleted file mode 100644 index fced7556..00000000 --- a/slpkg/sbo/network.py +++ /dev/null @@ -1,418 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# network.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import pydoc - -from slpkg.utils import Utils -from slpkg.messages import Msg -from slpkg.blacklist import BlackList -from slpkg.downloader import Download -from slpkg.remove import delete_folder -from slpkg.dialog_box import DialogUtil -from slpkg.security import pkg_security -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package -from slpkg.pkg.build import BuildPackage -from slpkg.pkg.manager import PackageManager - -from slpkg.sbo.read import ReadSBo -from slpkg.sbo.greps import SBoGrep -from slpkg.sbo.sbo_arch import SBoArch -from slpkg.sbo.compressed import SBoLink -from slpkg.sbo.search import sbo_search_pkg -from slpkg.sbo.slack_find import slack_package - -from slpkg.slack.slack_version import slack_ver - - -class SBoNetwork(BlackList, Utils): - """View SBo site in the terminal and also read, build or - install packages - """ - def __init__(self, name, flag): - super().__init__() - self.name = name - self.flag = flag - self.meta = _meta_ - self.msg = Msg() - self.data = SBoGrep(name="").names() - self.check_pkg_exist() - self.arch = SBoArch().get() - self.comp_tar = ".tar.gz" - self.choice = "" - self.FAULT = "" - self.green = self.meta.color["GREEN"] - self.red = self.meta.color["RED"] - self.yellow = self.meta.color["YELLOW"] - self.cyan = self.meta.color["CYAN"] - self.grey = self.meta.color["GREY"] - self.endc = self.meta.color["ENDC"] - self.build_folder = self.meta.build_path - self._SOURCES = self.meta.SBo_SOURCES - self.msg.reading() - self.case_insensitive() - - if "--checklist" in self.flag: - self.with_checklist() - - grep = SBoGrep(self.name) - self.sbo_files = grep.files() - self.sbo_url = sbo_search_pkg(self.name) - - if self.sbo_url: - self.sbo_desc = grep.description()[len(self.name) + 2:-1] - self.source_dwn = grep.source().split() - self.sbo_req = grep.requires() - self.sbo_dwn = SBoLink(self.sbo_url).tar_gz() - self.sbo_version = grep.version() - self.dwn_srcs = self.sbo_dwn.split() + self.source_dwn - - if "--checklist" not in self.flag or not self.sbo_url and self.name: - self.msg.done() - - def check_pkg_exist(self): - if self.name not in self.data: - self.msg.pkg_not_found("\n", self.name, "can't find", "\n") - raise SystemExit(1) - - def view(self): - """View SlackBuild package, read or install them - from slackbuilds.org - """ - if self.sbo_url and self.name not in self.get_black(): - self.prgnam = f"{self.name}-{self.sbo_version}" - self.view_sbo() - - while True: - - self.read_choice() - - choice = { - "r": self.choice_README, - "R": self.choice_README, - "s": self.choice_SlackBuild, - "S": self.choice_SlackBuild, - "f": self.choice_info, - "F": self.choice_info, - "o": self.choice_doinst, - "O": self.choice_doinst, - "d": self.choice_download, - "D": self.choice_download, - "download": self.choice_download, - "b": self.choice_build, - "B": self.choice_build, - "build": self.choice_build, - "i": self.choice_install, - "I": self.choice_install, - "install": self.choice_install, - "c": self.choice_clear_screen, - "C": self.choice_clear_screen, - "clear": self.choice_clear_screen, - "q": self.choice_quit, - "quit": self.choice_quit, - "Q": self.choice_quit - } - - try: - choice[self.choice]() - except KeyError: - pass - - else: - self.msg.pkg_not_found("\n", self.name, "Can't view", "\n") - raise SystemExit(1) - - def case_insensitive(self): - """Matching packages distinguish between uppercase and - lowercase - """ - - if "--case-ins" in self.flag: - data_dict = self.case_sensitive(self.data) - - for key, value in data_dict.items(): - - if key == self.name.lower(): - self.name = value - - def read_choice(self): - """Return choice - """ - commands = { - "r": "README", - "R": "README", - "s": f"{self.name}.SlackBuild", - "S": f"{self.name}.SlackBuild", - "f": f"{self.name}.info", - "F": f"{self.name}.info", - "o": "doinst.sh", - "O": "doinst.sh", - "d": "download", - "D": "download", - "download": "download", - "b": "build", - "B": "build", - "build": "build", - "i": "install", - "I": "install", - "install": "install", - "c": "clear", - "C": "clear", - "clear": "clear", - "q": "quit", - "quit": "quit", - "Q": "quit" - } - - try: - message = " Choose an option > " - self.choice = input(f"{self.grey}{message}{self.endc}") - except EOFError: - raise SystemExit('\n') - - try: - print("{0}\x1b[1A{1}{2}{3}\n".format( - " " * len(message), self.cyan, commands[self.choice], - self.endc), end="") - print(end="", flush=True) - except KeyError: - pass - - def choice_README(self): - """View README file - """ - README = ReadSBo(self.sbo_url).readme("README") - fill = self.fill_pager(README) - self.pager(README + fill) - - def choice_SlackBuild(self): - """View .SlackBuild file - """ - SlackBuild = ReadSBo(self.sbo_url).slackbuild(self.name, ".SlackBuild") - fill = self.fill_pager(SlackBuild) - self.pager(SlackBuild + fill) - - def choice_info(self): - """View .info file - """ - info = ReadSBo(self.sbo_url).info(self.name, ".info") - fill = self.fill_pager(info) - self.pager(info + fill) - - def choice_doinst(self): - """View doinst.sh file - """ - if "doinst.sh" in self.sbo_files.split(): - doinst_sh = ReadSBo(self.sbo_url).doinst("doinst.sh") - fill = self.fill_pager(doinst_sh) - self.pager(doinst_sh + fill) - - def choice_download(self): - """Download script.tar.gz and sources - """ - Download(path="", url=self.dwn_srcs, repo="sbo").start() - raise SystemExit() - - def choice_build(self): - """Build package - """ - self.build() - delete_folder(self.build_folder) - raise SystemExit() - - def choice_install(self): - """Download, build and install the package - """ - pkg_security([self.name]) - - if not find_package(self.prgnam, self.meta.pkg_path): - self.build() - self.install() - delete_folder(self.build_folder) - - raise SystemExit() - - else: - self.msg.template(78) - self.msg.pkg_found(self.prgnam) - self.msg.template(78) - - raise SystemExit() - - def choice_clear_screen(self): - """Clear screen - """ - os.system("clear") - self.view() - - def choice_quit(self): - """Quit from choices - """ - raise SystemExit() - - def view_sbo(self): - """View slackbuild.org - """ - sbo_url = self.sbo_url.replace("/slackbuilds/", "/repository/") - br1, br2, fix_sp = "", "", " " - - if self.meta.use_colors in ["off", "OFF"]: - br1 = "(" - br2 = ")" - fix_sp = "" - - print() # new line at start - self.msg.template(78) - print(f"| {' ' * 28}{self.grey}SlackBuilds Repository{self.endc}") - self.msg.template(78) - print(f"| {slack_ver()} > {sbo_url.split('/')[-3].title()} > {self.cyan}{self.name}{self.endc}") - self.msg.template(78) - print(f"| {self.green}Package url{self.endc}: {sbo_url}") - self.msg.template(78) - print(f"| {self.green}Description: {self.endc}{self.sbo_desc}") - print(f"| {self.green}SlackBuild: {self.endc}{self.sbo_dwn.split('/')[-1]}") - print(f"| {self.green}Sources: {self.endc}{', '.join([src.split('/')[-1] for src in self.source_dwn])}") - print(f"| {self.yellow}Requirements: {self.endc}{', '.join(self.sbo_req)}") - self.msg.template(78) - print(f"| {self.red}R{self.endc}{br2}EADME View the README file") - print(f"| {self.red}S{self.endc}{br2}lackBuild View the .SlackBuild file") - print(f"| In{br1}{self.red}f{self.endc}{br2}o{fix_sp} View the .info file") - - if "doinst.sh" in self.sbo_files.split(): - print(f"| D{br1}{self.red}o{self.endc}{br2}inst.sh{fix_sp} View the doinst.sh file") - - print(f"| {self.red}D{self.endc}{br2}ownload Download this package") - print(f"| {self.red}B{self.endc}{br2}uild Download and build") - print(f"| {self.red}I{self.endc}{br2}nstall Download/Build/Install") - print(f"| {self.red}C{self.endc}{br2}lear Clear screen") - print(f"| {self.red}Q{self.endc}{br2}uit Quit") - self.msg.template(78) - - def with_checklist(self): - """Using dialog and checklist option - """ - data = [] - - if not self.name: - data = self.data - - else: - for name in self.data: - if self.name in name: - data.append(name) - - if data: - text = "Press 'spacebar' to choose SlackBuild for view" - title = " SlackBuilds.org " - backtitle = f"{_meta_.__all__} {_meta_.__version__}" - status = False - pkg = DialogUtil(data, text, title, backtitle, status).checklist() - - if pkg and len(pkg) > 1: - os.system("clear") - raise SystemExit("\nslpkg: Error: Choose only one package\n") - - if pkg is None: - raise SystemExit(1) - - self.name = "".join(pkg) - os.system("clear") - - def pager(self, text): - """Read text - """ - pydoc.pager(text) - - def fill_pager(self, page): - """Fixes pager spaces - """ - tty_size = os.popen("stty size", "r").read().split() - rows = int(tty_size[0]) - 1 - lines = sum(1 for line in page.splitlines()) - diff = rows - lines - fill = "\n" * diff - - if diff > 0: - return fill - - else: - return "" - - def error_uns(self): - """Checks if the package supported by an arch - before proceeding to install - """ - self.FAULT = "" - UNST = ["UNSUPPORTED", "UNTESTED"] - - if "".join(self.source_dwn) in UNST: - self.FAULT = "".join(self.source_dwn) - - def build(self): - """Builds slackware package - """ - pkg_security([self.name]) - self.error_uns() - - if self.FAULT: - print() - self.msg.template(78) - print(f"| Package {self.prgnam} {self.red} {self.FAULT} " - f"{self.endc}") - self.msg.template(78) - - else: - sources = [] - - if not os.path.exists(self.meta.build_path): - os.makedirs(self.meta.build_path) - - if not os.path.exists(self._SOURCES): - os.makedirs(self._SOURCES) - - os.chdir(self.meta.build_path) - - Download(self.meta.build_path, self.sbo_dwn.split(), - repo="sbo").start() - - Download(self._SOURCES, self.source_dwn, repo="sbo").start() - - script = self.sbo_dwn.split("/")[-1] - - for src in self.source_dwn: - sources.append(src.split("/")[-1]) - - BuildPackage(script, sources, self.meta.build_path, - auto=False).build() - - slack_package(self.prgnam) # check if build - - def install(self): - """Installs SBo package found in /tmp directory. - """ - binary = slack_package(self.prgnam) - print(f"[ {self.green}Installing{self.endc} ] --> {self.name}") - PackageManager(binary).upgrade(flag="--install-new") diff --git a/slpkg/sbo/queue.py b/slpkg/sbo/queue.py deleted file mode 100644 index dfb36dda..00000000 --- a/slpkg/sbo/queue.py +++ /dev/null @@ -1,202 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# queue.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -from collections import OrderedDict - -from slpkg.utils import Utils -from slpkg.downloader import Download -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package -from slpkg.pkg.build import BuildPackage -from slpkg.pkg.manager import PackageManager - -from slpkg.sbo.greps import SBoGrep -from slpkg.sbo.compressed import SBoLink -from slpkg.sbo.search import sbo_search_pkg -from slpkg.sbo.slack_find import slack_package - - -class QueuePkgs(Utils): - """Manages SBo packages, add or removes for building or - installation - """ - def __init__(self): - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.endc = _meta_.color["ENDC"] - self.queue = self.meta.lib_path + "queue/" - self.queue_list = self.queue + "queue_list" - self._SOURCES = self.meta.SBo_SOURCES - self.touch() - - def touch(self): - """Creating the directories and the queue file - """ - queue_file = [ - "# In this file, you can create a list of\n", - "# packages you want to build or install.\n", - "#\n"] - - if not os.path.exists(self.meta.lib_path): - os.mkdir(self.meta.lib_path) - - if not os.path.exists(self.queue): - os.mkdir(self.queue) - - if not os.path.isfile(self.queue_list): - with open(self.queue_list, "w") as queue: - for line in queue_file: - queue.write(line) - - self.queued = self.read_file(self.queue_list) - - def packages(self): - """Returns queue list from /var/lib/queue/queue_list - file. - """ - for read in self.queued.splitlines(): - - read = read.lstrip() - - if not read.startswith("#"): - yield read.replace("\n", "") - - def listed(self): - """Prints packages from queue - """ - print("Packages in the queue:") - - for pkg in self.packages(): - print(f"{self.green}{pkg}{self.endc}") - - print() - - def add(self, pkgs): - """Adds packages in queue if not exist - """ - queue_list = list(self.packages()) - pkgs = list(OrderedDict.fromkeys(pkgs)) - - print("Add packages in the queue:") - - with open(self.queue_list, "a") as queue: - - for pkg in pkgs: - - find = sbo_search_pkg(pkg) - - if pkg not in queue_list and find is not None: - print(f"{self.green}{pkg}{self.endc}") - queue.write(pkg + "\n") - - else: - print(f"{self.red}{pkg}{self.endc}") - - print() - - def remove(self, pkgs): - """Removes packages from the queue - """ - print("Remove packages from the queue:") - - with open(self.queue_list, "w") as queue: - - for line in self.queued.splitlines(): - - if line not in pkgs: - queue.write(line + "\n") - - else: - print(f"{self.red}{line}{self.endc}") - - print() - - def build(self): - """Builds packages from the queue - """ - sources = [] - packages = list(self.packages()) - - if packages: - - for pkg in packages: - - if pkg not in SBoGrep(pkg).names(): - raise SystemExit(f"\nPackage '{pkg}' was not found in " - f"the SBo repository\n") - - if not os.path.exists(self.meta.build_path): - os.mkdir(self.meta.build_path) - - if not os.path.exists(self._SOURCES): - os.mkdir(self._SOURCES) - - sbo_url = sbo_search_pkg(pkg) - sbo_dwn = SBoLink(sbo_url).tar_gz() - source_dwn = SBoGrep(pkg).source().split() - os.chdir(self.meta.build_path) - script = sbo_dwn.split("/")[-1] - - Download(self.meta.build_path, sbo_dwn.split(), - repo="sbo").start() - - for src in source_dwn: - Download(self._SOURCES, src.split(), repo="sbo").start() - sources.append(src.split("/")[-1]) - - BuildPackage(script, sources, self.meta.build_path, - auto=False).build() - - else: - raise SystemExit("\nPackages not found in the queue for " - "building\n") - - def install(self): - """Installs packages from the queue - """ - packages = list(self.packages()) - - if packages: - - print() # new line at start - - for pkg in packages: - - ver = SBoGrep(pkg).version() - prgnam = f"{pkg}-{ver}" - - if find_package(prgnam, self.meta.output): - binary = slack_package(prgnam) - PackageManager(binary).upgrade(flag="--install-new") - - else: - print(f"\nPackage {prgnam} not found in the " - f"{self.meta.output} for installation\n") - - else: - raise SystemExit("\nPackages not found in the queue for " - "installation\n") diff --git a/slpkg/sbo/read.py b/slpkg/sbo/read.py deleted file mode 100644 index 9ca0e38e..00000000 --- a/slpkg/sbo/read.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# read.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.url_read import URL - - -class ReadSBo: - """Read SBo files from urls - """ - def __init__(self, sbo_url): - self.sbo_url = sbo_url - - def readme(self, sbo_readme): - """Read SlackBuild README file - """ - return URL(self.sbo_url + sbo_readme).get_request() - - def info(self, name, sbo_file): - """Read info file - """ - return URL(self.sbo_url + name + sbo_file).get_request() - - def slackbuild(self, name, sbo_file): - """Read SlackBuild file - """ - return URL(self.sbo_url + name + sbo_file).get_request() - - def doinst(self, doinst_sh): - """Read SlackBuild doinst.sh - """ - return URL(self.sbo_url + doinst_sh).get_request() diff --git a/slpkg/sbo/sbo_arch.py b/slpkg/sbo/sbo_arch.py deleted file mode 100644 index d7769d1e..00000000 --- a/slpkg/sbo/sbo_arch.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# sbo_arch.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.__metadata__ import MetaData as _meta_ - - -class SBoArch: - """Manage computer architecture for sbo repository - """ - def __init__(self): - self.meta = _meta_ - self.arch = self.meta.arch - # Architectures - self.x86 = "i586" - self.arm = "arm" - - def get(self): - """Return sbo arch - """ - if self.arch.startswith("i") and self.arch.endswith("86"): - self.arch = self.x86 - - elif self.meta.arch.startswith("arm"): - self.arch = self.arm - - return self.arch diff --git a/slpkg/sbo/search.py b/slpkg/sbo/search.py deleted file mode 100644 index 443cb3a5..00000000 --- a/slpkg/sbo/search.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# search.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.repositories import Repo -from slpkg.slack.slack_version import slack_ver -from slpkg.models.models import SBoTable, session - - -def sbo_search_pkg(name): - """Search for package path in SLACKBUILDS.TXT file and - return url - """ - location = session.query(SBoTable.location).filter( - SBoTable.name == name).first() - - repo = Repo() - sbo = repo.default_repository()["sbo"] - sbo_url = f"{sbo}{slack_ver()}/" - - return f"{sbo_url}{location[0][2:]}/" diff --git a/slpkg/sbo/slack_find.py b/slpkg/sbo/slack_find.py deleted file mode 100644 index 8d1fcf6d..00000000 --- a/slpkg/sbo/slack_find.py +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# slack_find.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -from pkg_resources import parse_version - -from slpkg.messages import Msg -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package - - -def slack_package(prgnam): - """Return maximum binary Slackware package from output directory - """ - msg = Msg() - TAG, binaries, cache, binary = "_SBo", [], "0", "" - - for exp in os.environ.keys(): - if exp == "TAG": - TAG = os.environ["TAG"] - break - - for pkg in find_package(prgnam, _meta_.output): - if pkg.startswith(prgnam) and pkg[:-4].endswith(TAG): - binaries.append(pkg) - - for bins in binaries: - binary = bins - if parse_version(bins) > parse_version(cache): - binary = bins - cache = binary - - if not binary: - msg.pkg_not_found("\n", prgnam, "Can't build", "\n") - raise SystemExit(1) - - return ["".join(_meta_.output + binary)] diff --git a/slpkg/sbo/slackbuild.py b/slpkg/sbo/slackbuild.py deleted file mode 100644 index 3f600320..00000000 --- a/slpkg/sbo/slackbuild.py +++ /dev/null @@ -1,432 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# slackbuild.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -from pkg_resources import parse_version - -from slpkg.utils import Utils -from slpkg.messages import Msg -from slpkg.log_deps import write_deps -from slpkg.blacklist import BlackList -from slpkg.downloader import Download -from slpkg.remove import delete_folder -from slpkg.security import pkg_security -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package -from slpkg.pkg.build import BuildPackage -from slpkg.pkg.manager import PackageManager -from slpkg.pkg.installed import GetFromInstalled - -from slpkg.sbo.greps import SBoGrep -from slpkg.sbo.sbo_arch import SBoArch -from slpkg.sbo.compressed import SBoLink -from slpkg.sbo.dependency import Requires -from slpkg.sbo.search import sbo_search_pkg -from slpkg.sbo.slack_find import slack_package - - -class SBoInstall(BlackList, Utils): - """Build and install SBo packages with all dependencies - """ - def __init__(self, slackbuilds, flag): - super().__init__() - self.slackbuilds = slackbuilds - pkg_security(self.slackbuilds) - self.flag = flag - self.meta = _meta_ - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.yellow = _meta_.color["YELLOW"] - self.grey = _meta_.color["GREY"] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.arch = SBoArch().get() - self.build_folder = self.meta.build_path - self._SOURCES = self.meta.SBo_SOURCES - self.unst = ["UNSUPPORTED", "UNTESTED"] - self.master_packages = [] - self.deps = [] - self.dependencies = [] - self.package_not_found = [] - self.package_found = [] - self.deps_dict = {} - self.answer = "" - self.match = False - self.count_ins = 0 - self.count_upg = 0 - self.count_uni = 0 - self.msg.reading() - self.data = SBoGrep(name="").names() - self.blacklist = list(self.get_black()) - - def start(self, is_upgrade): - """Start view, build and install SBo packages - """ - tagc = "" - self.is_upgrade = is_upgrade - self.case_insensitive() - - for _sbo in self.slackbuilds: - if _sbo in self.data and _sbo not in self.blacklist: - sbo_deps = Requires(self.flag).sbo(_sbo) - self.deps += sbo_deps - self.deps_dict[_sbo] = self.one_for_all(sbo_deps) - self.package_found.append(_sbo) - else: - self.package_not_found.append(_sbo) - - self.update_deps() - - if not self.package_found: - self.match = True - self.matching() - - self.master_packages, mas_src = self.sbo_version_source( - self.package_found) - self.msg.done() - - if (self.meta.rsl_deps in ["on", "ON"] and not self.match): - self.msg.resolving() - - self.dependencies, dep_src = self.sbo_version_source( - self.one_for_all(self.deps)) - - if (self.meta.rsl_deps in ["on", "ON"] and not self.match): - self.msg.done() - - self.clear_masters() - - if self.package_found: - - if self.match and [""] != self.slackbuilds: - self.msg.matching(self.slackbuilds) - - else: - print("\nThe following packages will be automatically " - "installed or upgraded \nwith new version:\n") - - self.top_view() - self.msg.upg_inst(self.is_upgrade) - - # view master packages - for sbo, arch in zip(self.master_packages, mas_src): - tagc = self.tag(sbo) - name = "-".join(sbo.split("-")[:-1]) - self.view_packages(tagc, name, sbo.split("-")[-1], - self.select_arch(arch)) - - self.view_installing_for_deps() - - # view dependencies - for dep, arch in zip(self.dependencies, dep_src): - tagc = self.tag(dep) - name = "-".join(dep.split("-")[:-1]) - self.view_packages(tagc, name, dep.split("-")[-1], - self.select_arch(arch)) - - count_total = sum([self.count_ins, self.count_upg, - self.count_uni]) - - if self.match and [""] != self.slackbuilds: - print("\nMatching summary") - print("=" * 79) - raise SystemExit(f"Total {count_total} matching packages\n") - - print("\nInstalling summary") - print("=" * 79) - print(f"{self.grey}Total {count_total} " - f"{self.msg.pkg(count_total)}.") - print(f"{self.count_uni} {self.msg.pkg(self.count_uni)} " - f"will be installed, " - f"{self.count_ins} already installed and " - f"{self.count_upg} {self.msg.pkg(self.count_upg)}") - print(f"will be upgraded.{self.endc}\n") - self.continue_to_install() - - else: - self.msg.not_found(self.is_upgrade) - raise SystemExit() - - def case_insensitive(self): - """Matching packages distinguish between uppercase and - lowercase - """ - if "--case-ins" in self.flag: - data_dict = self.case_sensitive(self.data) - - for name in self.slackbuilds: - index = self.slackbuilds.index(name) - - for key, value in data_dict.items(): - - if key == name.lower(): - self.slackbuilds[index] = value - - def update_deps(self): - """Update dependencies dictionary with all package - """ - onelist, dependencies = [], [] - onelist = self.dimensional_list(self.deps) - dependencies = self.remove_dbs(onelist) - - for dep in dependencies: - deps = Requires(self.flag).sbo(dep) - self.deps_dict[dep] = self.one_for_all(deps) - - def continue_to_install(self): - """Continue to install ? - """ - if (self.count_uni > 0 or self.count_upg > 0 or - "--rebuild" in self.flag): - - if self.master_packages and self.msg.answer() in ["y", "Y"]: - installs, upgraded = self.build_install() - - self.msg.reference(installs, upgraded) - write_deps(self.deps_dict) - delete_folder(self.build_folder) - - def view_installing_for_deps(self): - """View installing message for dependencies - """ - if not self.match and self.dependencies: - print("Installing for dependencies:") - - def clear_masters(self): - """Clear master slackbuilds if already exist in dependencies - or if added to install two or more times - """ - self.master_packages = self.remove_dbs(self.master_packages) - for mas in self.master_packages: - - if mas in self.dependencies: - self.master_packages.remove(mas) - - def matching(self): - """Return found matching SBo packages - """ - for sbo in self.package_not_found: - for pkg in self.data: - if sbo in pkg and pkg not in self.blacklist: - self.package_found.append(pkg) - - def sbo_version_source(self, slackbuilds): - """Create sbo name with version - """ - sbo_versions, sources = [], [] - - for sbo in slackbuilds: - sbo_ver = f"{sbo}-{SBoGrep(sbo).version()}" - sbo_versions.append(sbo_ver) - sources.append(SBoGrep(sbo).source()) - - return [sbo_versions, sources] - - def one_for_all(self, deps): - """Because there are dependencies that depend on other - dependencies are created lists into other lists. - Thus creating this loop create one-dimensional list and - remove double packages from dependencies. - """ - requires, dependencies = [], [] - deps.reverse() - # Inverting the list brings the - # dependencies in order to be installed. - requires = self.dimensional_list(deps) - dependencies = self.remove_dbs(requires) - - return dependencies - - def top_view(self): - """View top template - """ - self.msg.template(78) - - print(f"| Packages{' ' * 16}" - f"New version{' ' * 8}" - f"Arch{' ' * 4}" - f"Build{' ' * 2}" - f"Repos{' ' * 10}" - f"Size") - - self.msg.template(78) - - def view_packages(self, *args): - """:View slackbuild packages with version and arch - args[0] package color - args[1] package - args[2] version - args[3] arch - """ - ver = GetFromInstalled(args[1]).version() - - if ver: - ver = f"-{ver}" - - print(f" {args[0]}{args[1] + ver} {self.endc}" - f"{' ' * (24-len(args[1] + ver))}{args[2]}" - f"{' ' * (18-len(args[2]))} {args[3]}" - f"{' ' * (15-len(args[3]))}{''}" - f"{''}SBo{''}{'':>11}{''}") - - def tag(self, sbo): - """Tag with color green if package already installed, - color yellow for packages to upgrade and color red - if not installed. - """ - # split sbo name with version and get name - sbo_name = "-".join(sbo.split("-")[:-1]) - find = GetFromInstalled(sbo_name).name() - - if find_package(sbo, self.meta.pkg_path): - paint = self.meta.color["GREEN"] - self.count_ins += 1 - - if "--rebuild" in self.flag: - self.count_upg += 1 - - elif sbo_name == find: - paint = self.meta.color["YELLOW"] - self.count_upg += 1 - - else: - paint = self.meta.color["RED"] - self.count_uni += 1 - - return paint - - def select_arch(self, src): - """Looks if sources unsupported or untested - from arch else select arch. - """ - arch = self.arch - - for item in self.unst: - if item in src: - arch = item - - return arch - - def filenames(self, sources): - """Return filenames from sources links - """ - for src in sources: - yield src.split("/")[-1] - - def build_install(self): - """Build and install packages if not already installed - """ - slackbuilds = self.dependencies + self.master_packages - installs, upgraded, = [], [] - - if not os.path.exists(self.build_folder): - os.makedirs(self.build_folder) - - if not os.path.exists(self._SOURCES): - os.makedirs(self._SOURCES) - - os.chdir(self.build_folder) - - for prgnam in slackbuilds: - if (self.meta.not_downgrade == "on" and - self.not_downgrade(prgnam) is True): - continue - - pkg = "-".join(prgnam.split("-")[:-1]) - installed = "".join(find_package(prgnam, self.meta.pkg_path)) - src_link = SBoGrep(pkg).source().split() - - if (installed and "--rebuild" not in self.flag): - self.msg.template(78) - self.msg.pkg_found(prgnam) - self.msg.template(78) - elif self.unst[0] in src_link or self.unst[1] in src_link: - self.msg.template(78) - print(f"| Package {prgnam} {self.red}" - f"{''.join(src_link)}{self.endc}") - self.msg.template(78) - else: - sbo_url = sbo_search_pkg(pkg) - sbo_link = SBoLink(sbo_url).tar_gz() - script = sbo_link.split("/")[-1] - - if self.meta.sbosrcarch in ["on", "ON"]: - src_link = list(self.sbosrcarsh(prgnam, sbo_link, - src_link)) - Download(self.build_folder, sbo_link.split(), - repo="sbo").start() - Download(self._SOURCES, src_link, repo="sbo").start() - - sources = list(self.filenames(src_link)) - BuildPackage(script, sources, self.build_folder, - auto=False).build() - binary = slack_package(prgnam) - - if os.path.isfile("".join(binary)): - if GetFromInstalled(pkg).name() == pkg: - print(f"[ {self.yellow}Upgrading{self.endc} ] --> " - f"{prgnam}") - upgraded.append(prgnam) - - else: - print(f"[ {self.green}Installing{self.endc} ] --> " - f"{prgnam}") - installs.append(prgnam) - - if ("--rebuild" in self.flag and - GetFromInstalled(pkg).name() == pkg): - PackageManager(binary).upgrade(flag="--reinstall") - - else: - PackageManager(binary).upgrade(flag="--install-new") - - return installs, upgraded - - def not_downgrade(self, prgnam): - """Don't downgrade packages if sbo version is lower than - installed""" - name = "-".join(prgnam.split("-")[:-1]) - sbo_ver = prgnam.split("-")[-1] - ins_ver = GetFromInstalled(name).version() - - if not ins_ver: - ins_ver = "0" - - if parse_version(sbo_ver) < parse_version(ins_ver): - self.msg.template(78) - print(f"| Package {name} does not downgrade, " - f"setting by user") - self.msg.template(78) - - return True - - def sbosrcarsh(self, prgnam, sbo_link, src_link): - """Alternative repository for sbo sources""" - name = "-".join(prgnam.split("-")[:-1]) - category = f"{sbo_link.split('/')[-2]}/{name}/" - - for link in src_link: - source = link.split("/")[-1] - yield f"{self.meta.sbosrcarch_link}{category}{source}" diff --git a/slpkg/security.py b/slpkg/security.py deleted file mode 100644 index 57cfb8b6..00000000 --- a/slpkg/security.py +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# security.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.utils import Utils -from slpkg.messages import Msg - - -def pkg_security(pkgs): - """Checks packages before installing or upgrading for security - reasons. Configuration file in the /etc/slpkg/pkg_security""" - packages, msg, utils = [], Msg(), Utils() - security_packages = utils.read_file("/etc/slpkg/pkg_security") - - for read in security_packages.splitlines(): - read = read.lstrip() - - if not read.startswith("#"): - packages.append(read.replace("\n", "")) - - for p in pkgs: - - for pkg in packages: - - if p == pkg: - msg.security_pkg(p) - - if not msg.answer() in ["y", "Y"]: - raise SystemExit() diff --git a/slpkg/sizes.py b/slpkg/sizes.py deleted file mode 100644 index e193ef5f..00000000 --- a/slpkg/sizes.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# sizes.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -def units(comp_sum, uncomp_sum): - """Calculates package size - """ - compressed = round((sum(map(float, comp_sum)) / 1024), 2) - uncompressed = round((sum(map(float, uncomp_sum)) / 1024), 2) - comp_unit = uncomp_unit = "Mb" - - if compressed > 1024: - compressed = round((compressed / 1024), 2) - comp_unit = "Gb" - - if uncompressed > 1024: - uncompressed = round((uncompressed / 1024), 2) - uncomp_unit = "Gb" - - if compressed < 1: - compressed = sum(map(int, comp_sum)) - comp_unit = "Kb" - - if uncompressed < 1: - uncompressed = sum(map(int, uncomp_sum)) - uncomp_unit = "Kb" - - return [comp_unit, uncomp_unit], [compressed, uncompressed] diff --git a/slpkg/slack/__init__.py b/slpkg/slack/__init__.py deleted file mode 100644 index f5920df3..00000000 --- a/slpkg/slack/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# [ slackware ] directory diff --git a/slpkg/slack/mirrors.py b/slpkg/slack/mirrors.py deleted file mode 100644 index e5608eb2..00000000 --- a/slpkg/slack/mirrors.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# mirrors.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.repositories import Repo -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.slack.slack_version import slack_ver - - -def mirrors(name, location): - """Selects Slackware official mirror packages - based architecture and version. - """ - rel = _meta_.slack_rel - ver = slack_ver() - repo = Repo() - slack = repo.slack() - - if _meta_.arch == "x86_64": - - if rel == "stable": - http = f"{slack}slackware64-{ver}/{location}{name}" - - else: - http = f"{slack}slackware64-{rel}/{location}{name}" - - elif _meta_.arch.startswith("arm"): - - if rel == "stable": - http = f"{slack}slackwarearm-{ver}/{location}{name}" - - else: - http = f"{slack}slackwarearm-{rel}/{location}{name}" - - else: - - if rel == "stable": - http = f"{slack}slackware-{ver}/{location}{name}" - - else: - http = f"{slack}slackware-{rel}/{location}{name}" - - return http diff --git a/slpkg/slack/patches.py b/slpkg/slack/patches.py deleted file mode 100644 index f5dbaf59..00000000 --- a/slpkg/slack/patches.py +++ /dev/null @@ -1,336 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# patches.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import shutil -import subprocess -from pkg_resources import parse_version - - -from slpkg.init import Update -from slpkg.utils import Utils -from slpkg.sizes import units -from slpkg.messages import Msg -from slpkg.url_read import URL -from slpkg.checksum import check_md5 -from slpkg.blacklist import BlackList -from slpkg.downloader import Download -from slpkg.remove import delete_package -from slpkg.grep_md5 import pkg_checksum -from slpkg.dialog_box import DialogUtil -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package -from slpkg.pkg.manager import PackageManager -from slpkg.pkg.installed import GetFromInstalled - -from slpkg.binary.greps import repo_data - -from slpkg.slack.mirrors import mirrors -from slpkg.slack.slack_version import slack_ver - - -class Patches(BlackList, Utils): - """Upgrades distribution from the official Slackware mirrors - """ - def __init__(self, skip, flag): - super().__init__() - self.skip = skip - self.flag = flag - self.meta = _meta_ - self.grey = _meta_.color["GREY"] - self.yellow = _meta_.color["YELLOW"] - self.green = _meta_.color["GREEN"] - self.red = _meta_.color["RED"] - self.endc = _meta_.color["ENDC"] - self.msg = Msg() - self.version = self.meta.slack_rel - self.patch_path = self.meta.slpkg_tmp_patches - self.count_added = 0 - self.count_upg = 0 - self.pkg_for_upgrade = [] - self.dwn_links = [] - self.upgrade_all = [] - self.upgraded = [] - self.installed = [] - self.comp_sum = [] - self.uncomp_sum = [] - self.msg.checking() - - if self.version == "stable": - self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT", - "patches/")).get_request() - - else: - self.PACKAGES_TXT = URL(mirrors("PACKAGES.TXT", "")).get_request() - - def start(self): - """Installs new patches from official Slackware mirrors - """ - self.store() - self.msg.done() - - if self.upgrade_all: - - if "--checklist" in self.flag: - self.dialog_checklist() - - print("\nThese packages need upgrading:\n") - self.msg.template(78) - print(f"| Package{' ' * 17}New Version{' ' * 8}Arch" - f"{' ' * 4}Build{' ' * 2}Repo{' ' * 11}Size") - - self.msg.template(78) - - print("Upgrading:") - - self.views() - - unit, size = units(self.comp_sum, self.uncomp_sum) - - print("\nInstalling summary") - print("=" * 79) - print(f"{self.grey}Total {self.count_upg} " - f"{self.msg.pkg(len(self.upgrade_all))} will be upgraded and" - f" {self.count_added} will be installed.") - print(f"Need to get {size[0]} {unit[0]} of archives.") - print(f"After this process, {size[1]} {unit[1]} of additional disk" - f" space will be used.{self.endc}") - print() - - if self.msg.answer() in ["y", "Y"]: - Download(self.patch_path, self.dwn_links, - repo="slack").start() - self.upgrade_all = list(self.check_downloaded( - self.patch_path, self.upgrade_all)) - self.upgrade() - self.kernel() - - if self.meta.slackpkg_log in ["on", "ON"]: - # update the slackpkg ChanheLog.txt file - self.slackpkg_update() - - self.msg.reference(self.installed, self.upgraded) - - # delete the downloaded packages - delete_package(self.patch_path, self.upgrade_all) - - # update the packages lists - self.update_lists() - - else: - slack_arch = "" - - if self.meta.arch == "x86_64": - slack_arch = "64" - - print(f"\nSlackware{slack_arch} '{self.version}' v{slack_ver()}" - f" distribution is up to date!\n") - - def store(self): - """Stores and returns packages for upgrading - """ - data = repo_data(self.PACKAGES_TXT, "slack", self.flag) - black = list(self.get_black()) - for name, loc, comp, uncomp in zip(data[0], data[1], data[2], data[3]): - repo_pkg_name = split_package(name)[0] - - if self.meta.only_installed in ["on", "ON"]: - pkg_name = split_package(name)[0] - pkg_ver = split_package(name)[1] - - if (GetFromInstalled(pkg_name).name() and - repo_pkg_name not in black and - repo_pkg_name not in self.skip and - parse_version(pkg_ver) > parse_version( - GetFromInstalled(pkg_name).version())): - self.dwn_links.append(f"{mirrors('', '')}{loc}/{name}") - self.comp_sum.append(comp) - self.uncomp_sum.append(uncomp) - self.upgrade_all.append(name) - self.count_upg += 1 - - if not find_package(f"{repo_pkg_name}-", - self.meta.pkg_path): - self.count_added += 1 - self.count_upg -= 1 - - elif (not os.path.isfile(self.meta.pkg_path + name[:-4]) and - repo_pkg_name not in black and - repo_pkg_name not in self.skip): - self.dwn_links.append(f"{mirrors('', '')}{loc}/{name}") - self.comp_sum.append(comp) - self.uncomp_sum.append(uncomp) - self.upgrade_all.append(name) - self.count_upg += 1 - - if not find_package(f"{repo_pkg_name}-", self.meta.pkg_path): - self.count_added += 1 - self.count_upg -= 1 - - return self.count_upg - - def dialog_checklist(self): - """Creates checklist to choose packages for upgrade - """ - data = [] - for upg in self.upgrade_all: - data.append(upg[:-4]) - - text = "Press 'spacebar' to unchoose packages from upgrade" - title = " Upgrade " - status = True - - backtitle = f"{self.meta.__all__} {self.meta.__version__}" - - pkgs = DialogUtil(data, text, title, backtitle, - status).checklist() - - index = 0 - for pkg, comp, uncomp in zip(self.upgrade_all, self.comp_sum, - self.uncomp_sum): - - if pkg[:-4] not in pkgs: - self.dwn_links.pop(index) - self.upgrade_all.pop(index) - self.comp_sum.pop(index) - self.uncomp_sum.pop(index) - self.count_upg -= 1 - del comp, uncomp - index -= 1 - - index += 1 - - if not self.upgrade_all: - raise SystemExit() - - def views(self): - """Views packages - """ - for upg, size in sorted(zip(self.upgrade_all, self.comp_sum)): - pkg_repo = split_package(upg[:-4]) - color = self.red - pkg_inst = GetFromInstalled(pkg_repo[0]).name() - - if pkg_repo[0] == pkg_inst: - color = self.yellow - - ver = GetFromInstalled(pkg_repo[0]).version() - - if ver: - ver = f"-{ver}" - - print(f" {color}{pkg_repo[0] + ver}{self.endc}" - f"{' ' * (23-len(pkg_repo[0] + ver))} {pkg_repo[1]}" - f"{' ' * (18-len(pkg_repo[1]))} {pkg_repo[2]}" - f"{' ' * (8-len(pkg_repo[2]))}{pkg_repo[3]}" - f"{' ' * (7-len(pkg_repo[3]))}Slack{size:>12} K") - - def upgrade(self): - """Upgrades packages - """ - for pkg in self.upgrade_all: - check_md5(pkg_checksum(pkg, "slack_patches"), - self.patch_path + pkg) - - pkg_ver = f"{split_package(pkg)[0]}-{split_package(pkg)[1]}" - - if find_package(f"{split_package(pkg)[0]}-", - self.meta.pkg_path): - print(f"[ {self.yellow}upgrading{self.endc} ] --> {pkg[:-4]}") - PackageManager((self.patch_path + pkg).split()).upgrade( - "--install-new") - self.upgraded.append(pkg_ver) - - else: - print(f"[ {self.green}installing{self.endc} ] --> {pkg[:-4]}") - PackageManager((self.patch_path + pkg).split()).upgrade( - "--install-new") - self.installed.append(pkg_ver) - - def kernel(self): - """Checks if kernel upgraded if true - then reinstall boot loader - """ - for core in self.upgrade_all: - - if "kernel" in core: - - if self.meta.default_answer in ["y", "Y"]: - answer = self.meta.default_answer - - else: - print() - self.msg.template(78) - print(f"| {self.red}*** HIGHLY recommended reinstall " - f"boot loader ***{self.endc}") - print("| L=lilo / E=elilo / G=grub") - self.msg.template(78) - - try: - answer = input("\nThe kernel has been upgraded, " - "reinstall boot loader [L/E/G]? ") - except EOFError: - raise SystemExit("\n") - - if answer in ["L"]: - subprocess.call("lilo", shell=True) - break - - elif answer in ["E"]: - subprocess.call("eliloconfig", shell=True) - break - - elif answer in ["G"]: - subprocess.call("grub-mkconfig -o /boot/grub/grub.cfg", - shell=True) - break - - def slackpkg_update(self): - """This replace slackpkg ChangeLog.txt file with new one - from Slackware official mirrors after update distribution. - """ - NEW_ChangeLog_txt = URL(mirrors("ChangeLog.txt", "")).get_request() - - if os.path.isfile(f"{self.meta.slackpkg_lib_path}ChangeLog.txt.old"): - os.remove(f"{self.meta.slackpkg_lib_path}ChangeLog.txt.old") - - if os.path.isfile(f"{self.meta.slackpkg_lib_path}ChangeLog.txt"): - shutil.copy2(f"{self.meta.slackpkg_lib_path}ChangeLog.txt", - f"{self.meta.slackpkg_lib_path}ChangeLog.txt.old") - os.remove(f"{self.meta.slackpkg_lib_path}ChangeLog.txt") - - with open(f"{self.meta.slackpkg_lib_path}ChangeLog.txt", "w") as log: - log.write(NEW_ChangeLog_txt) - - def update_lists(self): - """Updates packages list and ChangeLog.txt file after - upgrade distribution - """ - print(f"{self.green}Update the package lists ?{self.endc}") - print("=" * 79) - - if self.msg.answer() in ["y", "Y"]: - Update().run(["slack"]) diff --git a/slpkg/slack/slack_version.py b/slpkg/slack/slack_version.py deleted file mode 100644 index 5b7d66ad..00000000 --- a/slpkg/slack/slack_version.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# slack_version.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import re - -from slpkg.utils import Utils -from slpkg.__metadata__ import MetaData as _meta_ - - -def slack_ver(): - """Opens the file and read Slackware version - """ - utils = Utils() - - if _meta_.slackware_version in ["off", "OFF"]: - sv = utils.read_file("/etc/slackware-version") - version = re.findall(r"\d+", sv) - - if len(sv) > 2: - return (".".join(version[:2])) - - else: - return (".".join(version)) - - return _meta_.slackware_version diff --git a/slpkg/slack/slackware_repo.py b/slpkg/slack/slackware_repo.py deleted file mode 100644 index f8968db3..00000000 --- a/slpkg/slack/slackware_repo.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# slackware_repo.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.utils import Utils -from slpkg.binary.greps import repo_data -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - - -def slackware_repository(): - """Returns all official Slackware packages - """ - utils = Utils() - slack_repo, packages, names = [], [], [] - - slack_repo = repo_data( - utils.read_file(f"{_meta_.lib_path}slack_repo/PACKAGES.TXT"), - "slack", "") - - for pkg in slack_repo[0]: - names.append(split_package(pkg)[0]) - packages.append(pkg[:-4]) - - return packages, names diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py new file mode 100644 index 00000000..0fc60573 --- /dev/null +++ b/slpkg/slackbuild.py @@ -0,0 +1,204 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +import os +import shutil +import hashlib +import subprocess +from dataclasses import dataclass + +from downloader import Wget +from metadata import Metadata +from queries import SBoQueries +from utilities import Utilities +from dependencies import Requires +from views.views import ViewMessage +from models.models import LogsDependencies +from models.models import session as Session + + +@dataclass +class Slackbuilds: + ''' Download build and install the SlackBuilds. ''' + slackbuilds: str + flags: list + install: bool + session: str = Session + build_path: str = Metadata.build_path + sbo_url: str = Metadata.sbo_url + build_path: str = Metadata.build_path + tmp_slpkg: str = Metadata.tmp_slpkg + tmp_path: str = Metadata.tmp_path + tar_suffix: str = Metadata.tar_suffix + os_arch: str = Metadata.os_arch + repo_tag: str = Metadata.repo_tag + pkg_suffix: str = Metadata.pkg_suffix + installpkg: str = Metadata.installpkg + + def execute(self): + ''' Starting build or install the slackbuilds. ''' + self.sbos_order = [] + self.creating_dictionary() + + if '--resolve-off' not in self.flags: + self.creating_dependencies_for_build() + self.creating_main_for_build() + + self.view_before_build() + + self.download_slackbuilds_and_build() + + def view_before_build(self): + ''' View slackbuilds before proceed. ''' + view = ViewMessage() + + if self.install: + view.install_packages(self.sbos_order) + else: + view.build_packages(self.sbos_order) + + view.question(self.flags) + + def creating_dictionary(self): + ''' Dictionary with the main slackbuilds and dependencies. ''' + self.sbos = {} + for sbo in self.slackbuilds: + self.sbos[sbo] = Requires(sbo).resolve() + + def creating_dependencies_for_build(self): + ''' List with the dependencies. ''' + for deps in self.sbos.values(): + for dep in deps: + self.sbos_order.append(dep) + + def creating_main_for_build(self): + ''' List with the main slackbuilds. ''' + for main in self.sbos.keys(): + self.sbos_order.append(main) + + def download_slackbuilds_and_build(self): + ''' Downloads files and sources and starting the build. ''' + wget = Wget() + utils = Utilities() + + for sbo in self.sbos_order: + file = f'{sbo}{self.tar_suffix}' + + self.remove_file_if_exists(self.tmp_slpkg, file) + self.remove_folder_if_exists(self.build_path, sbo) + + location = SBoQueries(sbo).location() + url = f'{self.sbo_url}/{location}/{file}' + + wget.download(self.tmp_slpkg, url) + + utils.untar_archive(self.tmp_slpkg, file, self.build_path) + + sources = SBoQueries(sbo).sources() + self.download_sources(sbo, sources) + + self.execute_the_script(self.build_path, sbo) + + if self.install: + + package = self.creating_package_for_install(sbo) + self.install_package(package) + + if '--resolve-off' not in self.flags: + self.logging_installed_dependencies(sbo) + + def logging_installed_dependencies(self, name): + ''' Logging installed dependencies and used for remove. ''' + exist = self.session.query(LogsDependencies.name).filter( + LogsDependencies.name == name).first() + + requires = Requires(name).resolve() + + # Update the dependencies if exist else create it. + if exist: + self.session.query( + LogsDependencies).filter( + LogsDependencies.name == name).update( + {LogsDependencies.requires: ' '.join(requires)}) + + elif requires: + deps = LogsDependencies(name=name, + requires=' '.join(requires)) + self.session.add(deps) + self.session.commit() + + def install_package(self, package): + ''' Install the packages that before created in the tmp directory. ''' + command = f'{self.installpkg} {self.tmp_path}/{package}' + subprocess.call(command, shell=True) + + def creating_package_for_install(self, name: str): + ''' Creating a list with all the finished packages for + installation. + ''' + utils = Utilities() + build_tag = utils.build_tag(self.build_path, name) + version = SBoQueries(name).version() + return (f'{name}-{version}-{self.os_arch}-{build_tag[0]}' + f'{self.repo_tag}{self.pkg_suffix}') + + def execute_the_script(self, path: str, name: str): + ''' Run the .SlackBuild script. ''' + folder = f'{path}/{name}/' + slackbuild = f'./{name}.SlackBuild' + execute = folder + slackbuild + stdout = subprocess.call(execute) + if stdout > 0: + raise SystemExit(stdout) + + def download_sources(self, name, sources: str): + ''' Download the sources. ''' + wget = Wget() + path = f'{self.build_path}/{name}' + checksums = SBoQueries(name).checksum() + + for source, checksum in zip(sources.split(), checksums[0].split()): + wget.download(path, source) + md5sum = Md5sum(source, checksum, name) + md5sum.check() + + def remove_file_if_exists(self, path: str, file: str): + ''' Clean the the old files. ''' + archive = f'{path}/{file}' + if os.path.isfile(archive): + os.remove(archive) + + def remove_folder_if_exists(self, path: str, folder: str): + ''' Clean the the old folders. ''' + directory = f'{path}/{folder}' + if os.path.isdir(directory): + shutil.rmtree(directory) + + +@dataclass +class Md5sum: + ''' Checksum the sources. ''' + source: str + checksum: str + name: str + build_path: str = Metadata.build_path + + def check(self): + path = f'{self.build_path}/{self.name}' + filename = f'{path}/{self.source.split("/")[-1]}' + + md5 = self.read_file(filename) + + file_check = hashlib.md5(md5).hexdigest() + + if file_check not in self.checksum: + print('\nExpected:', ''.join(self.checksum)) + print('Found:', file_check) + print(f'\nMD5SUM check for {self.sbo} FAILED.') + + view = ViewMessage() + view.question(['--no']) + + def read_file(self, filename): + with open(filename, 'rb') as f: + return f.read() diff --git a/slpkg/slpkg_update.py b/slpkg/slpkg_update.py deleted file mode 100644 index a71d80c6..00000000 --- a/slpkg/slpkg_update.py +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# slpkg_update.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import re -import tarfile -import subprocess - -from slpkg.url_read import URL -from slpkg.checksum import check_md5 -from slpkg.downloader import Download -from slpkg.grep_md5 import pkg_checksum -from slpkg.__metadata__ import MetaData as _meta_ - - -def it_self_update(): - """Checks from GitLab slpkg repository if a new version is available - """ - __new_version__ = "" - repository = "gitlab" - branch = "master" - ver_link = ("https://{0}.com/{1}/{2}/raw/" - "{3}/{4}/__metadata__.py".format(repository, - _meta_.__author__, - _meta_.__all__, - branch, - _meta_.__all__)) - - version_data = URL(ver_link).get_request() - - for line in version_data.splitlines(): - line = line.strip() - - if line.startswith("__version_info__"): - __new_version__ = ".".join(re.findall(r"\d+", line)) - - if __new_version__ > _meta_.__version__: - - if _meta_.default_answer in ["y", "Y"]: - answer = _meta_.default_answer - - else: - print("\nNew version '{0}-{1}' is available !\n".format( - _meta_.__all__, __new_version__)) - - try: - answer = input("Would you like to upgrade [y/N]? ") - except EOFError: - raise SystemExit("\n") - - if answer in ["y", "Y"]: - print() # new line after answer - - else: - raise SystemExit() - - dwn_link = ["https://{0}.com/{1}/{2}/-/archive/" - "{3}/{4}-{5}.tar.gz".format(repository, - _meta_.__author__, - _meta_.__all__, - __new_version__, - _meta_.__all__, - __new_version__)] - - if not os.path.exists(_meta_.build_path): - os.makedirs(_meta_.build_path) - - Download(_meta_.build_path, dwn_link, repo="").start() - - os.chdir(_meta_.build_path) - - slpkg_tar_file = f"slpkg-{__new_version__}.tar.gz" - tar = tarfile.open(slpkg_tar_file) - tar.extractall() - tar.close() - - file_name = f"{_meta_.__all__}-{__new_version__}" - - os.chdir(file_name) - - check_md5(pkg_checksum(slpkg_tar_file, _meta_.__all__), - _meta_.build_path + slpkg_tar_file) - - subprocess.call("chmod +x {0}".format("install.sh"), shell=True) - subprocess.call("sh install.sh", shell=True) - - else: - print(f"\n{_meta_.__all__}: There is no new version, " - "already you use the last!\n") - - raise SystemExit() diff --git a/slpkg/splitting.py b/slpkg/splitting.py deleted file mode 100644 index 5c393b04..00000000 --- a/slpkg/splitting.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# splitting.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -def split_package(package): - """Splits package in name, version - arch and build tag. - """ - name = ver = arch = build = [] - split = package.split("-") - - if len(split) > 2: - build = split[-1] - build_a, build_b = "", "" - build_a = build[:1] - - if build[1:2].isdigit(): - build_b = build[1:2] - - build = build_a + build_b - arch = split[-2] - ver = split[-3] - name = "-".join(split[:-3]) - - return [name, ver, arch, build] diff --git a/slpkg/status_deps.py b/slpkg/status_deps.py deleted file mode 100644 index 2e17fe96..00000000 --- a/slpkg/status_deps.py +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# status_deps.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os - -from slpkg.utils import Utils -from slpkg.messages import Msg -from slpkg.graph import Graph -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package - - -class DependenciesStatus(Utils): - """Prints dependencies status used by packages - """ - def __init__(self, image): - self.image = image - self.meta = _meta_ - self.msg = Msg() - self.grey = self.meta.color["GREY"] - self.green = self.meta.color["GREEN"] - self.endc = self.meta.color["ENDC"] - self.dmap = {} - self.count_pkg = 0 - self.count_dep = 0 - self.dep_path = self.meta.log_path + "dep/" - self.logs = find_package("", self.dep_path) - - if not self.logs: - self.no_logs() - - self.installed = find_package("", self.meta.pkg_path) - - def data(self): - """Checks all installed packages and create - dictionary database - """ - for pkg in self.installed: - - if os.path.isfile(f"{self.meta.pkg_path}{pkg}"): - name = split_package(pkg)[0] - - for log in self.logs: - deps = self.read_file(f"{self.dep_path}{log}") - - for dep in deps.splitlines(): - - if name == dep: - - if name not in self.dmap.keys(): - self.dmap[name] = [log] - - if not self.count_pkg: - self.count_pkg = 1 - - else: - self.dmap[name] += [log] - self.count_packages() - - def count_packages(self): - """Counts dependencies and packages - """ - packages = [] - - for pkg in self.dmap.values(): - packages += pkg - self.count_dep += 1 - - self.count_pkg = len(set(packages)) - - def show(self): - """Show dependencies status - """ - self.data() - - print() - self.msg.template(78) - print(f"| Dependencies{' ' * 20}Packages") - self.msg.template(78) - - for key, value in self.dmap.items(): - print(" {0}{1}{2}{3}{4}".format( - self.green, key, self.endc, " " * (32-len(key)), - ", ".join(value))) - self.summary() - - if self.image: - Graph(self.image).dependencies(self.dmap) - - def tree(self): - """Like tree view mode - """ - self.msg.template(78) - print("| Dependencies\n" - "| -- Packages") - self.msg.template(78) - - self.data() - - for pkg, dep in self.dmap.items(): - print(f"+ {self.green}{pkg}{self.endc}") - print("|") - - for d in dep: - print(f"+-- {d}") - print("|") - - print("\x1b[1A \n", end="", flush=True) - - self.summary() - - if self.image: - Graph(self.image).dependencies(self.dmap) - - def no_logs(self): - """Print message if no logs found - """ - raise SystemExit("\n There were no logs files. " - "Obviously not used the\n" - " installation method with the command:\n" - " '$ slpkg -s ' yet.\n") - - def summary(self): - """Summary by packages and dependencies - """ - print("\nStatus summary") - print("=" * 79) - print("{0}found {1} dependencies in {2} packages.{3}\n".format( - self.grey, self.count_dep, self.count_pkg, self.endc)) diff --git a/slpkg/superuser.py b/slpkg/superuser.py deleted file mode 100644 index 1e2da766..00000000 --- a/slpkg/superuser.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# superuser.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -import getpass - - -def s_user(): - """Checks for root user - """ - if getpass.getuser() != "root": - raise SystemExit("\nslpkg: Error: Must have root privileges\n") - - -def virtual_env(): - """Checks if a virtual enviroment exists - """ - if "VIRTUAL_ENV" in os.environ.keys(): - raise SystemExit("\nslpkg: Error: Please exit from virtual " - "environment first\n") diff --git a/slpkg/tracking.py b/slpkg/tracking.py deleted file mode 100644 index 38f2d2f1..00000000 --- a/slpkg/tracking.py +++ /dev/null @@ -1,244 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# tracking.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.utils import Utils -from slpkg.graph import Graph -from slpkg.messages import Msg -from slpkg.blacklist import BlackList -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package - -from slpkg.sbo.greps import SBoGrep -from slpkg.sbo.dependency import Requires -from slpkg.sbo.search import sbo_search_pkg - -from slpkg.binary.search import search_pkg -from slpkg.binary.dependency import Dependencies - - -class TrackingDeps(BlackList, Utils): - """Views tree of dependencies and also - highlights packages with the colour green - if already installed and the colour red - if not installed. - """ - def __init__(self, name, repo, flag): - super().__init__() - self.name = name - self.repo = repo - self.flag = flag - self.meta = _meta_ - self.msg = Msg() - self.green = self.meta.color["GREEN"] - self.yellow = self.meta.color["YELLOW"] - self.cyan = self.meta.color["CYAN"] - self.red = self.meta.color["RED"] - self.endc = self.meta.color["ENDC"] - self.requires = [] - self.dependencies = [] - self.dependencies_list = [] - self.deps_dict = {} - self.init_flags() - - def init_flags(self): - """Flags initialization - """ - for i in range(0, len(self.flag)): - - if self.flag[i].startswith("--graph="): - self.image = self.flag[i].split("=")[1] - self.flag[i] = "--graph=" - - def run(self): - """Runs tracking dependencies - """ - self.msg.resolving() - self.repositories() - - if self.find_pkg: - self.dependencies_list.reverse() - self.requires = self.dimensional_list(self.dependencies_list) - self.dependencies = self.remove_dbs(self.requires) - - if self.dependencies == []: - self.dependencies = ["No dependencies"] - - if "--graph=" in self.flag: - self.deps_tree() - - self.msg.done() - - pkg_len = len(self.name) + 24 - - print() # new line at start - self.msg.template(pkg_len) - print(f"| Package {self.cyan}{self.name}{self.endc} " - f"dependencies :") - self.msg.template(pkg_len) - - print("\\") - print(f" +---{self.yellow}[ Tree of dependencies ]{self.endc}") - - index = 0 - - for pkg in self.dependencies: - - if "--check-deps" in self.flag: - used = self.check_used(pkg) - self.deps_used(pkg, used) - used = (f"is dependence on --> " - f"{self.cyan}{', '.join(used)}{self.endc}") - - else: - used = "" - - index += 1 - installed = "" - - if find_package(f"{pkg}-", self.meta.pkg_path): - - if self.meta.use_colors in ["off", "OFF"]: - installed = "* " - - print(" |") - print(f" +--{index}: {self.green}{pkg}{self.endc} " - f"{installed}{used}") - - else: - print(" |") - print(f" +--{index}: {self.red}{pkg}{self.endc} " - f"{installed}") - - if self.meta.use_colors in ["off", "OFF"]: - print("\n * = Installed\n") - - else: - print() # new line at end - - if "--graph=" in self.flag: - self.graph() - - else: - self.msg.done() - raise SystemExit("\nNo package was found to match\n") - - def repositories(self): - """Gets dependencies by repositories - """ - if self.repo == "sbo": - self.sbo_case_insensitive() - self.find_pkg = sbo_search_pkg(self.name) - - if self.find_pkg: - self.dependencies_list = Requires(self.flag).sbo(self.name) - - else: - PACKAGES_TXT = self.read_file( - f"{self.meta.lib_path}{self.repo}_repo/PACKAGES.TXT") - self.names = list(self.package_name(PACKAGES_TXT)) - self.bin_case_insensitive() - self.find_pkg = search_pkg(self.name, self.repo) - - if self.find_pkg: - self.black = list(self.get_black()) - self.dependencies_list = Dependencies( - self.repo, self.black).binary(self.name, self.flag) - - def sbo_case_insensitive(self): - """Matching packages distinguish between uppercase and - lowercase for sbo repository - """ - if "--case-ins" in self.flag: - data = SBoGrep(name="").names() - data_dict = self.case_sensitive(data) - - for key, value in data_dict.items(): - - if key == self.name.lower(): - self.name = value - - def bin_case_insensitive(self): - """Matching packages distinguish between uppercase and - lowercase - """ - if "--case-ins" in self.flag: - data_dict = self.case_sensitive(self.names) - - for key, value in data_dict.items(): - - if key == self.name.lower(): - self.name = value - - def graph(self): - """Drawing image dependencies map - """ - Graph(self.image).dependencies(self.deps_dict) - - def check_used(self, pkg): - """Checks if dependencies used - """ - used = [] - dep_path = f"{self.meta.log_path}dep/" - logs = find_package("", dep_path) - - for log in logs: - deps = self.read_file(f"{dep_path}{log}") - - for dep in deps.splitlines(): - - if pkg == dep: - used.append(log) - return used - - def deps_tree(self): - """Package dependencies image map file - """ - dependencies = self.dependencies + [self.name] - if self.repo == "sbo": - - for dep in dependencies: - deps = Requires(flag="").sbo(dep) - - if dep not in self.deps_dict.values(): - self.deps_dict[dep] = self.dimensional_list(deps) - - else: - - for dep in dependencies: - deps = Dependencies(self.repo, self.black).binary(dep, flag="") - - if dep not in self.deps_dict.values(): - self.deps_dict[dep] = self.dimensional_list(deps) - - def deps_used(self, pkg, used): - """Creates dependencies dictionary - """ - if find_package(f"{pkg}-", self.meta.pkg_path): - - if pkg not in self.deps_dict.values(): - self.deps_dict[pkg] = used - - else: - self.deps_dict[pkg] += used diff --git a/slpkg/update_repository.py b/slpkg/update_repository.py new file mode 100644 index 00000000..b8bf6ffd --- /dev/null +++ b/slpkg/update_repository.py @@ -0,0 +1,44 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +import os +from os import path +from create_data import CreateData +from downloader import Wget +from metadata import Metadata +from models.models import SBoTable +from models.models import session as Session +from dataclasses import dataclass + + +@dataclass +class UpdateRepository: + ''' Deletes and install the data. ''' + sbo_repo_path: str = Metadata.sbo_repo_path + url: str = Metadata.sbo_url + sbo_txt: str = Metadata.sbo_txt + db_path: str = Metadata.db_path + database: str = Metadata.database + session: str = Session + + def sbo(self): + self.delete_file(self.sbo_repo_path, self.sbo_txt) + self.delete_sbo_data() + + sbo_url = f'{self.url}/{self.sbo_txt}' + + wget = Wget() + wget.download(self.sbo_repo_path, sbo_url) + + data = CreateData() + data.insert_sbo_table() + + def delete_file(self, dir, txt_file): + file = f'{dir}/{txt_file}' + if path.exists(file): + os.remove(file) + + def delete_sbo_data(self): + self.session.query(SBoTable).delete() + self.session.commit() diff --git a/slpkg/upgrade_checklist.py b/slpkg/upgrade_checklist.py deleted file mode 100644 index c421a99c..00000000 --- a/slpkg/upgrade_checklist.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# upgrade_checklist.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.dialog_box import DialogUtil -from slpkg.splitting import split_package -from slpkg.__metadata__ import MetaData as _meta_ - -from slpkg.pkg.find import find_package -from slpkg.pkg.installed import GetFromInstalled - - -def choose_upg(packages): - """Creating checklist to choose packages for upgrade - """ - selected_packages, data = [], [] - - if packages: - - for pkg in packages: - name = GetFromInstalled(pkg).name() - ver = GetFromInstalled(pkg).version() - binary = f"{name}-{ver}" - installed = find_package(binary + _meta_.sp, _meta_.pkg_path)[0] - data.append(installed) - - text = "Press 'spacebar' to unchoose packages from upgrade" - title = " Upgrade " - - backtitle = f"{_meta_.__all__} {_meta_.__version__}" - - status = True - - pkgs = DialogUtil(data, text, title, backtitle, - status).checklist() - - pkgs = [] if pkgs is None else pkgs - - for pkg in pkgs: - name = split_package(pkg)[0] - - if name in packages: - selected_packages.append(name) - - if not selected_packages: - raise SystemExit(1) - - print() - - return selected_packages diff --git a/slpkg/url_read.py b/slpkg/url_read.py deleted file mode 100644 index 4ca4f420..00000000 --- a/slpkg/url_read.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# url_read.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import urllib3 - -from slpkg.__metadata__ import MetaData as _meta_ - - -class URL: - """Urls reading class - """ - def __init__(self, link): - self.link = link - self.meta = _meta_ - self.red = _meta_.color["RED"] - self.endc = _meta_.color["ENDC"] - - if self.meta.http_proxy: - self.http = urllib3.ProxyManager(self.meta.http_proxy) - - else: - self.http = urllib3.PoolManager() - - def get_request(self): - """Opens url and read - """ - try: - f = self.http.request('GET', self.link) - return f.data.decode("utf-8", "ignore") - except urllib3.exceptions.NewConnectionError: - print(f"\n{self.red}Can't read the file " - f"'{self.link.split('/')[-1]}'{self.endc}") - - return " " diff --git a/slpkg/utilities.py b/slpkg/utilities.py new file mode 100644 index 00000000..8a4adce1 --- /dev/null +++ b/slpkg/utilities.py @@ -0,0 +1,32 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +import os +import re +import tarfile +from dataclasses import dataclass + + +@dataclass +class Utilities: + + def build_tag(self, path: str, name: str): + ''' Opens the .SlackBuild file and reads the BUILD TAG. ''' + folder = f'{path}/{name}' + slackbuild = f'{name}.SlackBuild' + + if os.path.isfile(f'{folder}/{slackbuild}'): + with open(f'{folder}/{slackbuild}', 'r', encoding='utf-8') as sbo: + lines = sbo.readlines() + + for line in lines: + if line.startswith('BUILD'): + return re.findall(r'\d+', line) + + def untar_archive(self, path: str, archive: str, ext_path: str): + ''' Untar the file to the build folder. ''' + tar_file = f'{path}/{archive}' + untar = tarfile.open(tar_file) + untar.extractall(ext_path) + untar.close() diff --git a/slpkg/utils.py b/slpkg/utils.py deleted file mode 100644 index db348080..00000000 --- a/slpkg/utils.py +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# utils.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -import os -from collections import OrderedDict - -from slpkg.splitting import split_package - - -class Utils: - """Class with useful utilities - """ - def case_sensitive(self, lst): - """Create dictionary from list with key in lower case - and value with default - """ - dictionary = {} - for pkg in lst: - dictionary[pkg.lower()] = pkg - return dictionary - - def dimensional_list(self, lists): - """Creates one dimensional list - """ - one_list = [] - - for lst in lists: - one_list += lst - - return one_list - - def remove_dbs(self, double): - """Removes double item from list - """ - return list(OrderedDict.fromkeys(double)) - - def read_file(self, registry): - """Returns reading file - """ - code = self.check_encoding('', registry) - - if not code: - code = "utf-8" - - with open(registry, "r", encoding=code) as file_txt: - read_file = file_txt.read() - return read_file - - def package_name(self, PACKAGES_TXT): - """Returns list with all the names of packages repository - """ - for line in PACKAGES_TXT.splitlines(): - - if line.startswith("PACKAGE NAME:"): - yield split_package(line[14:].strip())[0] - - def check_downloaded(self, path, downloaded): - """Checks if files downloaded and return downloaded - packages - """ - for pkg in downloaded: - - if os.path.isfile(f"{path}{pkg}"): - yield pkg - - def read_config(self, config): - """Reads config file and returns first uncomment line - and stops. Used for Slackware mirrors - """ - for line in config.splitlines(): - line = line.lstrip() - - if line and not line.startswith("#"): - return line - - def fix_file_name(self, file_name): - """Get file name from url and fix passing char '+' - """ - if "%2b" in file_name: - return file_name.replace("%2b", "+", 5) - - elif "%2B" in file_name: - return file_name.replace("%2B", "+", 5) - - else: - return file_name - - def check_encoding(self, path, f): - """Checking the file encoding default is utf-8 - """ - try: - with open(f"{path}{f}", "r") as ftest: - ftest.read() - except UnicodeDecodeError: - return "ISO-8859-1" - - def debug(self, test): - """A function used to print some stuff for debugging - """ - print(test) diff --git a/slpkg/version.py b/slpkg/version.py deleted file mode 100644 index eed320f7..00000000 --- a/slpkg/version.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- - -# version.py file is part of slpkg. - -# Copyright 2014-2022 Dimitris Zlatanidis -# All rights reserved. - -# Slpkg is a user-friendly package manager for Slackware installations - -# https://gitlab.com/dslackw/slpkg - -# Slpkg is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -from slpkg.__metadata__ import MetaData as m - - -def prog_version(): - """Prints version, license and email - """ - print(f"Version : {m.__version__}\n" - f"Licence : {m.__license__}\n" - f"Email : {m.__email__}\n" - f"Homepage : {m.__homepage__}\n" - f"Maintainer: {m.__maintainer__}") diff --git a/slpkg/views/__init__.py b/slpkg/views/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/slpkg/views/views.py b/slpkg/views/views.py new file mode 100644 index 00000000..27f26ffe --- /dev/null +++ b/slpkg/views/views.py @@ -0,0 +1,60 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +import os +from dataclasses import dataclass +from queries import SBoQueries +from metadata import Metadata + + +@dataclass +class ViewMessage: + colors: str = Metadata.colour + + def build_packages(self, slackbuilds): + color = self.colors() + + print('The following packages will be build:\n') + + for sbo in slackbuilds: + version = SBoQueries(sbo).version() + print(f'[{color["GREEN"]} build {color["ENDC"]}] -> ' + f'{sbo}-{version}') + + def install_packages(self, slackbuilds): + is_installed = IsInstalled() + color = self.colors() + + print('The following packages will be installed:\n') + + for sbo in slackbuilds: + version = SBoQueries(sbo).version() + installed = is_installed.check(f'{sbo}-{version}-') + if installed: + print(f'[{color["YELLOW"]} install {color["ENDC"]}] -> ' + f'{sbo}-{version}') + else: + print(f'[{color["GREEN"]} install {color["ENDC"]}] -> ' + f'{sbo}-{version}') + + def remove_packages(self): + print('The following packages will be removed:\n') + + def question(self, flags): + + if '--yes' not in flags: + answer = input('\nDo you want to continue [y/N]: ') + print() + if answer not in ['Y', 'y']: + raise SystemExit() + print() + + +@dataclass +class IsInstalled: + log_packages: str = Metadata.log_packages + + def check(self, package): + for pkg in os.listdir(self.log_packages): + if package in pkg: + return True diff --git a/tests/test_file_size.py b/tests/test_file_size.py deleted file mode 100644 index b3ebe1d0..00000000 --- a/tests/test_file_size.py +++ /dev/null @@ -1,19 +0,0 @@ -import unittest -from slpkg.file_size import FileSize - - -class TestFileSize(unittest.TestCase): - - def test_FileSize(self): - """Testing the remote and local servers - """ - url = "https://mirrors.slackware.com/slackware/slackware64-14.2/ChangeLog.txt" - lc = "test_units.py" - fs1 = FileSize(url) - fs2 = FileSize(lc) - self.assertIsNotNone(fs1.server()) - self.assertIsNotNone(fs2.local()) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_installed.py b/tests/test_installed.py deleted file mode 100644 index 150f0cef..00000000 --- a/tests/test_installed.py +++ /dev/null @@ -1,23 +0,0 @@ -import unittest -from slpkg.pkg.installed import GetFromInstalled - - -class TestPkgInstalled(unittest.TestCase): - - def setUp(self): - self.pkg_name = 'aaa_base' - self.pkg_ver = '15.0' - self.installed = GetFromInstalled('aaa_base') - - def test_pkg_name(self): - """Testing the installed package name - """ - self.assertEqual(self.pkg_name, self.installed.name()) - - def test_pkg_version(self): - """Testing the version of installed package""" - self.assertEqual(self.pkg_ver, self.installed.version()) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_md5sum.py b/tests/test_md5sum.py deleted file mode 100644 index a8d1080d..00000000 --- a/tests/test_md5sum.py +++ /dev/null @@ -1,21 +0,0 @@ -import unittest -from slpkg.md5sum import md5 - - -class TestMd5(unittest.TestCase): - - def test_md5_superuser(self): - """Testing checksum for superuser.py file - """ - result = md5('test_file_size.py') - self.assertEqual(result, "e3e7b72be80efc922b0e1f1cd409a417") - - def test_md5_security(self): - """Testing checksum for security.py file - """ - result = md5('test_units.py') - self.assertEqual(result, "58a694171449e923414e3e3339a0097e") - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_sbo_grep.py b/tests/test_sbo_grep.py deleted file mode 100644 index d976ba88..00000000 --- a/tests/test_sbo_grep.py +++ /dev/null @@ -1,49 +0,0 @@ -import unittest -from slpkg.sbo.greps import SBoGrep - - -class TestSBoGreps(unittest.TestCase): - - def setUp(self): - self.grep = SBoGrep('Flask') - - def test_source(self): - """Test package source - """ - source = self.grep.source() - flask_source = ('https://files.pythonhosted.org/packages/source/f' - '/flask/Flask-2.1.2.tar.gz') - self.assertEqual(source, flask_source) - - def test_requires(self): - """Test package requires - """ - requires = self.grep.requires() - flask_dep = ['werkzeug', 'python3-itsdangerous', - 'click', 'python-importlib_metadata'] - self.assertListEqual(requires, flask_dep) - - def test_version(self): - """Test package version - """ - version = self.grep.version() - flask_ver = '2.1.2' - self.assertEqual(version, flask_ver) - - def test_checksum(self): - """Test package checksum - """ - checksum = self.grep.checksum() - flask_md5 = ['93f1832e5be704ef6ff2a4124579cd85'] - self.assertListEqual(checksum, flask_md5) - - def test_description(self): - """Test package description - """ - desc = self.grep.description() - flask_desc = 'Flask (Microframework for Python)' - self.assertEqual(desc, flask_desc) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_search_package.py b/tests/test_search_package.py deleted file mode 100644 index 52ca9798..00000000 --- a/tests/test_search_package.py +++ /dev/null @@ -1,25 +0,0 @@ -import unittest -from slpkg.binary.search import search_pkg -from slpkg.sbo.search import sbo_search_pkg - - -class TestFindPkg(unittest.TestCase): - - def test_search(self): - """Testing found the name from binaries repos - """ - name = "vlc" - repo = "alien" - test = search_pkg(name, repo) - self.assertEqual(name, test) - - def test_sbo_search(self): - """Testing found the name from binaries repos - """ - name = "slpkg" - test = sbo_search_pkg(name).split("/")[-2] - self.assertEqual(name, test) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_slack_version.py b/tests/test_slack_version.py deleted file mode 100644 index 6d693fb6..00000000 --- a/tests/test_slack_version.py +++ /dev/null @@ -1,15 +0,0 @@ -import unittest -from slpkg.slack.slack_version import slack_ver - - -class TestSlackVersion(unittest.TestCase): - - def test_slack_version(self): - """Testing the current Slackware version - """ - ver = '15.0' - self.assertEqual(ver, slack_ver()) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_split_package.py b/tests/test_split_package.py deleted file mode 100644 index 04c6b402..00000000 --- a/tests/test_split_package.py +++ /dev/null @@ -1,26 +0,0 @@ -import unittest -from slpkg.splitting import split_package -from slpkg.pkg.find import searching - - -class TestSplitting(unittest.TestCase): - - def test_split_pkg(self): - path = '/var/log/packages/' - pkg_1 = ''.join(list(searching('slpkg', path))) - pkg_2 = ''.join(list(searching('akonadi-mime', path))) - pkg_3 = ''.join(list(searching('autoconf-archive', path))) - pkg_4 = ''.join(list(searching('bind', path))) - - self.assertListEqual(['slpkg', '3.9.9', 'x86_64', '1'], - split_package(pkg_1)) - self.assertListEqual(['akonadi-mime', '21.12.1', 'x86_64', '1'], - split_package(pkg_2)) - self.assertListEqual(['autoconf-archive', '2021.02.19', 'noarch', '1'], - split_package(pkg_3)) - self.assertListEqual(['bind', '9.16.29', 'x86_64', '1'], - split_package(pkg_4)) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_units.py b/tests/test_units.py deleted file mode 100644 index 096aa786..00000000 --- a/tests/test_units.py +++ /dev/null @@ -1,19 +0,0 @@ -import unittest -from slpkg.sizes import units - - -class TetsUnits(unittest.TestCase): - - def test_units(self): - """Testing the units metrics - """ - self.assertCountEqual((["Kb", "Kb"], [100, 100]), - units(["100"], ["100"])) - self.assertCountEqual((["Mb", "Mb"], [1000, 1000]), - units(["1024000"], ["1024000"])) - self.assertCountEqual((["Gb", "Gb"], [976.56, 976.56]), - units(["1024000000"], ["1024000000"])) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_utils.py b/tests/test_utils.py deleted file mode 100644 index f176f213..00000000 --- a/tests/test_utils.py +++ /dev/null @@ -1,34 +0,0 @@ -import unittest -from slpkg.utils import Utils - - -class TestUtils(unittest.TestCase): - - def setUp(self): - self.utils = Utils() - - def test_dimensional_list(self): - """Testing dimesional list util - """ - lists = [[1, 2, 3, 4, 5]] - self.assertListEqual([1, 2, 3, 4, 5], - self.utils.dimensional_list(lists)) - - def test_remove_dbs(self): - """Testing removing doubles item from list - """ - lists = [1, 2, 3, 3, 4, 5, 2, 1] - self.assertListEqual([1, 2, 3, 4, 5], self.utils.remove_dbs(lists)) - - def test_case_sensitive(self): - """Testing case sensitive - """ - lists = ['Vlc', 'OpenOffice', 'APScheduler'] - dictionary = {'vlc': 'Vlc', - 'openoffice': 'OpenOffice', - 'apscheduler': 'APScheduler'} - self.assertDictEqual(dictionary, self.utils.case_sensitive(lists)) - - -if __name__ == "__main__": - unittest.main() diff --git a/tools/gen_repos_files.sh b/tools/gen_repos_files.sh deleted file mode 100644 index a4962988..00000000 --- a/tools/gen_repos_files.sh +++ /dev/null @@ -1,945 +0,0 @@ -#!/bin/bash -# Copyright (c) 2006-2014 Eric Hameleers, Eindhoven, The Netherlands -# All rights reserved. -# -# Permission to use, copy, modify, and distribute this software for -# any purpose with or without fee is hereby granted, provided that -# the above copyright notice and this permission notice appear in all -# copies. -# -# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# --------------------------------------------------------------------------- -# -# Generate the PACKAGES.TXT FILELIST.TXT and CHECKSUMS.md5 files, -# needed by 3rd-party Slackware package management tools. -# -# Eric Hameleers -# --------------------------------------------------------------------------- -cat <<"EOT" -# -------------------------------------------------------------------# -# $Id: gen_repos_files.sh,v 1.94 2018/05/03 15:02:39 root Exp root $ # -# -------------------------------------------------------------------# -EOT - -# The script's basename will be displayed in the RSS feed: -BASENAME=$( basename $0 ) - -# The script'""s revision number will be displayed in the RSS feed: -REV=$( echo "$Revision: 1.94 $" | cut -d' ' -f2 ) - -# The repository owner's defaults file; -# you can override any of the default values in this file: -USERDEFS=${USERDEFS:-~/.genreprc} - -# --------------------------------------------------------------------------- -# Sane defaults: - -# The directory of the Slackware package repository: -REPOSROOT=${REPOSROOT:-"/home/www/sox/slackware/slackbuilds/"} - -# Repository maintainer -REPOSOWNER=${REPOSOWNER:-"Eric Hameleers "} - -# The GPG key for the repository owner can contain a different string than -# the value of $REPOSOWNER . If you leave $REPOSOWNERGPG empty, the script will -# use the value you've set for $REPOSOWNER instead to search the GPG keyfile. -REPOSOWNERGPG=${REPOSOWNERGPG:-""} - -# Under what URL is the repository accessible: -DL_URL=${DL_URL:-""} - -# The title of the generated RSS feed: -RSS_TITLE=${RSS_TITLE:-"Alien's Slackware packages"} - -# The logo picture used for the RSS feed: -RSS_ICON=${RSS_ICON:-"http://www.slackware.com/~alien/graphics/blueorb.png"} - -# The URL linked to when clicking on the logo: -RSS_LINK=${RSS_LINK:-"http://www.slackware.com/~alien/"} - -# URL to the full changelog.txt: -RSS_CLURL=${RSS_CLURL:-"http://www.slackware.com/~alien/slackbuilds/ChangeLog.txt"} - -# The descriptive text for the RSS feed: -RSS_DESCRIPTION=${RSS_DESCRIPTION:-"Eric Hameleers (alien's) Slackware package repository. The package directories include the SlackBuild script and sources."} - -# Maximum number of RSS feed entries to display: -RSS_FEEDMAX=${RSS_FEEDMAX:-15} - -# The RSS generator must use a unique feed identifier. -# Generate one for your feed by using the string returned by "uuidgen -t": -RSS_UUID=${RSS_UUID:-""} - -# Either use gpg or gpg2: -GPGBIN=${GPGBIN:-"/usr/bin/gpg"} - -# Optionally use gpg-agent to cache the gpg passphrase instead of letting the -# script keep it in the environment (note that if you define USE_GPGAGENT=1 -# but gpg-agent is not running, you will get prompted for a passphrase every -# single time gpg runs): -USE_GPGAGENT=${USE_GPGAGENT:-0} - -# Generate slack-requires, slack-suggests, and slack-conflicts lines in the -# metadata files by setting FOR_SLAPTGET to "1" -- these are used by slapt-get -FOR_SLAPTGET=${FOR_SLAPTGET:-0} - -# Follow symlinks in case the repository has symlinks like 14.0 -> 13.37 -# indicating that one package works for those two Slackware releases. -# If the script does _not_ follow symlinks, then the symlinks will appear in -# the repository listing instead of the packages they point to. -FOLLOW_SYMLINKS=${FOLLOW_SYMLINKS:-1} - -# If the repository has separate package subdirectories (for separate -# Slackware releases or architectures) then define them here. -# Separate FILELIST.TXT, MANIFEST etc.. files will be created for all of them: -REPO_SUBDIRS=${REPO_SUBDIRS:-""} - -# If you want to exclude certain directories or files from being included -# in the repository metadata, define them here (space-separated). -# Example: REPO_EXCLUDES="RCS logs .genreprc" -REPO_EXCLUDES=${REPO_EXCLUDES:-""} - -# --------------------------------------------------------------------------- - -# By default, no debug messages -DEBUG=0 - -# Timestamp to be used all around the script: -UPDATEDATE="$(LC_ALL=C date -u)" - -# A value of "yes" means that .meta .md5 and/or .asc files are -# always (re)generated. -# while "no" means: only generate these files if they are missing. -FORCEMD5="no" # .md5 files -FORCEPKG="no" # .meta files -FORCEASC="no" # .asc files -TOUCHUP="no" # rsync has issues with files whose content has changed, but - # both size and timestamp remain unchanged (needs expensive - # '--checksum' to detect these file changes) -# We may have a need to only update the ChangeLog files: -RSSONLY="no" # ChangeLog .rss and .txt -# For a sub-repository we do not have a ChangeLog: -CHANGELOG="yes" - -# Variable used to limit the search for packages which lack .md5/.asc file, -# to those packages changed less than NOTOLDER days ago. -NOTOLDER="" - -# Variable used to import the content of a text file as the new ChangeLog.txt -# entry. If empty, you will be asked to type a new entry yourself. -LOGINPUT="" - -# -# --- no need to change anything below this line ---------------------------- -# - -# Import the repository owner's defaults -if [ -f $USERDEFS ]; then - echo "Importing user defaults." - . $USERDEFS -fi - -# We prevent the mirror from running more than one instance: -PIDFILE=/var/tmp/$(basename $0 .sh).pid - -# Make sure the PID file is removed when we kill the process -trap 'rm -f $PIDFILE; exit 1' TERM INT - -# Determine the prune parameters for the 'find' commands: -PRUNES="" -if [ -n "$REPO_EXCLUDES" ]; then - echo "--- Excluding: $REPO_EXCLUDES" - for substr in $REPO_EXCLUDES ; do - PRUNES="${PRUNES} -o -name ${substr} -prune " - done -fi - -# Command line parameter processing: -while getopts ":ahl:mn:prstv" Option -do - case $Option in - h ) echo "Parameters are:" - echo " -h : This help text" - echo " -a : Force generation of .asc gpg signature files" - echo " -l : Use file as input for ChangeLog.txt" - echo " -m : Force generation of .md5 files" - echo " -n : Only look for packages not older than days" - echo " -p : Force generation of package .meta files" - echo " -r : Update ChangeLog TXT and RSS files only" - echo " -s : Sub-repository: does not have ChangeLog TXT or RSS" - echo " -t : Timestamp of metafiles equal to package timestamp" - echo " -v : Verbose messages about packages found" - exit - ;; - a ) FORCEASC="yes" - ;; - l ) LOGINPUT="${OPTARG}" - ;; - m ) FORCEMD5="yes" - ;; - n ) NOTOLDER=${OPTARG} - ;; - p ) FORCEPKG="yes" - ;; - r ) RSSONLY="yes" - ;; - s ) CHANGELOG="no" - ;; - t ) TOUCHUP="yes" - ;; - v ) DEBUG=1 - ;; - * ) echo "You passed an illegal switch to the program!" - echo "Run '$0 -h' for more help." - exit - ;; # DEFAULT - esac -done - -# End of option parsing. -shift $(($OPTIND - 1)) -# $1 now references the first non option item supplied on the command line -# if one exists. -# --------------------------------------------------------------------------- - -# -# --- HELPER FUNCTIONS ------------------------------------------------------ -# - -# -# pkgcomp -# -function pkgcomp { - # Return the compression utility used for this package, - # based on the package's extension. - # Determine extension: - PEXT="$( echo $1 | rev | cut -f 1 -d . | rev)" - # Determine compression used: - case $PEXT in - 'tgz' ) - COMP=gzip - ;; - 'tbz' ) - COMP=bzip2 - ;; - 'tlz' ) - COMP=lzma - ;; - 'txz' ) - COMP=xz - ;; - esac - echo ${COMP:-"gzip"} -} - -# -# addpkg -# -function addpkg { - # ----------------------------------------------- - # Functionality used from the slapt-get FAQ#17 at - # http://software.jaos.org/BUILD/slapt-get/FAQ : - # ----------------------------------------------- - # Generate a package's metafile if missing, and add the content of - # this metafile to the PACKAGES.TXT - # Argument #1 : full path to a package - # Argument #2 : full path to PACKAGES.TXT file/ - - if [ ! -f "$1" -o ! -f "$2" ]; then - echo "Required arguments '$1' and/or '$2' are invalid files!" - exit 1 - fi - PKG=$1 - PACKAGESFILE=$2 - - if [ "$(echo $PKG|grep -E '(.*{1,})\-(.*[\.\-].*[\.\-].*).t[blxg]z[ ]{0,}$')" == "" ]; - then - return; - fi - - NAME=$(echo $PKG|sed -re "s/(.*\/)(.*.t[blxg]z)$/\2/") - LOCATION=$(echo $PKG|sed -re "s/(.*)\/(.*.t[blxg]z)$/\1/") - METAFILE=${NAME%t[blxg]z}meta - TXTFILE=${NAME%t[blxg]z}txt - - if [ "$FORCEPKG" == "yes" -o ! -f $LOCATION/$TXTFILE ]; then - # This is a courtesy service: - echo "--> Generating .txt file for $NAME" - rm -f $LOCATION/$TXTFILE - $COMPEXE -cd $PKG | tar xOf - install/slack-desc | sed -n '/^#/d;/:/p' > $LOCATION/$TXTFILE - [ "$TOUCHUP" == "yes" ] && touch -r $PKG $LOCATION/$TXTFILE || touch -d "$UPDATEDATE" $LOCATION/$TXTFILE - fi - - if [ "$FORCEPKG" == "yes" -o ! -f $LOCATION/$METAFILE ]; then - echo "--> Generating .meta file for $NAME" - - # Determine the compression tool used for this package: - COMPEXE=$( pkgcomp $PKG ) - - SIZE=$(du -s $PKG | cut -f 1) - - if [ "$COMPEXE" = "xz" ]; then - # xz does not support the "-l" switch yet: - cat $PKG | $COMPEXE -dc | dd 1> /dev/null 2> $HOME/.temp.uncomp.$$ - USIZE="$(expr $(cat $HOME/.temp.uncomp.$$ | head -n 1 | cut -f1 -d+) / 2)" - rm -f $HOME/.temp.uncomp.$$ - else - USIZE=$( expr $(gunzip -l $PKG |tail -1|awk '{print $2}') / 1024 ) - fi - - if [ $FOR_SLAPTGET -eq 1 ]; then - REQUIRED=$($COMPEXE -cd $PKG | tar xOf - install/slack-required 2>/dev/null|tr -d ' '|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//") - CONFLICTS=$($COMPEXE -cd $PKG | tar xOf - install/slack-conflicts 2>/dev/null|tr -d ' '|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//") - SUGGESTS=$($COMPEXE -cd $PKG | tar xOf - install/slack-suggests 2>/dev/null|xargs -r ) - fi - - rm -f $LOCATION/$METAFILE - echo "PACKAGE NAME: $NAME" > $LOCATION/$METAFILE - if [ -n "$DL_URL" ]; then - echo "PACKAGE MIRROR: $DL_URL" >> $LOCATION/$METAFILE - fi - echo "PACKAGE LOCATION: $LOCATION" >> $LOCATION/$METAFILE - echo "PACKAGE SIZE (compressed): $SIZE K" >> $LOCATION/$METAFILE - echo "PACKAGE SIZE (uncompressed): $USIZE K" >> $LOCATION/$METAFILE - if [ $FOR_SLAPTGET -eq 1 ]; then - echo "PACKAGE REQUIRED: $REQUIRED" >> $LOCATION/$METAFILE - echo "PACKAGE CONFLICTS: $CONFLICTS" >> $LOCATION/$METAFILE - echo "PACKAGE SUGGESTS: $SUGGESTS" >> $LOCATION/$METAFILE - fi - echo "PACKAGE DESCRIPTION:" >> $LOCATION/$METAFILE - if [ -f $LOCATION/$TXTFILE ]; then - cat $LOCATION/$TXTFILE >> $LOCATION/$METAFILE - else - $COMPEXE -cd $PKG | tar xOf - install/slack-desc | sed -n '/^#/d;/:/p' >> $LOCATION/$METAFILE - fi - echo "" >> $LOCATION/$METAFILE - [ "$TOUCHUP" == "yes" ] && touch -r $PKG $LOCATION/$METAFILE || touch -d "$UPDATEDATE" $LOCATION/$METAFILE - fi - - # Package location may have changed: - sed -e "/^PACKAGE LOCATION: /s,^.*$,PACKAGE LOCATION: $LOCATION," $LOCATION/$METAFILE >> $PACKAGESFILE - -} # end of function 'addpkg' - -# -# addman -# -function addman { - # Add a package's content to the MANIFEST file - # Argument #1 : full path to a package - # Argument #2 : full path to MANIFEST file - - if [ ! -f "$1" -o ! -f "$2" ]; then - echo "Required arguments '$1' and/or '$2' are invalid files!" - exit 1 - fi - PKG=$1 - MANIFESTFILE=$2 - - if [ "$(echo $PKG|grep -E '(.*{1,})\-(.*[\.\-].*[\.\-].*).t[blxg]z[ ]{0,}$')" == "" ]; - then - return; - fi - - NAME=$(echo $PKG|sed -re "s/(.*\/)(.*.t[blxg]z)$/\2/") - LOCATION=$(echo $PKG|sed -re "s/(.*)\/(.*.t[blxg]z)$/\1/") - LSTFILE=${NAME%t[blxg]z}lst - - if [ "$FORCEPKG" == "yes" -o ! -f $LOCATION/$LSTFILE ]; then - echo "--> Generating .lst file for $NAME" - - # Determine the compression tool used for this package: - COMPEXE=$( pkgcomp $PKG ) - - rm -f $LOCATION/$LSTFILE - cat << EOF > $LOCATION/$LSTFILE -++======================================== -|| -|| Package: $PKG -|| -++======================================== -EOF - - $COMPEXE -cd $PKG | tar -tvvf - >> $LOCATION/$LSTFILE - echo "" >> $LOCATION/$LSTFILE - echo "" >> $LOCATION/$LSTFILE - [ "$TOUCHUP" == "yes" ] && touch -r $PKG $LOCATION/$LSTFILE || touch -d "$UPDATEDATE" $LOCATION/$LSTFILE - fi - - # Compensate for partial pathnames in .lst files found in sub-repos: - cat $LOCATION/$LSTFILE \ - | sed -e "s%^|| Package: .*$%|| Package: $PKG%" \ - >> $MANIFESTFILE -} # end of function 'addman' - - -# -# genmd5 -# -function genmd5 { - # Generate a package's MD5SUM (*.md5 file) if missing, - # Argument #1 : full path to a package - - if [ ! -f "$1" ]; then - echo "Required argument '$1' is an invalid file!" - exit 1 - fi - PKG=$1 - - NAME=$(echo $PKG|sed -re "s/(.*\/)(.*.t[blxg]z)$/\2/") - LOCATION=$(echo $PKG|sed -re "s/(.*)\/(.*.t[blxg]z)$/\1/") - BASE=${NAME%.t[blxg]z} - MD5FILE=${NAME}.md5 - - if [ "$FORCEMD5" == "yes" -o ! -f $LOCATION/$MD5FILE ]; then - echo "--> Generating .md5 file for $NAME" - (cd $LOCATION - rm -f $MD5FILE - md5sum $NAME > $MD5FILE - ) - [ "$TOUCHUP" == "yes" ] && touch -r $PKG $LOCATION/$MD5FILE || touch -d "$UPDATEDATE" $LOCATION/$MD5FILE - fi - -} # end of function 'genmd5' - - -# -# genasc -# -function genasc { - # Generate a package's GPG signature (*.asc file) if missing, - # Argument #1 : full path to a package - - if [ ! -f "$1" ]; then - echo "Required argument '$1' is invalid filename!" - exit 1 - fi - PKG=$1 - - NAME=$(echo $PKG|sed -re "s/(.*\/)(.*.t[blxg]z)$/\2/") - LOCATION=$(echo $PKG|sed -re "s/(.*)\/(.*.t[blxg]z)$/\1/") - ASCFILE=${NAME}.asc - - if [ "$FORCEASC" == "yes" -o ! -f $LOCATION/$ASCFILE ]; then - echo "--> Generating .asc file for $NAME" - (cd $LOCATION - rm -f $ASCFILE - gpg_sign $NAME - ) - [ "$TOUCHUP" == "yes" ] && touch -r $PKG $LOCATION/$ASCFILE || touch -d "$UPDATEDATE" $LOCATION/$ASCFILE - fi - -} # end of function 'genasc' - - -# -# gen_filelist -# -function gen_filelist { - # Argument #1 : full path to a directory - # Argument #2 : output filename (defaults to FILELIST.TXT) will be - # created in directory $1 (overwriting existing file). - - if [ ! -d "$1" ]; then - echo "Required argument '$1' must be a directory!" - exit 1 - fi - DIR=$1 - LISTFILE=${2:-FILELIST.TXT} - - ( cd ${DIR} - rm -f ${LISTFILE} - cat < ${LISTFILE} -$UPDATEDATE - -Here is the file list for ${DL_URL:-this directory} , -maintained by ${REPOSOWNER} . -If you are using a mirror site and find missing or extra files -in the subdirectories, please have the archive administrator -refresh the mirror. - -EOT - if [ $FOLLOW_SYMLINKS -eq 1 ]; then - find -L . -print $PRUNES | sort | xargs ls -nld --time-style=long-iso >> ${LISTFILE} - else - find . -print $PRUNES | sort | xargs ls -nld --time-style=long-iso >> ${LISTFILE} - fi - ) -} # end of function 'gen_filelist' - -# -# upd_changelog -# -function upd_changelog { - # Update the ChangeLog.txt with a new entry - # - written at the beginning of the file. - # Argument #1 : full path to a directory - # Argument #2 : a filename (defaults to 'ChangeLog.txt') - - if [ ! -d "$1" ]; then - echo "Required argument '$1' must be an existing directory!" - exit 1 - fi - local DIR=$1 - local CHANGELOG=${2:-ChangeLog.txt} - if [ -e $DIR/$CHANGELOG -a ! -w $DIR/$CHANGELOG ]; then - echo "Can not write to file ${DIR}/${CHANGELOG}!" - exit 1 - fi - - local MAXLINE=78 # Lines will be wrapped at MAXLINE characters. - local LOGTEXT="" - local i=0 - - if [ "$LOGINPUT" == "" ]; then - # Ask for a new ChangeLog entry - read -er -p "Enter ChangeLog.txt description: " - else - REPLY=$(cat "$LOGINPUT" 2>/dev/null) - fi - - if [ "$REPLY" == "" ]; then - echo "No input, so I won't update your $CHANGELOG" - return - fi - - LOGTXT="" - for WORD in $REPLY ; do - # The word 'NEWLINE' forces a... newline in the output. - # The word 'LINEFEED' also signals the start of a new line, but indented. - if [ "${WORD}" == "NEWLINE" ]; then - LOGLINE[$i]="$LOGTXT" - LOGTXT="" - i=$(( $i+1 )) - elif [ "${WORD}" == "LINEFEED" ]; then - LOGLINE[$i]="$LOGTXT" - LOGTXT=" " - i=$(( $i+1 )) - elif [ $(( ${#LOGTXT}+1+${#WORD} )) -gt $MAXLINE ]; then - LOGLINE[$i]="$LOGTXT" - LOGTXT=" ${WORD}" # indent the text two spaces. - i=$(( $i+1 )) - else - [ "$LOGTXT" != "" ] && LOGTXT="${LOGTXT} ${WORD}" || LOGTXT="${WORD}" - fi - done - LOGLINE[$i]="$LOGTXT" - - cat <<-EOT > ${DIR}/.${CHANGELOG} - +--------------------------+ - $UPDATEDATE - EOT - - for IND in $(seq 0 $i); do - echo "${LOGLINE[$IND]}" >> ${DIR}/.${CHANGELOG} - done - echo "" >> ${DIR}/.${CHANGELOG} - if [ -f "${DIR}/${CHANGELOG}" ]; then - cat ${DIR}/${CHANGELOG} >> ${DIR}/.${CHANGELOG} - fi - mv -f ${DIR}/.${CHANGELOG} ${DIR}/${CHANGELOG} -} - -# -# gpg_sign -# -function gpg_sign { - # Create a gpg signature for a file. Use either gpg or gpg2 and optionally - # let gpg-agent provide the passphrase. - if [ $USE_GPGAGENT -eq 1 ]; then - $GPGBIN --use-agent -bas -u "$REPOSOWNERGPG" --batch --quiet $1 - else - echo $TRASK | $GPGBIN -bas -u "$REPOSOWNERGPG" --passphrase-fd 0 --batch --quiet $1 - fi - return $? -} - -# -# rss_changelog -# -function rss_changelog { - # Create a RSS feed out of the ChangeLog.txt - # Argument #1 : full path to a directory - # Argument #2 : a filename (defaults to 'ChangeLog.txt') - # Argument #2 : a filename (defaults to 'ChangeLog.rss') - - if [ ! -d "$1" ]; then - echo "Required argument '$1' must be an existing directory!" - exit 1 - fi - DIR=$1 - INFILE=${DIR}/${2:-ChangeLog.txt} - RSSFILE=${DIR}/${3:-ChangeLog.rss} - if [ -e $RSSFILE -a ! -w $RSSFILE ]; then - echo "Can not write to RSS file ${RSSFILE}!" - exit 1 - fi - - # These values are all set in the beginning (can be user-overridden): - TITLE="$RSS_TITLE" - LINK="$RSS_LINK" - ICON="$RSS_ICON" - CLURL="$RSS_CLURL" - DESCRIPTION="$RSS_DESCRIPTION" - FEEDMAX=$RSS_FEEDMAX - UUID="$RSS_UUID" - - PUBDATE="" - LASTBUILDDATE=$(LC_ALL=C TZ=GMT date +"%a, %e %b %Y %H:%M:%S GMT") - # The 'date -R' RFC-2822 compliant string - # does not work for Thunderbird! - counter=0 - - # Parse the input file - cat ${INFILE} | while IFS= read cline ; do - if [ "$PUBDATE" == "" ]; then - # PUBDATE is empty, means we're reading the first line of input. - # The first line contains the most recent pubdate. - # For backward compatibility, if the file starts with - # "+--------------------------+" then we just skip that. - [ "$cline" == "+--------------------------+" ] && read cline - PUBDATE=$(LC_ALL=C TZ=GMT date +"%a, %e %b %Y %H:%M:%S GMT" -d "$cline") - rm -f ${RSSFILE} - cat <<-_EOT_ > ${RSSFILE} - - - - ${TITLE} - ${LINK} - - ${TITLE} - ${ICON} - ${LINK} - - ${DESCRIPTION} - en-us - urn:uuid:${UUID} - ${PUBDATE} - ${LASTBUILDDATE} - ${BASENAME} v ${REV} - - ${PUBDATE} - ${CLURL} - ${PUBDATE} - $(LC_ALL=C date -d "${PUBDATE}" +%Y%m%d%H%M%S) - - - _EOT_ - elif [ "$cline" == "+--------------------------+" ]; then - # This line masrks the start of a new entry. - # Only dump a certain amount of recent entries. - [ $counter -gt $FEEDMAX ] && break - - # Close the previous entry: - cat <<-_EOT_ >> ${RSSFILE} - ]]> - - - _EOT_ - - # Next line is the pubdate for the next entry: - read PUBDATE - PUBDATE=$(LC_ALL=C TZ=GMT date +"%a, %e %b %Y %H:%M:%S GMT" -d "$PUBDATE") - - # Write the header for the next entry: - cat <<-_EOT_ >> ${RSSFILE} - - ${PUBDATE} - ${CLURL} - ${PUBDATE} - $(LC_ALL=C date -d "${PUBDATE}" +%Y%m%d%H%M%S) - - - _EOT_ - - counter=$(( ${counter}+1 )) - else - # Add a line of description - [ "${cline}" != "" ] && echo "${cline}" >> ${RSSFILE} - fi - done - - # Close the last entry: - cat <<-_EOT_ >> ${RSSFILE} - ]]> - - - _EOT_ - - # Close the XML output: - cat <<-_EOT_ >> ${RSSFILE} - - - _EOT_ -} - -# -# run_repo -# -run_repo() { - # Run through a repository tree, generating the repo meta files. - - # Change directory to the root of the repository, so all generated - # information is relative to here: - local RDIR=$1 - - cd $RDIR - - # Create temporary MANIFEST and PACKAGES.TXT files: - cat /dev/null > .MANIFEST - cat /dev/null > .PACKAGES.TXT - - # This tries to look for filenames with the Slackware package name format: - if [ $FOLLOW_SYMLINKS -eq 1 ]; then - PKGS=$( find -L . -type f -name '*-*-*-*.t[blxg]z' -print $PRUNES | sort ) - else - PKGS=$( find . -type f -name '*-*-*-*.t[blxg]z' -print $PRUNES | sort ) - fi - for pkg in $PKGS; do - # Found a filename with matching format, is it really a slackpack? - COMPEXE=$( pkgcomp $pkg ) - if $COMPEXE -cd $pkg | tar tOf - install/slack-desc 1>/dev/null 2>&1 ; then - [ $DEBUG -eq 1 ] && echo "+++ Found package $pkg" - # We need to run addpkg for every package, to populate PACKAGES.TXT: - addpkg $pkg ${RDIR}/.PACKAGES.TXT - - # We need to run addman for every package, to populate MANIFEST - addman $pkg ${RDIR}/.MANIFEST - - if [ "x$NOTOLDER" != "x" ]; then - # When to generate md5sum/gpg signature if we have a $NOTOLDER value: - # 'date +%s' gives the current time in seconds since the Epoch; - # 'stat -c %Z $pkg' gives the ctime of $pkg file in seconds since Epoch; - # The difference of these two divided by 3600 is the file age in hours. - # '24 * $NOTOLDER' gives the maximum allowed age of the file in hours. - # If the package is too old, we do not try to create md5sum/gpg sig. - if [ $(( ( $(LC_ALL=C date +%s) - $(stat -c %Z $pkg) ) / 3600 )) -lt $(( 24 * $NOTOLDER )) ]; then - [ "$USEGPG" == "yes" ] && genasc $pkg - genmd5 $pkg - else - [ $DEBUG -eq 1 ] && echo " - Skipping md5/gpg calculation for $(basename $pkg)" - fi - else - [ "$USEGPG" == "yes" ] && genasc $pkg - genmd5 $pkg - fi - else - echo "*** Warning: $pkg does not contain a slack-desc file. ***" - fi - done - - # Make the changes visible: - rm -f PACKAGES.TXT - echo "PACKAGES.TXT; $UPDATEDATE" > PACKAGES.TXT - echo "" >> PACKAGES.TXT - if [ -n "$DL_URL" ]; then - cat .PACKAGES.TXT >> PACKAGES.TXT - else - cat .PACKAGES.TXT | grep -v "PACKAGE MIRROR: " >> PACKAGES.TXT - fi - rm -f .PACKAGES.TXT - rm -f MANIFEST - cat .MANIFEST > MANIFEST - rm -f .MANIFEST - - rm -f PACKAGES.TXT.gz MANIFEST.bz2 - bzip2 -9f MANIFEST - gzip -9cf PACKAGES.TXT > PACKAGES.TXT.gz - if [ "${CHANGELOG}" == "yes" -a -f ChangeLog.txt ]; then - rm -f ChangeLog.txt.gz - gzip -9cf ChangeLog.txt > ChangeLog.txt.gz - fi - -} # End run_repo() - - -# -# gen_checksums -# -gen_checksums() { - # Run through a repository tree, generating the checksum files. - - # Change directory to the root of the repository, so all generated - # information is relative to here: - local RDIR=$1 - - cd $RDIR - - # Create temporary CHECKSUMS.md5 file: - cat /dev/null > .CHECKSUMS.md5 - - # Generate the overall CHECKSUMS.md5 for this (sub-)repo: - cat << EOF > .CHECKSUMS.md5 -These are the MD5 message digests for the files in this directory. -If you want to test your files, use 'md5sum' and compare the values to -the ones listed here. - -To test all these files, use this command: - -tail +13 CHECKSUMS.md5 | md5sum --check | less - -'md5sum' can be found in the GNU coreutils package on ftp.gnu.org in -/pub/gnu, or at any GNU mirror site. - -MD5 message digest Filename -EOF - if [ $FOLLOW_SYMLINKS -eq 1 ]; then - find -L . -type f -print $PRUNES | grep -v CHECKSUMS | sort | xargs md5sum $1 2>/dev/null >> .CHECKSUMS.md5 - else - find . -type f -print $PRUNES | grep -v CHECKSUMS | sort | xargs md5sum $1 2>/dev/null >> .CHECKSUMS.md5 - fi - rm -f CHECKSUMS.md5 CHECKSUMS.md5.gz - cat .CHECKSUMS.md5 > CHECKSUMS.md5 - gzip -9cf CHECKSUMS.md5 > CHECKSUMS.md5.gz - - rm -f .CHECKSUMS.md5 CHECKSUMS.md5.asc CHECKSUMS.md5.gz.asc - - if [ "$USEGPG" == "yes" ]; then - # The CHECKSUMS.md5* files need a gpg signature: - gpg_sign CHECKSUMS.md5 - gpg_sign CHECKSUMS.md5.gz - fi - -} # End gen_checksums() - - -# -# --- MAIN ------------------------------------------------------------------ -# - -# Abort if we need to create the RSS file and RSS_UUID is empty: -if [ -z "${RSS_UUID}" -a "${CHANGELOG}" = "yes" ]; then - echo "**" - echo "** Please supply a value for the Universally Unique IDentifier (UUID) !" - echo "** Look for the RSS_UUID variable inside the script or in '$USERDEFS'," - echo "** and (for instance) use the return value from command 'uuidgen -t'." - echo "**" - exit 1 -fi - -echo "--- Generating repository metadata for $REPOSROOT ---" -echo "--- Repository owner is $REPOSOWNER ---" -echo "" - -# If the GPG key contains a different identification string than the name -# you want to use for the repository owner, set the REPOSOWNERGPG variable. -# If $REPOSOWNERGPG has an empty value we will use the value of $REPOSOWNER -# to search the GPG keyring. -if [ "x${REPOSOWNERGPG}" == "x" ]; then - REPOSOWNERGPG="${REPOSOWNER}" -fi - -# We will test correctness of the GPG passphrase against a temp file: -TESTTMP=$(mktemp) - -if [ "${CHANGELOG}" == "yes" ]; then - # Update ChangeLog.txt with a new entry - upd_changelog $REPOSROOT - # Write a RSS file for the ChangeLog.txt - rss_changelog $REPOSROOT -fi - -# If we only want to update the ChangeLog files, then we skip a lot: -if [ "$RSSONLY" = "yes" ]; then - echo "--- Exiting after re-generation of ChangeLog files (requested). ---" - echo "" -else - # Only generate GPG signatures if we have a GPG key - if ! $GPGBIN --list-secret-keys "$REPOSOWNERGPG" >/dev/null 2>&1 ; then - USEGPG="no" - echo "The GPG private key for \"$REPOSOWNERGPG\" wasn't found!" - echo "*** packages will not be signed! ***" - read -er -p "Continue? [y|N] " - [ "${REPLY:0:1}" = "y" -o "${REPLY:0:1}" = "Y" ] || exit 1 - else - USEGPG="yes" - if [ $USE_GPGAGENT -eq 0 ]; then - read -ers -p "Enter your GPG passphrase: " - TRASK=$REPLY - echo "." - if [ "$REPLY" == "" ]; then - echo "Empty GPG passphrase - disabling generation of signatures." - USEGPG="no" - fi - fi - fi - - if [ "$USEGPG" == "yes" ]; then - gpg_sign $TESTTMP 2>/dev/null - if [ $? -ne 0 ]; then - echo "GPG test failed, incorrect GPG passphrase? Aborting the script." - rm -f $TESTTMP - exit 1 - else - # Use the key fingerprint to determine whether GPG-KEY is outdated: - GPG_FPR=$($GPGBIN --with-colon --with-fingerprint --list-keys "$REPOSOWNERGPG" |grep ^fpr |cut -d: -f10) - if [ -r ${REPOSROOT}/GPG-KEY ]; then - # If the GPG-KEY file is outdated (user may have a new key), - # then we delete this file and re-generate it in the next step: - if ! grep -q $GPG_FPR ${REPOSROOT}/GPG-KEY ; then - rm -f ${REPOSROOT}/GPG-KEY - fi - fi - if [ ! -r ${REPOSROOT}/GPG-KEY ]; then - echo "Generating a "GPG-KEY" file in '$REPOSROOT'," - echo " containing the public key information for '$REPOSOWNERGPG'..." - $GPGBIN --list-keys "$REPOSOWNERGPG" > ${REPOSROOT}/GPG-KEY - echo "Key fingerprint: $GPG_FPR" >> ${REPOSROOT}/GPG-KEY - $GPGBIN -a --export "$REPOSOWNERGPG" >> ${REPOSROOT}/GPG-KEY - chmod 444 ${REPOSROOT}/GPG-KEY - fi - if [ -n "$REPO_SUBDIRS" ]; then - for SUBDIR in $REPO_SUBDIRS ; do - if [ -r ${REPOSROOT}}/${SUBDIR}/GPG-KEY ]; then - # If the GPG-KEY file is outdated (user may have a new key), - # then we delete this file and re-generate it in the next step: - if ! grep -q $GPG_FPR ${REPOSROOT}}/${SUBDIR}/GPG-KEY ; then - rm -f ${REPOSROOT}}/${SUBDIR}/GPG-KEY - fi - fi - if [ ! -r ${REPOSROOT}/${SUBDIR}/GPG-KEY ]; then - echo "Generating a "GPG-KEY" file in '$REPOSROOT/$SUBDIR'," - echo " containing the public key information for '$REPOSOWNERGPG'." - $GPGBIN --list-keys "$REPOSOWNERGPG" > $REPOSROOT/$SUBDIR/GPG-KEY - echo "Key fingerprint: $GPG_FPR" >> $REPOSROOT/$SUBDIR/GPG-KEY - $GPGBIN -a --export "$REPOSOWNERGPG" >> $REPOSROOT/$SUBDIR/GPG-KEY - chmod 444 ${REPOSROOT}/${SUBDIR}/GPG-KEY - fi - done - fi - fi - fi - - # Run through the repository, generating the MANIFEST etc: - if [ -n "$REPO_SUBDIRS" ]; then - echo "--- Populating repo subdirectories '${REPO_SUBDIRS}' ---" - for SUBDIR in $REPO_SUBDIRS ; do - run_repo $REPOSROOT/$SUBDIR - gen_filelist ${REPOSROOT}/$SUBDIR - gen_checksums ${REPOSROOT}/$SUBDIR - done - fi - run_repo $REPOSROOT - -fi # end !RSSONLY - -# Finally, generate the FILELIST.TXT and CHECKSUMS.md5* for the whole repo: -gen_filelist ${REPOSROOT} -gen_checksums ${REPOSROOT} - -# Clean up: -TRASK="" -rm -f ${TESTTMP}* - -# Done. From edaf3820b5fc7a36d6a0a25f1f3bdae2c365ada1 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 18:02:35 +0300 Subject: [PATCH 05/68] Added --reinstall option --- man/slpkg.1 | 5 +++++ slpkg/cli_menu.py | 3 ++- slpkg/main.py | 13 +++++++++---- slpkg/metadata.py | 1 + slpkg/slackbuild.py | 6 +++++- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/man/slpkg.1 b/man/slpkg.1 index 5b5c395c..f36c5e84 100644 --- a/man/slpkg.1 +++ b/man/slpkg.1 @@ -56,6 +56,11 @@ Answer Yes to all questions. .RS Turns off dependency resolving. .RE +.P +--reinstall +.RS +Use this option if you want to upgrade all packages even if the same version is already installed. Do not skip installed packages. +.RE .SH CONFIGURATION FILE .P Configuration file in the /etc/slpkg/slpkg.json file. diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py index 82fbe578..2cf61608 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/cli_menu.py @@ -5,7 +5,7 @@ from metadata import Metadata def usage(status): - args = [f'Usage: {Metadata.proj_name} [OPTIONS] [packages]\n', + args = [f'Usage: {Metadata.prog_name} [OPTIONS] [packages]\n', ' Tool that interact with the SBo repository.\n', 'Options:', ' update Update the data packages.', @@ -15,6 +15,7 @@ def usage(status): ' clean-logs Purge logs of dependencies.', ' --yes Answer Yes to all questions.', ' --resolve-off Turns off dependency resolving.', + ' --reinstall Use this option if you want to upgrade.', ' -h, --help Show this message and exit.', ' -v, --version Print version and exit.\n', 'If you need more information try to use slpkg manpage.'] diff --git a/slpkg/main.py b/slpkg/main.py index e100a293..3bea122c 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -51,16 +51,21 @@ class Argparse: def flags(self): self.flags = [] - resolve_off = '--resolve-off' yes = '--yes' + resolve_off = '--resolve-off' + reinstall = '--reinstall' + + if yes in self.args: + self.args.remove(yes) + self.flags.append(yes) if resolve_off in self.args: self.args.remove(resolve_off) self.flags.append(resolve_off) - if yes in self.args: - self.args.remove(yes) - self.flags.append(yes) + if reinstall in self.args: + self.args.remove(reinstall) + self.flags.append(reinstall) def command(self): diff --git a/slpkg/metadata.py b/slpkg/metadata.py index 675cd426..45b3761e 100644 --- a/slpkg/metadata.py +++ b/slpkg/metadata.py @@ -39,6 +39,7 @@ class Metadata: repo_tag: str = '_SBo' # Slackware commands installpkg: str = 'upgradepkg --install-new' + reinstall: str = 'upgradepkg --reinstall' removepkg: str = 'removepkg' # Other configs colors: str = 'on' diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 0fc60573..cfb56b32 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -34,6 +34,7 @@ class Slackbuilds: repo_tag: str = Metadata.repo_tag pkg_suffix: str = Metadata.pkg_suffix installpkg: str = Metadata.installpkg + reinstall: str = Metadata.reinstall def execute(self): ''' Starting build or install the slackbuilds. ''' @@ -129,7 +130,10 @@ class Slackbuilds: def install_package(self, package): ''' Install the packages that before created in the tmp directory. ''' - command = f'{self.installpkg} {self.tmp_path}/{package}' + execute = self.installpkg + if '--reinstall' in self.flags: + execute = self.reinstall + command = f'{execute} {self.tmp_path}/{package}' subprocess.call(command, shell=True) def creating_package_for_install(self, name: str): From 91eba2ffea987ee4f30819b6fe4a6c35e72485b1 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 19:36:07 +0300 Subject: [PATCH 06/68] Fixed packaging --- bin/__init__.py | 0 config/slpkg.json | 1 + install.sh | 4 ++-- setup.py | 1 - slackbuild/README | 2 +- slackbuild/slack-desc | 2 +- slackbuild/slpkg.SlackBuild | 14 ++++++++++---- slpkg/__init__.py | 1 - slpkg/clean_logs.py | 6 +++--- slpkg/cli_menu.py | 2 +- slpkg/create_data.py | 6 +++--- slpkg/dependencies.py | 2 +- slpkg/downloader.py | 2 +- slpkg/main.py | 14 +++++++------- slpkg/models/models.py | 2 +- slpkg/queries.py | 6 +++--- slpkg/remove_packages.py | 8 ++++---- slpkg/slackbuild.py | 16 ++++++++-------- slpkg/update_repository.py | 10 +++++----- slpkg/views/views.py | 4 ++-- 20 files changed, 54 insertions(+), 49 deletions(-) create mode 100644 bin/__init__.py diff --git a/bin/__init__.py b/bin/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/config/slpkg.json b/config/slpkg.json index a69ed454..5d735ade 100644 --- a/config/slpkg.json +++ b/config/slpkg.json @@ -16,6 +16,7 @@ "pkg_suffix": ".tgz", "repo_tag": "_SBo", "installpkg": "upgradepkg --install-new", + "reinstall": "upgradepkg --reinstall", "removepkg": "removepkg", "colors": "on", "wget_options": "-c -N" diff --git a/install.sh b/install.sh index fc542700..694e9aa2 100755 --- a/install.sh +++ b/install.sh @@ -24,8 +24,8 @@ __version() { # Grab version from __metadata_.py file -cat slpkg/__metadata__.py | grep "__version_info__ = (" \ - | tr -d [[:space:]] | cut -c19-23 | tr , . +cat slpkg/metadata.py | grep "version_info: tuple = (" \ + | tr -d [[:space:]] | cut -c21-25 | tr , . } PRGNAM=slpkg diff --git a/setup.py b/setup.py index 3e532880..9da5d3dd 100755 --- a/setup.py +++ b/setup.py @@ -19,7 +19,6 @@ setup( keywords=['slackware', 'slpkg', 'update', 'build', 'install', 'remove', 'slackpkg', 'tool'], author=Metadata.author, - author_email=Metadata.email, url='https://dslackw.gitlab.io/slpkg/', package_data={'': ['LICENSE', 'README.rst', 'ChangeLog.txt']}, data_files=[('/etc/slpkg', ['config/slpkg.json']), diff --git a/slackbuild/README b/slackbuild/README index b4665f85..a620d3cd 100644 --- a/slackbuild/README +++ b/slackbuild/README @@ -1,4 +1,4 @@ -Slpkg is a powerful software package manager that installs, updates +Slpkg is a software package manager that installs, updates and removes packages on Slackware based systems. It automatically computes dependencies and figures out what things should occur to install packages. Slpkg makes it easier to maintain groups diff --git a/slackbuild/slack-desc b/slackbuild/slack-desc index 02fc0e25..05812858 100644 --- a/slackbuild/slack-desc +++ b/slackbuild/slack-desc @@ -8,7 +8,7 @@ |-----handy-ruler------------------------------------------------------| slpkg: slpkg (Slackware Packaging Tool) slpkg: -slpkg: Slpkg is a powerful software package manager that installs, updates, +slpkg: Slpkg is a software package manager that installs, updates, slpkg: and removes packages on Slackware based systems. It automatically slpkg: computes dependencies and figures out what things should occur slpkg: to install packages. Slpkg makes it easier to maintain groups of diff --git a/slackbuild/slpkg.SlackBuild b/slackbuild/slpkg.SlackBuild index 5126f27d..e695ac42 100755 --- a/slackbuild/slpkg.SlackBuild +++ b/slackbuild/slpkg.SlackBuild @@ -24,8 +24,8 @@ __version() { # Grab version from __metadata_.py file -cat ../slpkg/__metadata__.py | grep "__version_info__ = (" \ - | tr -d [[:space:]] | cut -c19-23 | tr , . +cat ../slpkg/metadata.py | grep "version_info: tuple = (" \ + | tr -d [[:space:]] | cut -c21-25 | tr , . } cd $(dirname $0) ; CWD=$(pwd) @@ -98,10 +98,16 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr # install configuration files mkdir -p $PKG/etc/slpkg -install -D -m0644 conf/slpkg.json $PKG/etc/slpkg/slpkg.json.new +install -D -m0644 config/slpkg.json $PKG/etc/slpkg/slpkg.json.new + +mkdir -p $PKG/usr/man/man1 +cp man/slpkg.1 $PKG/usr/man/man1 + +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz; rm $i ; done mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a README.rst ChangeLog.txt LICENSE requirements.txt $PKG/usr/doc/$PRGNAM-$VERSION +cp -a README.rst ChangeLog.txt LICENSE.txt requirements.txt $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install diff --git a/slpkg/__init__.py b/slpkg/__init__.py index 2ec89ad5..e69de29b 100644 --- a/slpkg/__init__.py +++ b/slpkg/__init__.py @@ -1 +0,0 @@ -from main import Flags diff --git a/slpkg/clean_logs.py b/slpkg/clean_logs.py index ae4f25b9..13204463 100644 --- a/slpkg/clean_logs.py +++ b/slpkg/clean_logs.py @@ -4,9 +4,9 @@ from dataclasses import dataclass -from views.views import ViewMessage -from models.models import LogsDependencies -from models.models import session as Session +from slpkg.views.views import ViewMessage +from slpkg.models.models import LogsDependencies +from slpkg.models.models import session as Session @dataclass diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py index 2cf61608..c4495218 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/cli_menu.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -from metadata import Metadata +from slpkg.metadata import Metadata def usage(status): diff --git a/slpkg/create_data.py b/slpkg/create_data.py index 6f0e8e50..bf9bcd50 100644 --- a/slpkg/create_data.py +++ b/slpkg/create_data.py @@ -4,9 +4,9 @@ from dataclasses import dataclass -from metadata import Metadata -from models.models import SBoTable -from models.models import session as Session +from slpkg.metadata import Metadata +from slpkg.models.models import SBoTable +from slpkg.models.models import session as Session @dataclass diff --git a/slpkg/dependencies.py b/slpkg/dependencies.py index 1fe556de..e0c192c8 100644 --- a/slpkg/dependencies.py +++ b/slpkg/dependencies.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- -from queries import SBoQueries +from slpkg.queries import SBoQueries from dataclasses import dataclass diff --git a/slpkg/downloader.py b/slpkg/downloader.py index b4bf4bb5..177eab98 100644 --- a/slpkg/downloader.py +++ b/slpkg/downloader.py @@ -4,7 +4,7 @@ import subprocess from dataclasses import dataclass -from metadata import Metadata +from slpkg.metadata import Metadata @dataclass diff --git a/slpkg/main.py b/slpkg/main.py index 3bea122c..723cc5a9 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -6,13 +6,13 @@ import os import sys from dataclasses import dataclass -from cli_menu import usage -from metadata import Metadata -from queries import SBoQueries -from slackbuild import Slackbuilds -from remove_packages import RemovePackages -from update_repository import UpdateRepository -from clean_logs import CleanLogsDependencies +from slpkg.cli_menu import usage +from slpkg.metadata import Metadata +from slpkg.queries import SBoQueries +from slpkg.slackbuild import Slackbuilds +from slpkg.remove_packages import RemovePackages +from slpkg.update_repository import UpdateRepository +from slpkg.clean_logs import CleanLogsDependencies @dataclass diff --git a/slpkg/models/models.py b/slpkg/models/models.py index 31100e45..3a7c91e6 100644 --- a/slpkg/models/models.py +++ b/slpkg/models/models.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -from metadata import Metadata +from slpkg.metadata import Metadata from dataclasses import dataclass from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base diff --git a/slpkg/queries.py b/slpkg/queries.py index 81ba707d..d99a543f 100644 --- a/slpkg/queries.py +++ b/slpkg/queries.py @@ -2,9 +2,9 @@ # -*- coding: utf-8 -*- -from metadata import Metadata -from models.models import SBoTable -from models.models import session as Session +from slpkg.metadata import Metadata +from slpkg.models.models import SBoTable +from slpkg.models.models import session as Session from dataclasses import dataclass diff --git a/slpkg/remove_packages.py b/slpkg/remove_packages.py index 54f85080..4898e5d3 100644 --- a/slpkg/remove_packages.py +++ b/slpkg/remove_packages.py @@ -4,12 +4,12 @@ import os import subprocess -from metadata import Metadata +from slpkg.metadata import Metadata from dataclasses import dataclass -from views.views import ViewMessage -from models.models import LogsDependencies -from models.models import session as Session +from slpkg.views.views import ViewMessage +from slpkg.models.models import LogsDependencies +from slpkg.models.models import session as Session @dataclass diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index cfb56b32..a64b3180 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -7,14 +7,14 @@ import hashlib import subprocess from dataclasses import dataclass -from downloader import Wget -from metadata import Metadata -from queries import SBoQueries -from utilities import Utilities -from dependencies import Requires -from views.views import ViewMessage -from models.models import LogsDependencies -from models.models import session as Session +from slpkg.downloader import Wget +from slpkg.metadata import Metadata +from slpkg.queries import SBoQueries +from slpkg.utilities import Utilities +from slpkg.dependencies import Requires +from slpkg.views.views import ViewMessage +from slpkg.models.models import LogsDependencies +from slpkg.models.models import session as Session @dataclass diff --git a/slpkg/update_repository.py b/slpkg/update_repository.py index b8bf6ffd..237e010f 100644 --- a/slpkg/update_repository.py +++ b/slpkg/update_repository.py @@ -4,11 +4,11 @@ import os from os import path -from create_data import CreateData -from downloader import Wget -from metadata import Metadata -from models.models import SBoTable -from models.models import session as Session +from slpkg.create_data import CreateData +from slpkg.downloader import Wget +from slpkg.metadata import Metadata +from slpkg.models.models import SBoTable +from slpkg.models.models import session as Session from dataclasses import dataclass diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 27f26ffe..662f287c 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -3,8 +3,8 @@ import os from dataclasses import dataclass -from queries import SBoQueries -from metadata import Metadata +from slpkg.queries import SBoQueries +from slpkg.metadata import Metadata @dataclass From c1a5ecf66ab5e5471463677b4ded9f46d6333a62 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 20:10:17 +0300 Subject: [PATCH 07/68] Updated manpage --- man/slpkg.1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/man/slpkg.1 b/man/slpkg.1 index f36c5e84..6a8d7113 100644 --- a/man/slpkg.1 +++ b/man/slpkg.1 @@ -4,7 +4,7 @@ slpkg - [OPTIONS] [packages] .SH SYNAPSES .P -slpkg [-h|-v] [update] [build] [install] [remove] [clean-logs] --yes --resolve-off +slpkg [-h | -v] [update] [build] [install] [remove] [clean-logs] --yes --resolve-off --reinstall .SH DESCRIPTION .P Slpkg is a software package manager that installs, updates, and removes packages on Slackware based systems. It automatically computes dependencies and figures out what things should occur to install packages. Slpkg makes it easier to maintain groups of machines without having to manually update. @@ -12,12 +12,12 @@ Slpkg is a software package manager that installs, updates, and removes packages Slpkg works in accordance with the standards of the organization SlackBuilds.org to build packages. Also uses the Slackware Linux instructions for installation, upgrading or removing packages. .SH OPTIONS .P --h |--help +-h | --help .RS Show help informatio and exit. .RE .P --v |--version +-v | --version .RS Print version and exit. .RE @@ -67,6 +67,6 @@ Configuration file in the /etc/slpkg/slpkg.json file. .SH REPORT BUGS .P Please report any found to https://gitlab.com/dslackw/slpkg/-/issues. -.SH AUTHORS +.SH AUTHOR .P Dimitris Zlatanidis From ecf55836a0faa4499503bd71b826cf3e324ce650 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 20:22:50 +0300 Subject: [PATCH 08/68] Removed unused log path --- config/slpkg.json | 1 - slpkg/metadata.py | 1 - 2 files changed, 2 deletions(-) diff --git a/config/slpkg.json b/config/slpkg.json index 5d735ade..5ed4fe0b 100644 --- a/config/slpkg.json +++ b/config/slpkg.json @@ -4,7 +4,6 @@ "tmp_slpkg": "/tmp/slpkg", "build_path": "/tmp/slpkg/build", "lib_path": "/var/lib/slpkg", - "log_path": "/var/log/slpkg", "db_path": "/var/lib/slpkg/database", "sbo_repo_path": "/var/lib/slpkg/repository", "log_packages": "/var/log/packages", diff --git a/slpkg/metadata.py b/slpkg/metadata.py index 45b3761e..36bb5758 100644 --- a/slpkg/metadata.py +++ b/slpkg/metadata.py @@ -24,7 +24,6 @@ class Metadata: tmp_slpkg: str = f'{tmp_path}/{prog_name}' build_path: str = f'/tmp/{prog_name}/build' lib_path: str = f'/var/lib/{prog_name}' - log_path: str = f'/var/log/{prog_name}' db_path: str = f'/var/lib/{prog_name}/database' sbo_repo_path: str = f'/var/lib/{prog_name}/repository' log_packages: str = '/var/log/packages' From c5875a6dae4561bfa6bb56b204d2356ad5170a45 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 20:23:56 +0300 Subject: [PATCH 09/68] Fixed view version --- slpkg/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/main.py b/slpkg/main.py index 723cc5a9..8c39a197 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -79,7 +79,7 @@ class Argparse: usage(0) if self.args[0] in ['--version', '-v']: - print(f'{Metadata.proj_name}: {Metadata.version}') + print(f'{Metadata.prog_name}: {Metadata.version}') raise SystemExit(0) if self.args[0] == 'clean-logs': From 844fadbceb364d3fb092d4d1e8e5a817616fd537 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 20:24:49 +0300 Subject: [PATCH 10/68] Fixed version --- ChangeLog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index b0ceecf9..41990773 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,4 +1,4 @@ -4.1.0 - 20/06/2022 +4.1.0 - 17/06/2022 Updated: - slpkg code re-written from the beginning and currently supports only the SBo repository From 1735c792c0e2a18f918f3a4f3d8b8ea4a50e77b2 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 20:31:23 +0300 Subject: [PATCH 11/68] Fixed data packages --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 9da5d3dd..1a6779b5 100755 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ setup( 'slackpkg', 'tool'], author=Metadata.author, url='https://dslackw.gitlab.io/slpkg/', - package_data={'': ['LICENSE', 'README.rst', 'ChangeLog.txt']}, + package_data={'': ['LICENSE.txt', 'README.rst', 'ChangeLog.txt']}, data_files=[('/etc/slpkg', ['config/slpkg.json']), ('/var/lib/slpkg/database', []), ('/var/lib/slpkg/repository', []), From d3c64af6085bf6b5e013dedb2eada2604b3d38bc Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 20:40:52 +0300 Subject: [PATCH 12/68] Updated for packages --- bin/__init__.py | 0 slpkg/main.py | 7 +++---- 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 bin/__init__.py diff --git a/bin/__init__.py b/bin/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/slpkg/main.py b/slpkg/main.py index 8c39a197..8572f8b7 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -25,20 +25,19 @@ class Check: ''' Checking if the slackbuild exists in the repository. ''' for sbo in self.slackbuilds: if not SBoQueries(sbo).slackbuild(): - raise SystemExit(f'Error: Slackbuild {sbo} does not exists.') + raise SystemExit(f'Error: Package {sbo} does not exists.') def unsupported(self): ''' Checking for unsupported slackbuilds. ''' for sbo in self.slackbuilds: sources = SBoQueries(sbo).sources() if 'UNSUPPORTED' in sources: - raise SystemExit(f'Error: Slackbuild {sbo} ' + raise SystemExit(f'Error: Package {sbo} ' 'unsupported by arch.') def installed(self): ''' Checking for installed packages. ''' - installed = os.listdir(self.log_packages) - for package in installed: + for package in os.listdir(self.log_packages): for sbo in self.slackbuilds: if sbo + '-' in package and self.repo_tag in package: return From 7eeecaf84115be78e3c84a0fce64671454669d2a Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 22:27:09 +0300 Subject: [PATCH 13/68] Check for empty database --- slpkg/main.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/slpkg/main.py b/slpkg/main.py index 8572f8b7..cdad6781 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -23,6 +23,7 @@ class Check: def exists(self): ''' Checking if the slackbuild exists in the repository. ''' + self.database() for sbo in self.slackbuilds: if not SBoQueries(sbo).slackbuild(): raise SystemExit(f'Error: Package {sbo} does not exists.') @@ -43,6 +44,12 @@ class Check: return raise SystemExit('Error: Not found packages for remove.') + def database(self): + ''' Checking for empty table ''' + if not SBoQueries('').names(): + raise SystemExit('\nYou need to update the package lists first.\n' + 'Please run slpkg update.\n') + @dataclass class Argparse: From c353a3035e9ffb20a0c4f8d3b673dac63c2f5c67 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Fri, 17 Jun 2022 22:34:00 +0300 Subject: [PATCH 14/68] Switched to self class --- slpkg/clean_logs.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/slpkg/clean_logs.py b/slpkg/clean_logs.py index 13204463..79a2db2a 100644 --- a/slpkg/clean_logs.py +++ b/slpkg/clean_logs.py @@ -14,9 +14,8 @@ class CleanLogsDependencies: flags: str session: str = Session - @classmethod - def clean(cls): - deps = cls.session.query( + def clean(self): + deps = self.session.query( LogsDependencies.name, LogsDependencies.requires).all() if deps: @@ -26,9 +25,9 @@ class CleanLogsDependencies: print(f'{dep[0]} -> Dependencies: {dep[1]}') view = ViewMessage() - view.question(cls.flags) + view.question(self.flags) - cls.session.query(LogsDependencies).delete() - cls.session.commit() + self.session.query(LogsDependencies).delete() + self.session.commit() else: print('Nothing to clean.') From 62e615313583d49aefc46e6b306baae2f2f82206 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 00:23:42 +0300 Subject: [PATCH 15/68] Fixed double packages --- slpkg/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slpkg/main.py b/slpkg/main.py index cdad6781..624535bd 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -104,7 +104,7 @@ class Argparse: if len(self.args) >= 2: # Build slackbuilds if self.args[0] == 'build': - packages = self.args[1:] + packages = set(self.args[1:]) check = Check(packages) check.exists() @@ -116,7 +116,7 @@ class Argparse: # Install packages if self.args[0] == 'install': - packages = self.args[1:] + packages = set(self.args[1:]) check = Check(packages) check.exists() @@ -128,7 +128,7 @@ class Argparse: # Remove packages if self.args[0] == 'remove': - packages = self.args[1:] + packages = set(self.args[1:]) check = Check(packages) check.installed() From 28e542c605288eab42f2a1c12c6471875201d134 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 00:24:43 +0300 Subject: [PATCH 16/68] Added is_installed method --- slpkg/utilities.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/slpkg/utilities.py b/slpkg/utilities.py index 8a4adce1..d9503ac1 100644 --- a/slpkg/utilities.py +++ b/slpkg/utilities.py @@ -6,10 +6,12 @@ import os import re import tarfile from dataclasses import dataclass +from metadata import Metadata @dataclass class Utilities: + log_packages: str = Metadata.log_packages def build_tag(self, path: str, name: str): ''' Opens the .SlackBuild file and reads the BUILD TAG. ''' @@ -30,3 +32,9 @@ class Utilities: untar = tarfile.open(tar_file) untar.extractall(ext_path) untar.close() + + def is_installed(self, package: str): + ''' Returns True if a package is installed. ''' + for pkg in os.listdir(self.log_packages): + if package in pkg: + return True From ca56ff1d97039f61675a47466a36c92924bd36d1 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 00:25:39 +0300 Subject: [PATCH 17/68] Replaced with view message --- slpkg/clean_logs.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/slpkg/clean_logs.py b/slpkg/clean_logs.py index 79a2db2a..5482b819 100644 --- a/slpkg/clean_logs.py +++ b/slpkg/clean_logs.py @@ -15,16 +15,13 @@ class CleanLogsDependencies: session: str = Session def clean(self): - deps = self.session.query( + dependencies = self.session.query( LogsDependencies.name, LogsDependencies.requires).all() - if deps: - print('The following logs will be removed:\n') - - for dep in deps: - print(f'{dep[0]} -> Dependencies: {dep[1]}') + if dependencies: view = ViewMessage() + view.logs_packages(dependencies) view.question(self.flags) self.session.query(LogsDependencies).delete() From 8b49133be2a6a0d7189524f9c930429d2f9102b4 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 00:26:39 +0300 Subject: [PATCH 18/68] Updated view packages --- slpkg/views/views.py | 51 ++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 662f287c..3c3af96a 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -1,60 +1,69 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -import os from dataclasses import dataclass from slpkg.queries import SBoQueries from slpkg.metadata import Metadata +from utilities import Utilities @dataclass class ViewMessage: colors: str = Metadata.colour + utils: str = Utilities() def build_packages(self, slackbuilds): - color = self.colors() - print('The following packages will be build:\n') + color = self.colors() for sbo in slackbuilds: version = SBoQueries(sbo).version() print(f'[{color["GREEN"]} build {color["ENDC"]}] -> ' f'{sbo}-{version}') - def install_packages(self, slackbuilds): - is_installed = IsInstalled() + def install_packages(self, sbos_order, slackbuilds): + print('The following packages will be installed or upgraded:\n') color = self.colors() - print('The following packages will be installed:\n') - for sbo in slackbuilds: version = SBoQueries(sbo).version() - installed = is_installed.check(f'{sbo}-{version}-') - if installed: - print(f'[{color["YELLOW"]} install {color["ENDC"]}] -> ' + if self.utils.is_installed(f'{sbo}-{version}-'): + print(f'[{color["YELLOW"]} upgrade {color["ENDC"]}] -> ' f'{sbo}-{version}') else: print(f'[{color["GREEN"]} install {color["ENDC"]}] -> ' f'{sbo}-{version}') + print('Dependencies:') + for sbo in sbos_order: + if sbo not in slackbuilds: + version = SBoQueries(sbo).version() + + if self.utils.is_installed(f'{sbo}-{version}-'): + print(f'[{color["YELLOW"]} upgrade {color["ENDC"]}] -> ' + f'{sbo}-{version}') + else: + print(f'[{color["GREEN"]} install {color["ENDC"]}] -> ' + f'{sbo}-{version}') + def remove_packages(self): print('The following packages will be removed:\n') - def question(self, flags): + def logs_packages(self, dependencies): + print('The following logs will be removed:\n') + color = self.colors() + for dep in dependencies: + print(f'{color["RED"]}{dep[0]}{color["ENDC"]}') + print('Dependencies:') + for d in dep[1].split(): + print(f'{color["RED"]} {d}{color["ENDC"]}') + print() + + def question(self, flags): if '--yes' not in flags: answer = input('\nDo you want to continue [y/N]: ') print() if answer not in ['Y', 'y']: raise SystemExit() print() - - -@dataclass -class IsInstalled: - log_packages: str = Metadata.log_packages - - def check(self, package): - for pkg in os.listdir(self.log_packages): - if package in pkg: - return True From e70685aac9fbec28d27549edb7212c246f5d1c33 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 00:27:11 +0300 Subject: [PATCH 19/68] Updated for utilities --- slpkg/slackbuild.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index a64b3180..87a2797b 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -24,6 +24,7 @@ class Slackbuilds: flags: list install: bool session: str = Session + utils: str = Utilities() build_path: str = Metadata.build_path sbo_url: str = Metadata.sbo_url build_path: str = Metadata.build_path @@ -54,7 +55,7 @@ class Slackbuilds: view = ViewMessage() if self.install: - view.install_packages(self.sbos_order) + view.install_packages(self.sbos_order, self.slackbuilds) else: view.build_packages(self.sbos_order) @@ -80,7 +81,6 @@ class Slackbuilds: def download_slackbuilds_and_build(self): ''' Downloads files and sources and starting the build. ''' wget = Wget() - utils = Utilities() for sbo in self.sbos_order: file = f'{sbo}{self.tar_suffix}' @@ -93,7 +93,7 @@ class Slackbuilds: wget.download(self.tmp_slpkg, url) - utils.untar_archive(self.tmp_slpkg, file, self.build_path) + self.utils.untar_archive(self.tmp_slpkg, file, self.build_path) sources = SBoQueries(sbo).sources() self.download_sources(sbo, sources) @@ -131,7 +131,8 @@ class Slackbuilds: def install_package(self, package): ''' Install the packages that before created in the tmp directory. ''' execute = self.installpkg - if '--reinstall' in self.flags: + if ('--reinstall' in self.flags or + self.utils.is_installed(package[:-4])): execute = self.reinstall command = f'{execute} {self.tmp_path}/{package}' subprocess.call(command, shell=True) @@ -140,8 +141,7 @@ class Slackbuilds: ''' Creating a list with all the finished packages for installation. ''' - utils = Utilities() - build_tag = utils.build_tag(self.build_path, name) + build_tag = self.utils.build_tag(self.build_path, name) version = SBoQueries(name).version() return (f'{name}-{version}-{self.os_arch}-{build_tag[0]}' f'{self.repo_tag}{self.pkg_suffix}') From 0179a1f16d66ae1cf193445d19ef04dafce4a29b Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 00:35:58 +0300 Subject: [PATCH 20/68] Updated check instantiate --- slpkg/main.py | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/slpkg/main.py b/slpkg/main.py index 624535bd..ea5a75b6 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -17,29 +17,28 @@ from slpkg.clean_logs import CleanLogsDependencies @dataclass class Check: - slackbuilds: list log_packages: str = Metadata.log_packages repo_tag: str = Metadata.repo_tag - def exists(self): + def exists(self, slackbuilds): ''' Checking if the slackbuild exists in the repository. ''' self.database() - for sbo in self.slackbuilds: + for sbo in slackbuilds: if not SBoQueries(sbo).slackbuild(): raise SystemExit(f'Error: Package {sbo} does not exists.') - def unsupported(self): + def unsupported(self, slackbuilds): ''' Checking for unsupported slackbuilds. ''' - for sbo in self.slackbuilds: + for sbo in slackbuilds: sources = SBoQueries(sbo).sources() if 'UNSUPPORTED' in sources: raise SystemExit(f'Error: Package {sbo} ' 'unsupported by arch.') - def installed(self): + def installed(self, slackbuilds): ''' Checking for installed packages. ''' for package in os.listdir(self.log_packages): - for sbo in self.slackbuilds: + for sbo in slackbuilds: if sbo + '-' in package and self.repo_tag in package: return raise SystemExit('Error: Not found packages for remove.') @@ -76,6 +75,7 @@ class Argparse: def command(self): self.flags() + check = Check() if len(self.args) <= 0: usage(1) @@ -86,18 +86,18 @@ class Argparse: if self.args[0] in ['--version', '-v']: print(f'{Metadata.prog_name}: {Metadata.version}') - raise SystemExit(0) + raise SystemExit() if self.args[0] == 'clean-logs': logs = CleanLogsDependencies(self.flags) logs.clean() - raise SystemExit(0) + raise SystemExit() # Update repository if self.args[0] == 'update': update = UpdateRepository() update.sbo() - raise SystemExit(0) + raise SystemExit() usage(1) @@ -106,9 +106,8 @@ class Argparse: if self.args[0] == 'build': packages = set(self.args[1:]) - check = Check(packages) - check.exists() - check.unsupported() + check.exists(packages) + check.unsupported(packages) build = Slackbuilds(packages, self.flags, False) build.execute() @@ -118,9 +117,8 @@ class Argparse: if self.args[0] == 'install': packages = set(self.args[1:]) - check = Check(packages) - check.exists() - check.unsupported() + check.exists(packages) + check.unsupported(packages) install = Slackbuilds(packages, self.flags, True) install.execute() @@ -130,8 +128,7 @@ class Argparse: if self.args[0] == 'remove': packages = set(self.args[1:]) - check = Check(packages) - check.installed() + check.installed(packages) remove = RemovePackages(packages, self.flags) remove.remove() From 5f2d4bd263a278ab3dc9244f24cef1bf1709ac38 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 09:27:47 +0300 Subject: [PATCH 21/68] Updated for message --- slpkg/update_repository.py | 1 + 1 file changed, 1 insertion(+) diff --git a/slpkg/update_repository.py b/slpkg/update_repository.py index 237e010f..3e7d4fa3 100644 --- a/slpkg/update_repository.py +++ b/slpkg/update_repository.py @@ -23,6 +23,7 @@ class UpdateRepository: session: str = Session def sbo(self): + print('Updating the package list...\n') self.delete_file(self.sbo_repo_path, self.sbo_txt) self.delete_sbo_data() From 93dd8c951d452bfb5b26ee8b3dd199be26fa6dbb Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 10:03:06 +0300 Subject: [PATCH 22/68] Updated view packages --- slpkg/views/views.py | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 3c3af96a..187ac33e 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -23,28 +23,26 @@ class ViewMessage: def install_packages(self, sbos_order, slackbuilds): print('The following packages will be installed or upgraded:\n') - color = self.colors() for sbo in slackbuilds: version = SBoQueries(sbo).version() - if self.utils.is_installed(f'{sbo}-{version}-'): - print(f'[{color["YELLOW"]} upgrade {color["ENDC"]}] -> ' - f'{sbo}-{version}') - else: - print(f'[{color["GREEN"]} install {color["ENDC"]}] -> ' - f'{sbo}-{version}') + self._view_packages(sbo, version) print('Dependencies:') for sbo in sbos_order: if sbo not in slackbuilds: version = SBoQueries(sbo).version() + self._view_packages(sbo, version) - if self.utils.is_installed(f'{sbo}-{version}-'): - print(f'[{color["YELLOW"]} upgrade {color["ENDC"]}] -> ' - f'{sbo}-{version}') - else: - print(f'[{color["GREEN"]} install {color["ENDC"]}] -> ' - f'{sbo}-{version}') + def _view_packages(self, sbo, version): + color = self.colors() + + if self.utils.is_installed(f'{sbo}-{version}-'): + print(f'[{color["YELLOW"]} upgrade {color["ENDC"]}] -> ' + f'{sbo}-{version}') + else: + print(f'[{color["GREEN"]} install {color["ENDC"]}] -> ' + f'{sbo}-{version}') def remove_packages(self): print('The following packages will be removed:\n') From 2ecb5d407fc1d719b2cb13542f577a963f7e771a Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 10:05:55 +0300 Subject: [PATCH 23/68] Updated error messages --- slpkg/main.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/slpkg/main.py b/slpkg/main.py index ea5a75b6..ecaa5ba6 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -25,15 +25,14 @@ class Check: self.database() for sbo in slackbuilds: if not SBoQueries(sbo).slackbuild(): - raise SystemExit(f'Error: Package {sbo} does not exists.') + raise SystemExit(f'\nPackage {sbo} does not exists.\n') def unsupported(self, slackbuilds): ''' Checking for unsupported slackbuilds. ''' for sbo in slackbuilds: sources = SBoQueries(sbo).sources() if 'UNSUPPORTED' in sources: - raise SystemExit(f'Error: Package {sbo} ' - 'unsupported by arch.') + raise SystemExit(f'\nPackage {sbo} unsupported by arch.\n') def installed(self, slackbuilds): ''' Checking for installed packages. ''' @@ -41,7 +40,7 @@ class Check: for sbo in slackbuilds: if sbo + '-' in package and self.repo_tag in package: return - raise SystemExit('Error: Not found packages for remove.') + raise SystemExit('\nNot found packages for remove.\n') def database(self): ''' Checking for empty table ''' From 386ac68bd5877fbeac679a5b09c2fde2422428f8 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 10:18:00 +0300 Subject: [PATCH 24/68] Added cheksum file --- slpkg/checksum.py | 36 ++++++++++++++++++++++++++++++++++++ slpkg/slackbuild.py | 35 +++-------------------------------- 2 files changed, 39 insertions(+), 32 deletions(-) create mode 100644 slpkg/checksum.py diff --git a/slpkg/checksum.py b/slpkg/checksum.py new file mode 100644 index 00000000..3f5ee512 --- /dev/null +++ b/slpkg/checksum.py @@ -0,0 +1,36 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +import hashlib +from dataclasses import dataclass + +from slpkg.metadata import Metadata +from slpkg.views.views import ViewMessage + + +@dataclass +class Md5sum: + ''' Checksum the sources. ''' + flags: str + build_path: str = Metadata.build_path + + def check(self, source, checksum, name): + path = f'{self.build_path}/{name}' + filename = f'{path}/{source.split("/")[-1]}' + + md5 = self.read_file(filename) + + file_check = hashlib.md5(md5).hexdigest() + + if file_check not in checksum: + print('\nExpected:', ''.join(checksum)) + print('Found:', file_check) + print(f'\nMD5SUM check for {name} FAILED.') + + view = ViewMessage() + view.question(self.flags) + + def read_file(self, filename): + with open(filename, 'rb') as f: + return f.read() diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 87a2797b..c804ab0d 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -3,11 +3,11 @@ import os import shutil -import hashlib import subprocess from dataclasses import dataclass from slpkg.downloader import Wget +from slpkg.checksum import Md5sum from slpkg.metadata import Metadata from slpkg.queries import SBoQueries from slpkg.utilities import Utilities @@ -163,8 +163,8 @@ class Slackbuilds: for source, checksum in zip(sources.split(), checksums[0].split()): wget.download(path, source) - md5sum = Md5sum(source, checksum, name) - md5sum.check() + md5sum = Md5sum(self.flags) + md5sum.check(source, checksum, name) def remove_file_if_exists(self, path: str, file: str): ''' Clean the the old files. ''' @@ -177,32 +177,3 @@ class Slackbuilds: directory = f'{path}/{folder}' if os.path.isdir(directory): shutil.rmtree(directory) - - -@dataclass -class Md5sum: - ''' Checksum the sources. ''' - source: str - checksum: str - name: str - build_path: str = Metadata.build_path - - def check(self): - path = f'{self.build_path}/{self.name}' - filename = f'{path}/{self.source.split("/")[-1]}' - - md5 = self.read_file(filename) - - file_check = hashlib.md5(md5).hexdigest() - - if file_check not in self.checksum: - print('\nExpected:', ''.join(self.checksum)) - print('Found:', file_check) - print(f'\nMD5SUM check for {self.sbo} FAILED.') - - view = ViewMessage() - view.question(['--no']) - - def read_file(self, filename): - with open(filename, 'rb') as f: - return f.read() From bf9c71089d263e3f8b58bf4a201080c443049f91 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 10:31:59 +0300 Subject: [PATCH 25/68] Fixed configuration --- slpkg/metadata.py | 62 ++++++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/slpkg/metadata.py b/slpkg/metadata.py index 36bb5758..50270813 100644 --- a/slpkg/metadata.py +++ b/slpkg/metadata.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- -# import json +import json from dataclasses import dataclass @@ -13,7 +13,7 @@ class Metadata: prog_name: str = 'slpkg' version_info: tuple = (4, 1, 0) version: str = '{0}.{1}.{2}'.format(*version_info) - license: str = 'MIT' + license: str = 'MIT License' author: str = 'dslackw' ''' Default configurations. ''' @@ -44,6 +44,37 @@ class Metadata: colors: str = 'on' wget_options = '-c -N' + ''' Overwrite with user configuration. ''' + with open(f'/etc/{prog_name}/{prog_name}.json', 'r') as conf: + config = json.load(conf) + + # OS architecture by default + os_arch: str = config['os_arch'] + # All necessary paths + tmp_path: str = config['tmp_path'] + tmp_slpkg: str = config['tmp_slpkg'] + build_path: str = config['build_path'] + lib_path: str = config['lib_path'] + db_path: str = config['db_path'] + sbo_repo_path: str = config['sbo_repo_path'] + log_packages: str = config['log_packages'] + # Database name + database: str = config['database'] + # Repository details + repo_version: str = config['repo_version'] + sbo_url: str = config['sbo_url'] + sbo_txt: str = config['sbo_txt'] + tar_suffix: str = config['tar_suffix'] + pkg_suffix: str = config['pkg_suffix'] + repo_tag: str = config['repo_tag'] + # Slackware commands + installpkg: str = config['installpkg'] + reinstall: str = config['reinstall'] + removepkg: str = config['removepkg'] + # Other configs + colors: str = config['colors'] + wget_options: str = config['wget_options'] + @classmethod def colour(cls): color = { @@ -65,29 +96,4 @@ class Metadata: 'ENDC': '\x1b[0m' } - return color - - ''' User configuration in /etc/slpkg/ folder. ''' - # with open(f'/etc/{prog_name}/{prog_name}.json', 'r') as conf: - # config = json.load(conf) - - # tmp_path: str = config['tmp_path'] - # tmp_slpkg: str = config['tmp_slpkg'] - # build_path: str = config['build_path'] - # lib_path: str = config['lib_path'] - # log_path: str = config['log_path'] - # db_path: str = config['db_path'] - # sbo_repo_path: str = config['sbo_repo_path'] - # log_packages: str = config['log_packages'] - # # Database name - # database: str = config['database'] - # # Repository details - # repo_version: str = config['repo_version'] - # sbo_url: str = config['sbo_url'] - # sbo_txt: str = config['sbo_txt'] - # tar_suffix: str = config['tar_suffix'] - # pkg_suffix: str = config['pkg_suffix'] - # repo_tag: str = config['repo_tag'] - # # Slackware commands - # upgradepkg: str = config['upgradepkg'] - # removepkg: str = config['removepkg'] + return color \ No newline at end of file From 8a47857304357e6f8b4573c8e4dc2b126a188d99 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 11:02:33 +0300 Subject: [PATCH 26/68] Updated title --- slpkg/cli_menu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py index c4495218..f583d7aa 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/cli_menu.py @@ -6,7 +6,7 @@ from slpkg.metadata import Metadata def usage(status): args = [f'Usage: {Metadata.prog_name} [OPTIONS] [packages]\n', - ' Tool that interact with the SBo repository.\n', + ' Packaging tool that interacts with the SBo repository.\n', 'Options:', ' update Update the data packages.', ' build Build only the packages.', From bcfd117f29b9b7fe02e10331e160eea01508d696 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 16:43:20 +0300 Subject: [PATCH 27/68] Fixed dependencies view --- slpkg/slackbuild.py | 23 +++++++++++++++-------- slpkg/views/views.py | 12 ++++++------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index c804ab0d..ad29aa72 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -4,6 +4,7 @@ import os import shutil import subprocess +from collections import OrderedDict from dataclasses import dataclass from slpkg.downloader import Wget @@ -39,7 +40,8 @@ class Slackbuilds: def execute(self): ''' Starting build or install the slackbuilds. ''' - self.sbos_order = [] + self.install_order = [] + self.dependencies = [] self.creating_dictionary() if '--resolve-off' not in self.flags: @@ -55,9 +57,11 @@ class Slackbuilds: view = ViewMessage() if self.install: - view.install_packages(self.sbos_order, self.slackbuilds) + view.install_packages(self.slackbuilds, self.dependencies) else: - view.build_packages(self.sbos_order) + view.build_packages(self.install_order) + + del self.dependencies # no more needed view.question(self.flags) @@ -71,18 +75,22 @@ class Slackbuilds: ''' List with the dependencies. ''' for deps in self.sbos.values(): for dep in deps: - self.sbos_order.append(dep) + if dep not in self.slackbuilds: + self.dependencies.append(dep) + # Remove duplicate packages and keeps the order. + self.dependencies = list(OrderedDict.fromkeys(self.dependencies)) + self.install_order.extend(self.dependencies) def creating_main_for_build(self): ''' List with the main slackbuilds. ''' for main in self.sbos.keys(): - self.sbos_order.append(main) + self.install_order.append(main) def download_slackbuilds_and_build(self): ''' Downloads files and sources and starting the build. ''' wget = Wget() - for sbo in self.sbos_order: + for sbo in self.install_order: file = f'{sbo}{self.tar_suffix}' self.remove_file_if_exists(self.tmp_slpkg, file) @@ -123,8 +131,7 @@ class Slackbuilds: {LogsDependencies.requires: ' '.join(requires)}) elif requires: - deps = LogsDependencies(name=name, - requires=' '.join(requires)) + deps = LogsDependencies(name=name, requires=' '.join(requires)) self.session.add(deps) self.session.commit() diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 187ac33e..0b7f3d9e 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -21,16 +21,16 @@ class ViewMessage: print(f'[{color["GREEN"]} build {color["ENDC"]}] -> ' f'{sbo}-{version}') - def install_packages(self, sbos_order, slackbuilds): + def install_packages(self, slackbuilds: list, dependencies: list): print('The following packages will be installed or upgraded:\n') for sbo in slackbuilds: version = SBoQueries(sbo).version() self._view_packages(sbo, version) - print('Dependencies:') - for sbo in sbos_order: - if sbo not in slackbuilds: + if dependencies: + print('Dependencies:') + for sbo in dependencies: version = SBoQueries(sbo).version() self._view_packages(sbo, version) @@ -52,10 +52,10 @@ class ViewMessage: color = self.colors() for dep in dependencies: - print(f'{color["RED"]}{dep[0]}{color["ENDC"]}') + print(f'{color["GREEN"]}{dep[0]}{color["ENDC"]}') print('Dependencies:') for d in dep[1].split(): - print(f'{color["RED"]} {d}{color["ENDC"]}') + print(f'{color["GREEN"]} {d}{color["ENDC"]}') print() def question(self, flags): From b79cfdb78eb3f24121be1c7ee3e05881c3e4b3e2 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 16:44:22 +0300 Subject: [PATCH 28/68] Updated for new lines --- slpkg/clean_logs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/clean_logs.py b/slpkg/clean_logs.py index 5482b819..63f6430e 100644 --- a/slpkg/clean_logs.py +++ b/slpkg/clean_logs.py @@ -27,4 +27,4 @@ class CleanLogsDependencies: self.session.query(LogsDependencies).delete() self.session.commit() else: - print('Nothing to clean.') + print('\nNothing to clean.\n') From 374cf762842d8545cc6ba7d8618fc369a6497158 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 17:04:23 +0300 Subject: [PATCH 29/68] Added blacklist --- config/blacklist.json | 3 +++ slpkg/blacklist.py | 19 +++++++++++++++++++ slpkg/main.py | 21 ++++++++++++++++++--- slpkg/metadata.py | 6 ++++-- 4 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 config/blacklist.json create mode 100644 slpkg/blacklist.py diff --git a/config/blacklist.json b/config/blacklist.json new file mode 100644 index 00000000..550bdb9c --- /dev/null +++ b/config/blacklist.json @@ -0,0 +1,3 @@ +{ + "blacklist": [] +} \ No newline at end of file diff --git a/slpkg/blacklist.py b/slpkg/blacklist.py new file mode 100644 index 00000000..2c8a74c3 --- /dev/null +++ b/slpkg/blacklist.py @@ -0,0 +1,19 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +import os +import json +from dataclasses import dataclass +from metadata import Metadata + + +@dataclass +class Blacklist: + etc_path: str = Metadata.etc_path + + def get(self): + file = f'{self.etc_path}/blacklist.json' + if os.path.isfile(file): + with open(file, 'r') as black: + return json.load(black)['blacklist'] diff --git a/slpkg/main.py b/slpkg/main.py index ecaa5ba6..ec32fbab 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -13,6 +13,7 @@ from slpkg.slackbuild import Slackbuilds from slpkg.remove_packages import RemovePackages from slpkg.update_repository import UpdateRepository from slpkg.clean_logs import CleanLogsDependencies +from slpkg.blacklist import Blacklist @dataclass @@ -23,6 +24,9 @@ class Check: def exists(self, slackbuilds): ''' Checking if the slackbuild exists in the repository. ''' self.database() + if not slackbuilds: + raise SystemExit(f'\nPackage does not exists.\n') + for sbo in slackbuilds: if not SBoQueries(sbo).slackbuild(): raise SystemExit(f'\nPackage {sbo} does not exists.\n') @@ -42,6 +46,14 @@ class Check: return raise SystemExit('\nNot found packages for remove.\n') + def blacklist(self, slackbuilds): + ''' Checking for packages on the blacklist and removing them. ''' + black = Blacklist() + for package in black.get(): + if package in slackbuilds: + slackbuilds.remove(package) + return slackbuilds + def database(self): ''' Checking for empty table ''' if not SBoQueries('').names(): @@ -103,7 +115,8 @@ class Argparse: if len(self.args) >= 2: # Build slackbuilds if self.args[0] == 'build': - packages = set(self.args[1:]) + packages = list(set(self.args[1:])) + packages = check.blacklist(packages) check.exists(packages) check.unsupported(packages) @@ -114,7 +127,8 @@ class Argparse: # Install packages if self.args[0] == 'install': - packages = set(self.args[1:]) + packages = list(set(self.args[1:])) + packages = check.blacklist(packages) check.exists(packages) check.unsupported(packages) @@ -125,7 +139,8 @@ class Argparse: # Remove packages if self.args[0] == 'remove': - packages = set(self.args[1:]) + packages = list(set(self.args[1:])) + packages = check.blacklist(packages) check.installed(packages) diff --git a/slpkg/metadata.py b/slpkg/metadata.py index 50270813..0f215456 100644 --- a/slpkg/metadata.py +++ b/slpkg/metadata.py @@ -24,6 +24,7 @@ class Metadata: tmp_slpkg: str = f'{tmp_path}/{prog_name}' build_path: str = f'/tmp/{prog_name}/build' lib_path: str = f'/var/lib/{prog_name}' + etc_path: str = f'/etc/{prog_name}' db_path: str = f'/var/lib/{prog_name}/database' sbo_repo_path: str = f'/var/lib/{prog_name}/repository' log_packages: str = '/var/log/packages' @@ -45,7 +46,7 @@ class Metadata: wget_options = '-c -N' ''' Overwrite with user configuration. ''' - with open(f'/etc/{prog_name}/{prog_name}.json', 'r') as conf: + with open(f'/{etc_path}/{prog_name}.json', 'r') as conf: config = json.load(conf) # OS architecture by default @@ -55,6 +56,7 @@ class Metadata: tmp_slpkg: str = config['tmp_slpkg'] build_path: str = config['build_path'] lib_path: str = config['lib_path'] + etc_path: str = config['etc_path'] db_path: str = config['db_path'] sbo_repo_path: str = config['sbo_repo_path'] log_packages: str = config['log_packages'] @@ -96,4 +98,4 @@ class Metadata: 'ENDC': '\x1b[0m' } - return color \ No newline at end of file + return color From b9b56fa368d55397202a0b6cc4043d0a4a15ef89 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 17:04:53 +0300 Subject: [PATCH 30/68] Added /etc path --- config/slpkg.json | 1 + 1 file changed, 1 insertion(+) diff --git a/config/slpkg.json b/config/slpkg.json index 5ed4fe0b..f0ce36b8 100644 --- a/config/slpkg.json +++ b/config/slpkg.json @@ -4,6 +4,7 @@ "tmp_slpkg": "/tmp/slpkg", "build_path": "/tmp/slpkg/build", "lib_path": "/var/lib/slpkg", + "etc_path": "etc/slpkg", "db_path": "/var/lib/slpkg/database", "sbo_repo_path": "/var/lib/slpkg/repository", "log_packages": "/var/log/packages", From 1173107541d3e48bb36a4fe55fb155b038aa933c Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 17:56:28 +0300 Subject: [PATCH 31/68] Fixed blacklist --- slpkg/dependencies.py | 8 +++---- slpkg/main.py | 51 +------------------------------------------ slpkg/queries.py | 44 +++++++++++++++++++++++++++++-------- 3 files changed, 40 insertions(+), 63 deletions(-) diff --git a/slpkg/dependencies.py b/slpkg/dependencies.py index e0c192c8..147d9161 100644 --- a/slpkg/dependencies.py +++ b/slpkg/dependencies.py @@ -2,8 +2,8 @@ # -*- coding: utf-8 -*- -from slpkg.queries import SBoQueries from dataclasses import dataclass +from slpkg.queries import SBoQueries @dataclass @@ -15,9 +15,9 @@ class Requires: def resolve(self) -> list: requires = SBoQueries(self.name).requires() - for r in requires: - if r and r != "%README%": - sub = SBoQueries(r).requires() + for req in requires: + if req and req != "%README%": + sub = SBoQueries(req).requires() for s in sub: requires.append(s) diff --git a/slpkg/main.py b/slpkg/main.py index ec32fbab..2350b046 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -2,63 +2,16 @@ # -*- coding: utf-8 -*- -import os import sys from dataclasses import dataclass from slpkg.cli_menu import usage from slpkg.metadata import Metadata -from slpkg.queries import SBoQueries from slpkg.slackbuild import Slackbuilds from slpkg.remove_packages import RemovePackages from slpkg.update_repository import UpdateRepository from slpkg.clean_logs import CleanLogsDependencies -from slpkg.blacklist import Blacklist - - -@dataclass -class Check: - log_packages: str = Metadata.log_packages - repo_tag: str = Metadata.repo_tag - - def exists(self, slackbuilds): - ''' Checking if the slackbuild exists in the repository. ''' - self.database() - if not slackbuilds: - raise SystemExit(f'\nPackage does not exists.\n') - - for sbo in slackbuilds: - if not SBoQueries(sbo).slackbuild(): - raise SystemExit(f'\nPackage {sbo} does not exists.\n') - - def unsupported(self, slackbuilds): - ''' Checking for unsupported slackbuilds. ''' - for sbo in slackbuilds: - sources = SBoQueries(sbo).sources() - if 'UNSUPPORTED' in sources: - raise SystemExit(f'\nPackage {sbo} unsupported by arch.\n') - - def installed(self, slackbuilds): - ''' Checking for installed packages. ''' - for package in os.listdir(self.log_packages): - for sbo in slackbuilds: - if sbo + '-' in package and self.repo_tag in package: - return - raise SystemExit('\nNot found packages for remove.\n') - - def blacklist(self, slackbuilds): - ''' Checking for packages on the blacklist and removing them. ''' - black = Blacklist() - for package in black.get(): - if package in slackbuilds: - slackbuilds.remove(package) - return slackbuilds - - def database(self): - ''' Checking for empty table ''' - if not SBoQueries('').names(): - raise SystemExit('\nYou need to update the package lists first.\n' - 'Please run slpkg update.\n') +from slpkg.checks import Check @dataclass @@ -116,7 +69,6 @@ class Argparse: # Build slackbuilds if self.args[0] == 'build': packages = list(set(self.args[1:])) - packages = check.blacklist(packages) check.exists(packages) check.unsupported(packages) @@ -128,7 +80,6 @@ class Argparse: # Install packages if self.args[0] == 'install': packages = list(set(self.args[1:])) - packages = check.blacklist(packages) check.exists(packages) check.unsupported(packages) diff --git a/slpkg/queries.py b/slpkg/queries.py index d99a543f..3eee9fc7 100644 --- a/slpkg/queries.py +++ b/slpkg/queries.py @@ -6,15 +6,21 @@ from slpkg.metadata import Metadata from slpkg.models.models import SBoTable from slpkg.models.models import session as Session from dataclasses import dataclass +from slpkg.blacklist import Blacklist -@dataclass() +@dataclass class SBoQueries: ''' Queries class for the sbo repository. ''' name: str session: str = Session os_arch: str = Metadata.os_arch + def __post_init__(self): + self.black = Blacklist() + if self.name in self.black.get(): + self.name = '' + def names(self): return list(self._names_grabbing()) @@ -22,34 +28,48 @@ class SBoQueries: sbo = self.session.query( SBoTable.name).filter(SBoTable.name == self.name).first() - return sbo + if sbo: + return sbo + return '' def location(self): location = self.session.query( SBoTable.location).filter(SBoTable.name == self.name).first() - return location[0] + if location: + return location[0] + return '' def sources(self): source, source64 = self.session.query( SBoTable.download, SBoTable.download64).filter( SBoTable.name == self.name).first() - return self._chose_arch(source, source64) + if source or source64: + return self._chose_arch(source, source64) + return '' def requires(self): requires = self.session.query( SBoTable.requires).filter( SBoTable.name == self.name).first() - return requires[0].split() + if requires: + requires = requires[0].split() + for req in requires: + if req in self.black.get(): + requires.remove(req) + return requires + return '' def version(self): version = self.session.query( SBoTable.version).filter( SBoTable.name == self.name).first() - return version[0] + if version: + return version[0] + return '' def checksum(self): md5sum, md5sum64, = [], [] @@ -62,21 +82,27 @@ class SBoQueries: if md5s64: md5sum64.append(md5s64) - return self._chose_arch(md5sum, md5sum64) + if md5sum or md5sum64: + return self._chose_arch(md5sum, md5sum64) + return '' def description(self): desc = self.session.query( SBoTable.short_description).filter( SBoTable.name == self.name).first() - return desc[0] + if desc: + return desc[0] + return '' def files(self): files = self.session.query( SBoTable.files).filter( SBoTable.name == self.name).first() - return files[0] + if files: + return files[0] + return '' def _chose_arch(self, arch, arch64): if self.os_arch and arch64: From 085845b2ace7a700abd16b8912235d5252c618fa Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 17:57:26 +0300 Subject: [PATCH 32/68] Added checks file --- slpkg/checks.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 slpkg/checks.py diff --git a/slpkg/checks.py b/slpkg/checks.py new file mode 100644 index 00000000..2e39302e --- /dev/null +++ b/slpkg/checks.py @@ -0,0 +1,51 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +import os +from dataclasses import dataclass + +from slpkg.metadata import Metadata +from slpkg.queries import SBoQueries +from slpkg.blacklist import Blacklist + + +@dataclass +class Check: + log_packages: str = Metadata.log_packages + repo_tag: str = Metadata.repo_tag + + def exists(self, slackbuilds): + ''' Checking if the slackbuild exists in the repository. ''' + self.database() + for sbo in slackbuilds: + if not SBoQueries(sbo).slackbuild(): + raise SystemExit(f'\nPackage {sbo} does not exists.\n') + + def unsupported(self, slackbuilds): + ''' Checking for unsupported slackbuilds. ''' + for sbo in slackbuilds: + sources = SBoQueries(sbo).sources() + if 'UNSUPPORTED' in sources: + raise SystemExit(f'\nPackage {sbo} unsupported by arch.\n') + + def installed(self, slackbuilds): + ''' Checking for installed packages. ''' + for package in os.listdir(self.log_packages): + for sbo in slackbuilds: + if sbo + '-' in package and self.repo_tag in package: + return + raise SystemExit('\nNot found packages for remove.\n') + + def blacklist(self, slackbuilds): + ''' Checking for packages on the blacklist and removing them. ''' + black = Blacklist() + for package in black.get(): + if package in slackbuilds: + slackbuilds.remove(package) + return slackbuilds + + def database(self): + ''' Checking for empty table ''' + if not SBoQueries('').names(): + raise SystemExit('\nYou need to update the package lists first.\n' + 'Please run slpkg update.\n') From aa4197a27b45a1bf74f185a6c570b123277a84a0 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 19:19:27 +0300 Subject: [PATCH 33/68] Fixed view all packages --- slpkg/checks.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/slpkg/checks.py b/slpkg/checks.py index 2e39302e..87c8279b 100644 --- a/slpkg/checks.py +++ b/slpkg/checks.py @@ -17,9 +17,15 @@ class Check: def exists(self, slackbuilds): ''' Checking if the slackbuild exists in the repository. ''' self.database() + packages = [] + for sbo in slackbuilds: if not SBoQueries(sbo).slackbuild(): - raise SystemExit(f'\nPackage {sbo} does not exists.\n') + packages.append(sbo) + + if packages: + raise SystemExit(f'\nPackages {", ".join(packages)} ' + 'does not exists.\n') def unsupported(self, slackbuilds): ''' Checking for unsupported slackbuilds. ''' From cd6995c3d5636b7822bd2796aa08baf546081751 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 19:35:09 +0300 Subject: [PATCH 34/68] Fixed for blacklist --- slpkg/remove_packages.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/slpkg/remove_packages.py b/slpkg/remove_packages.py index 4898e5d3..83539222 100644 --- a/slpkg/remove_packages.py +++ b/slpkg/remove_packages.py @@ -7,6 +7,7 @@ import subprocess from slpkg.metadata import Metadata from dataclasses import dataclass +from slpkg.blacklist import Blacklist from slpkg.views.views import ViewMessage from slpkg.models.models import LogsDependencies from slpkg.models.models import session as Session @@ -18,6 +19,7 @@ class RemovePackages: packages: str flags: list session: str = Session + black: list = Blacklist() log_packages: str = Metadata.log_packages repo_tag: str = Metadata.repo_tag removepkg: str = Metadata.removepkg @@ -73,7 +75,10 @@ class RemovePackages: ''' View and creates list with packages for remove. ''' installed = os.listdir(self.log_packages) color = self.color() + for package in installed: - if package.startswith(name) and self.repo_tag in package: + black = package.split('-')[0] + if (package.startswith(name) and self.repo_tag in package and + black not in self.black.get()): self.installed_packages.append(package) print(f'[{color["RED"]} delete {color["ENDC"]}] -> {package}') From bc7621fff97f2ee994097762d1726d4b37b2f216 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 19:42:58 +0300 Subject: [PATCH 35/68] Updated for build view --- slpkg/slackbuild.py | 2 +- slpkg/views/views.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index ad29aa72..400d2a08 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -59,7 +59,7 @@ class Slackbuilds: if self.install: view.install_packages(self.slackbuilds, self.dependencies) else: - view.build_packages(self.install_order) + view.build_packages(self.slackbuilds, self.dependencies) del self.dependencies # no more needed diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 0b7f3d9e..8a08bee3 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -12,14 +12,18 @@ class ViewMessage: colors: str = Metadata.colour utils: str = Utilities() - def build_packages(self, slackbuilds): + def build_packages(self, slackbuilds: list, dependencies: list): print('The following packages will be build:\n') - color = self.colors() for sbo in slackbuilds: version = SBoQueries(sbo).version() - print(f'[{color["GREEN"]} build {color["ENDC"]}] -> ' - f'{sbo}-{version}') + self._view_packages(sbo, version) + + if dependencies: + print('Dependencies:') + for sbo in dependencies: + version = SBoQueries(sbo).version() + self._view_packages(sbo, version) def install_packages(self, slackbuilds: list, dependencies: list): print('The following packages will be installed or upgraded:\n') From 95acb826ed9d55c4382b73dd78e662539a5eb690 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 20:10:47 +0300 Subject: [PATCH 36/68] Updated typing --- slpkg/checks.py | 8 ++++---- slpkg/checksum.py | 4 ++-- slpkg/cli_menu.py | 2 +- slpkg/create_data.py | 2 +- slpkg/remove_packages.py | 2 +- slpkg/slackbuild.py | 6 +++--- slpkg/update_repository.py | 2 +- slpkg/views/views.py | 4 ++-- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/slpkg/checks.py b/slpkg/checks.py index 87c8279b..e65b9b76 100644 --- a/slpkg/checks.py +++ b/slpkg/checks.py @@ -14,7 +14,7 @@ class Check: log_packages: str = Metadata.log_packages repo_tag: str = Metadata.repo_tag - def exists(self, slackbuilds): + def exists(self, slackbuilds: list): ''' Checking if the slackbuild exists in the repository. ''' self.database() packages = [] @@ -27,14 +27,14 @@ class Check: raise SystemExit(f'\nPackages {", ".join(packages)} ' 'does not exists.\n') - def unsupported(self, slackbuilds): + def unsupported(self, slackbuilds: list): ''' Checking for unsupported slackbuilds. ''' for sbo in slackbuilds: sources = SBoQueries(sbo).sources() if 'UNSUPPORTED' in sources: raise SystemExit(f'\nPackage {sbo} unsupported by arch.\n') - def installed(self, slackbuilds): + def installed(self, slackbuilds: list): ''' Checking for installed packages. ''' for package in os.listdir(self.log_packages): for sbo in slackbuilds: @@ -42,7 +42,7 @@ class Check: return raise SystemExit('\nNot found packages for remove.\n') - def blacklist(self, slackbuilds): + def blacklist(self, slackbuilds: list): ''' Checking for packages on the blacklist and removing them. ''' black = Blacklist() for package in black.get(): diff --git a/slpkg/checksum.py b/slpkg/checksum.py index 3f5ee512..7d42b330 100644 --- a/slpkg/checksum.py +++ b/slpkg/checksum.py @@ -15,7 +15,7 @@ class Md5sum: flags: str build_path: str = Metadata.build_path - def check(self, source, checksum, name): + def check(self, source: str, checksum: str, name: str): path = f'{self.build_path}/{name}' filename = f'{path}/{source.split("/")[-1]}' @@ -31,6 +31,6 @@ class Md5sum: view = ViewMessage() view.question(self.flags) - def read_file(self, filename): + def read_file(self, filename: str): with open(filename, 'rb') as f: return f.read() diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py index f583d7aa..11194301 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/cli_menu.py @@ -4,7 +4,7 @@ from slpkg.metadata import Metadata -def usage(status): +def usage(status: int): args = [f'Usage: {Metadata.prog_name} [OPTIONS] [packages]\n', ' Packaging tool that interacts with the SBo repository.\n', 'Options:', diff --git a/slpkg/create_data.py b/slpkg/create_data.py index bf9bcd50..0478e88e 100644 --- a/slpkg/create_data.py +++ b/slpkg/create_data.py @@ -58,6 +58,6 @@ class CreateData: self.session.commit() - def read_file(self, file): + def read_file(self, file: str): with open(file, "r", encoding="utf-8") as f: return f.readlines() diff --git a/slpkg/remove_packages.py b/slpkg/remove_packages.py index 83539222..739fe76c 100644 --- a/slpkg/remove_packages.py +++ b/slpkg/remove_packages.py @@ -71,7 +71,7 @@ class RemovePackages: LogsDependencies.name == pkg).delete() self.session.commit() - def view_installed_packages(self, name): + def view_installed_packages(self, name: str): ''' View and creates list with packages for remove. ''' installed = os.listdir(self.log_packages) color = self.color() diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 400d2a08..be1d0331 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -116,7 +116,7 @@ class Slackbuilds: if '--resolve-off' not in self.flags: self.logging_installed_dependencies(sbo) - def logging_installed_dependencies(self, name): + def logging_installed_dependencies(self, name: str): ''' Logging installed dependencies and used for remove. ''' exist = self.session.query(LogsDependencies.name).filter( LogsDependencies.name == name).first() @@ -135,7 +135,7 @@ class Slackbuilds: self.session.add(deps) self.session.commit() - def install_package(self, package): + def install_package(self, package: str): ''' Install the packages that before created in the tmp directory. ''' execute = self.installpkg if ('--reinstall' in self.flags or @@ -162,7 +162,7 @@ class Slackbuilds: if stdout > 0: raise SystemExit(stdout) - def download_sources(self, name, sources: str): + def download_sources(self, name: str, sources: str): ''' Download the sources. ''' wget = Wget() path = f'{self.build_path}/{name}' diff --git a/slpkg/update_repository.py b/slpkg/update_repository.py index 3e7d4fa3..43121b6e 100644 --- a/slpkg/update_repository.py +++ b/slpkg/update_repository.py @@ -35,7 +35,7 @@ class UpdateRepository: data = CreateData() data.insert_sbo_table() - def delete_file(self, dir, txt_file): + def delete_file(self, dir: str, txt_file: str): file = f'{dir}/{txt_file}' if path.exists(file): os.remove(file) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 8a08bee3..0d0b61c1 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -38,7 +38,7 @@ class ViewMessage: version = SBoQueries(sbo).version() self._view_packages(sbo, version) - def _view_packages(self, sbo, version): + def _view_packages(self, sbo: str, version: str): color = self.colors() if self.utils.is_installed(f'{sbo}-{version}-'): @@ -62,7 +62,7 @@ class ViewMessage: print(f'{color["GREEN"]} {d}{color["ENDC"]}') print() - def question(self, flags): + def question(self, flags: list): if '--yes' not in flags: answer = input('\nDo you want to continue [y/N]: ') print() From 76952eb3912761b322358b8727f2d2a64a7fe2fa Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 21:08:07 +0300 Subject: [PATCH 37/68] Fixed /etc path --- config/slpkg.json | 2 +- setup.py | 1 + slpkg/metadata.py | 6 +----- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/config/slpkg.json b/config/slpkg.json index f0ce36b8..438d5512 100644 --- a/config/slpkg.json +++ b/config/slpkg.json @@ -4,7 +4,7 @@ "tmp_slpkg": "/tmp/slpkg", "build_path": "/tmp/slpkg/build", "lib_path": "/var/lib/slpkg", - "etc_path": "etc/slpkg", + "etc_path": "/etc/slpkg", "db_path": "/var/lib/slpkg/database", "sbo_repo_path": "/var/lib/slpkg/repository", "log_packages": "/var/log/packages", diff --git a/setup.py b/setup.py index 1a6779b5..0a2756fb 100755 --- a/setup.py +++ b/setup.py @@ -22,6 +22,7 @@ setup( url='https://dslackw.gitlab.io/slpkg/', package_data={'': ['LICENSE.txt', 'README.rst', 'ChangeLog.txt']}, data_files=[('/etc/slpkg', ['config/slpkg.json']), + ('/etc/slpkg', ['config/blacklist.json']), ('/var/lib/slpkg/database', []), ('/var/lib/slpkg/repository', []), ('/tmp/slpkg/build', [])], diff --git a/slpkg/metadata.py b/slpkg/metadata.py index 0f215456..865c8f18 100644 --- a/slpkg/metadata.py +++ b/slpkg/metadata.py @@ -11,10 +11,6 @@ class Metadata: # Project info prog_name: str = 'slpkg' - version_info: tuple = (4, 1, 0) - version: str = '{0}.{1}.{2}'.format(*version_info) - license: str = 'MIT License' - author: str = 'dslackw' ''' Default configurations. ''' # OS architecture by default @@ -46,7 +42,7 @@ class Metadata: wget_options = '-c -N' ''' Overwrite with user configuration. ''' - with open(f'/{etc_path}/{prog_name}.json', 'r') as conf: + with open(f'{etc_path}/{prog_name}.json', 'r') as conf: config = json.load(conf) # OS architecture by default From 1e5bcb6a9f4c28c63c3f50e856f60b767103d982 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 21:25:14 +0300 Subject: [PATCH 38/68] Fixed installation --- install.sh | 2 +- setup.py | 6 +++--- slackbuild/doinst.sh | 1 + slackbuild/slpkg.SlackBuild | 3 ++- slpkg/main.py | 3 ++- slpkg/metadata.py | 12 +++++++++++- slpkg/version.py | 13 +++++++++++++ 7 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 slpkg/version.py diff --git a/install.sh b/install.sh index 694e9aa2..4e61f9e8 100755 --- a/install.sh +++ b/install.sh @@ -24,7 +24,7 @@ __version() { # Grab version from __metadata_.py file -cat slpkg/metadata.py | grep "version_info: tuple = (" \ +cat slpkg/version.py | grep "version_info: tuple = (" \ | tr -d [[:space:]] | cut -c21-25 | tr , . } diff --git a/setup.py b/setup.py index 0a2756fb..59844439 100755 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import setup -from slpkg.metadata import Metadata +from slpkg.version import Version install_requires = ['SQLAlchemy>=1.4.36'] @@ -13,12 +13,12 @@ setup( name='slpkg', packages=['slpkg', 'slpkg/models', 'slpkg/views'], scripts=['bin/slpkg'], - version=Metadata.version, + version=Version.version, description='Package manager for Slackware installations', long_description=open('README.rst').read(), keywords=['slackware', 'slpkg', 'update', 'build', 'install', 'remove', 'slackpkg', 'tool'], - author=Metadata.author, + author='dslackw', url='https://dslackw.gitlab.io/slpkg/', package_data={'': ['LICENSE.txt', 'README.rst', 'ChangeLog.txt']}, data_files=[('/etc/slpkg', ['config/slpkg.json']), diff --git a/slackbuild/doinst.sh b/slackbuild/doinst.sh index 095e2b41..01508eeb 100644 --- a/slackbuild/doinst.sh +++ b/slackbuild/doinst.sh @@ -9,6 +9,7 @@ config() { } config etc/slpkg/slpkg.json.new +config etc/slpkg/blacklist.json.new if [ -x /usr/bin/update-desktop-database ]; then /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 diff --git a/slackbuild/slpkg.SlackBuild b/slackbuild/slpkg.SlackBuild index e695ac42..2cd3a9fb 100755 --- a/slackbuild/slpkg.SlackBuild +++ b/slackbuild/slpkg.SlackBuild @@ -24,7 +24,7 @@ __version() { # Grab version from __metadata_.py file -cat ../slpkg/metadata.py | grep "version_info: tuple = (" \ +cat ../slpkg/version.py | grep "version_info: tuple = (" \ | tr -d [[:space:]] | cut -c21-25 | tr , . } @@ -99,6 +99,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr # install configuration files mkdir -p $PKG/etc/slpkg install -D -m0644 config/slpkg.json $PKG/etc/slpkg/slpkg.json.new +install -D -m0644 config/blacklist.json $PKG/etc/slpkg/blacklist.json.new mkdir -p $PKG/usr/man/man1 cp man/slpkg.1 $PKG/usr/man/man1 diff --git a/slpkg/main.py b/slpkg/main.py index 2350b046..e669c82b 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -12,6 +12,7 @@ from slpkg.remove_packages import RemovePackages from slpkg.update_repository import UpdateRepository from slpkg.clean_logs import CleanLogsDependencies from slpkg.checks import Check +from slpkg.version import Version @dataclass @@ -49,7 +50,7 @@ class Argparse: usage(0) if self.args[0] in ['--version', '-v']: - print(f'{Metadata.prog_name}: {Metadata.version}') + print(f'{Metadata.prog_nama}: {Version.version}') raise SystemExit() if self.args[0] == 'clean-logs': diff --git a/slpkg/metadata.py b/slpkg/metadata.py index 865c8f18..c469dae4 100644 --- a/slpkg/metadata.py +++ b/slpkg/metadata.py @@ -9,12 +9,13 @@ from dataclasses import dataclass @dataclass class Metadata: - # Project info + # Programme name prog_name: str = 'slpkg' ''' Default configurations. ''' # OS architecture by default os_arch: str = 'x86_64' + # All necessary paths tmp_path: str = '/tmp' tmp_slpkg: str = f'{tmp_path}/{prog_name}' @@ -24,8 +25,10 @@ class Metadata: db_path: str = f'/var/lib/{prog_name}/database' sbo_repo_path: str = f'/var/lib/{prog_name}/repository' log_packages: str = '/var/log/packages' + # Database name database: str = f'database.{prog_name}' + # Repository details repo_version: str = '15.0' sbo_url: str = f'http://slackbuilds.org/slackbuilds/{repo_version}' @@ -33,10 +36,12 @@ class Metadata: tar_suffix: str = '.tar.gz' pkg_suffix: str = '.tgz' repo_tag: str = '_SBo' + # Slackware commands installpkg: str = 'upgradepkg --install-new' reinstall: str = 'upgradepkg --reinstall' removepkg: str = 'removepkg' + # Other configs colors: str = 'on' wget_options = '-c -N' @@ -47,6 +52,7 @@ class Metadata: # OS architecture by default os_arch: str = config['os_arch'] + # All necessary paths tmp_path: str = config['tmp_path'] tmp_slpkg: str = config['tmp_slpkg'] @@ -56,8 +62,10 @@ class Metadata: db_path: str = config['db_path'] sbo_repo_path: str = config['sbo_repo_path'] log_packages: str = config['log_packages'] + # Database name database: str = config['database'] + # Repository details repo_version: str = config['repo_version'] sbo_url: str = config['sbo_url'] @@ -65,10 +73,12 @@ class Metadata: tar_suffix: str = config['tar_suffix'] pkg_suffix: str = config['pkg_suffix'] repo_tag: str = config['repo_tag'] + # Slackware commands installpkg: str = config['installpkg'] reinstall: str = config['reinstall'] removepkg: str = config['removepkg'] + # Other configs colors: str = config['colors'] wget_options: str = config['wget_options'] diff --git a/slpkg/version.py b/slpkg/version.py new file mode 100644 index 00000000..d1471ae4 --- /dev/null +++ b/slpkg/version.py @@ -0,0 +1,13 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +from dataclasses import dataclass + + +@dataclass +class Version: + version_info: tuple = (4, 1, 0) + version: str = '{0}.{1}.{2}'.format(*version_info) + license: str = 'MIT License' + author: str = 'dslackw' From db54079167e510e9fecd531b5c9f38806fc3d6bf Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 21:35:23 +0300 Subject: [PATCH 39/68] Updated metadata -> configs --- {config => configs}/blacklist.json | 0 {config => configs}/slpkg.json | 0 setup.py | 4 ++-- slpkg/blacklist.py | 4 ++-- slpkg/checks.py | 6 +++--- slpkg/checksum.py | 4 ++-- slpkg/cli_menu.py | 4 ++-- slpkg/{metadata.py => configs.py} | 2 +- slpkg/create_data.py | 8 ++++---- slpkg/downloader.py | 4 ++-- slpkg/main.py | 4 ++-- slpkg/models/models.py | 6 +++--- slpkg/queries.py | 4 ++-- slpkg/remove_packages.py | 10 +++++----- slpkg/slackbuild.py | 24 ++++++++++++------------ slpkg/update_repository.py | 12 ++++++------ slpkg/utilities.py | 4 ++-- slpkg/views/views.py | 4 ++-- 18 files changed, 52 insertions(+), 52 deletions(-) rename {config => configs}/blacklist.json (100%) rename {config => configs}/slpkg.json (100%) rename slpkg/{metadata.py => configs.py} (99%) diff --git a/config/blacklist.json b/configs/blacklist.json similarity index 100% rename from config/blacklist.json rename to configs/blacklist.json diff --git a/config/slpkg.json b/configs/slpkg.json similarity index 100% rename from config/slpkg.json rename to configs/slpkg.json diff --git a/setup.py b/setup.py index 59844439..c298173e 100755 --- a/setup.py +++ b/setup.py @@ -21,8 +21,8 @@ setup( author='dslackw', url='https://dslackw.gitlab.io/slpkg/', package_data={'': ['LICENSE.txt', 'README.rst', 'ChangeLog.txt']}, - data_files=[('/etc/slpkg', ['config/slpkg.json']), - ('/etc/slpkg', ['config/blacklist.json']), + data_files=[('/etc/slpkg', ['configs/slpkg.json']), + ('/etc/slpkg', ['configs/blacklist.json']), ('/var/lib/slpkg/database', []), ('/var/lib/slpkg/repository', []), ('/tmp/slpkg/build', [])], diff --git a/slpkg/blacklist.py b/slpkg/blacklist.py index 2c8a74c3..d90156f6 100644 --- a/slpkg/blacklist.py +++ b/slpkg/blacklist.py @@ -5,12 +5,12 @@ import os import json from dataclasses import dataclass -from metadata import Metadata +from configs import Configs @dataclass class Blacklist: - etc_path: str = Metadata.etc_path + etc_path: str = Configs.etc_path def get(self): file = f'{self.etc_path}/blacklist.json' diff --git a/slpkg/checks.py b/slpkg/checks.py index e65b9b76..8ef14b07 100644 --- a/slpkg/checks.py +++ b/slpkg/checks.py @@ -4,15 +4,15 @@ import os from dataclasses import dataclass -from slpkg.metadata import Metadata +from slpkg.configs import Configs from slpkg.queries import SBoQueries from slpkg.blacklist import Blacklist @dataclass class Check: - log_packages: str = Metadata.log_packages - repo_tag: str = Metadata.repo_tag + log_packages: str = Configs.log_packages + repo_tag: str = Configs.repo_tag def exists(self, slackbuilds: list): ''' Checking if the slackbuild exists in the repository. ''' diff --git a/slpkg/checksum.py b/slpkg/checksum.py index 7d42b330..72f5bf1f 100644 --- a/slpkg/checksum.py +++ b/slpkg/checksum.py @@ -5,7 +5,7 @@ import hashlib from dataclasses import dataclass -from slpkg.metadata import Metadata +from slpkg.configs import Configs from slpkg.views.views import ViewMessage @@ -13,7 +13,7 @@ from slpkg.views.views import ViewMessage class Md5sum: ''' Checksum the sources. ''' flags: str - build_path: str = Metadata.build_path + build_path: str = Configs.build_path def check(self, source: str, checksum: str, name: str): path = f'{self.build_path}/{name}' diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py index 11194301..d7740539 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/cli_menu.py @@ -1,11 +1,11 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -from slpkg.metadata import Metadata +from slpkg.configs import Configs def usage(status: int): - args = [f'Usage: {Metadata.prog_name} [OPTIONS] [packages]\n', + args = [f'Usage: {Configs.prog_name} [OPTIONS] [packages]\n', ' Packaging tool that interacts with the SBo repository.\n', 'Options:', ' update Update the data packages.', diff --git a/slpkg/metadata.py b/slpkg/configs.py similarity index 99% rename from slpkg/metadata.py rename to slpkg/configs.py index c469dae4..17ebef6a 100644 --- a/slpkg/metadata.py +++ b/slpkg/configs.py @@ -7,7 +7,7 @@ from dataclasses import dataclass @dataclass -class Metadata: +class Configs: # Programme name prog_name: str = 'slpkg' diff --git a/slpkg/create_data.py b/slpkg/create_data.py index 0478e88e..4b885705 100644 --- a/slpkg/create_data.py +++ b/slpkg/create_data.py @@ -4,7 +4,7 @@ from dataclasses import dataclass -from slpkg.metadata import Metadata +from slpkg.configs import Configs from slpkg.models.models import SBoTable from slpkg.models.models import session as Session @@ -12,9 +12,9 @@ from slpkg.models.models import session as Session @dataclass class CreateData: - db_path: str = Metadata.db_path - sbo_txt: str = Metadata.sbo_txt - sbo_repo_path: str = Metadata.sbo_repo_path + db_path: str = Configs.db_path + sbo_txt: str = Configs.sbo_txt + sbo_repo_path: str = Configs.sbo_repo_path session: str = Session def insert_sbo_table(self): diff --git a/slpkg/downloader.py b/slpkg/downloader.py index 177eab98..78b683eb 100644 --- a/slpkg/downloader.py +++ b/slpkg/downloader.py @@ -4,12 +4,12 @@ import subprocess from dataclasses import dataclass -from slpkg.metadata import Metadata +from slpkg.configs import Configs @dataclass class Wget: - wget_options: str = Metadata.wget_options + wget_options: str = Configs.wget_options def download(self, path: str, url: str): subprocess.call(f'wget {self.wget_options} --directory-prefix={path}' diff --git a/slpkg/main.py b/slpkg/main.py index e669c82b..7917412f 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -6,7 +6,7 @@ import sys from dataclasses import dataclass from slpkg.cli_menu import usage -from slpkg.metadata import Metadata +from slpkg.configs import Configs from slpkg.slackbuild import Slackbuilds from slpkg.remove_packages import RemovePackages from slpkg.update_repository import UpdateRepository @@ -50,7 +50,7 @@ class Argparse: usage(0) if self.args[0] in ['--version', '-v']: - print(f'{Metadata.prog_nama}: {Version.version}') + print(f'{Configs.name}: {Version.version}') raise SystemExit() if self.args[0] == 'clean-logs': diff --git a/slpkg/models/models.py b/slpkg/models/models.py index 3a7c91e6..b3727c0a 100644 --- a/slpkg/models/models.py +++ b/slpkg/models/models.py @@ -1,15 +1,15 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -from slpkg.metadata import Metadata +from slpkg.configs import Configs from dataclasses import dataclass from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine, Column, Integer, Text -db_path = Metadata.db_path -database = Metadata.database +db_path = Configs.db_path +database = Configs.database DATABASE_URI = f"sqlite:///{db_path}/{database}" engine = create_engine(DATABASE_URI) diff --git a/slpkg/queries.py b/slpkg/queries.py index 3eee9fc7..dbcf17b4 100644 --- a/slpkg/queries.py +++ b/slpkg/queries.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- -from slpkg.metadata import Metadata +from slpkg.configs import Configs from slpkg.models.models import SBoTable from slpkg.models.models import session as Session from dataclasses import dataclass @@ -14,7 +14,7 @@ class SBoQueries: ''' Queries class for the sbo repository. ''' name: str session: str = Session - os_arch: str = Metadata.os_arch + os_arch: str = Configs.os_arch def __post_init__(self): self.black = Blacklist() diff --git a/slpkg/remove_packages.py b/slpkg/remove_packages.py index 739fe76c..5fd0087c 100644 --- a/slpkg/remove_packages.py +++ b/slpkg/remove_packages.py @@ -4,7 +4,7 @@ import os import subprocess -from slpkg.metadata import Metadata +from slpkg.configs import Configs from dataclasses import dataclass from slpkg.blacklist import Blacklist @@ -20,10 +20,10 @@ class RemovePackages: flags: list session: str = Session black: list = Blacklist() - log_packages: str = Metadata.log_packages - repo_tag: str = Metadata.repo_tag - removepkg: str = Metadata.removepkg - color: str = Metadata.colour + log_packages: str = Configs.log_packages + repo_tag: str = Configs.repo_tag + removepkg: str = Configs.removepkg + color: str = Configs.colour def remove(self): ''' Remove package with dependencies. ''' diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index be1d0331..075a3916 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -9,7 +9,7 @@ from dataclasses import dataclass from slpkg.downloader import Wget from slpkg.checksum import Md5sum -from slpkg.metadata import Metadata +from slpkg.configs import Configs from slpkg.queries import SBoQueries from slpkg.utilities import Utilities from slpkg.dependencies import Requires @@ -26,17 +26,17 @@ class Slackbuilds: install: bool session: str = Session utils: str = Utilities() - build_path: str = Metadata.build_path - sbo_url: str = Metadata.sbo_url - build_path: str = Metadata.build_path - tmp_slpkg: str = Metadata.tmp_slpkg - tmp_path: str = Metadata.tmp_path - tar_suffix: str = Metadata.tar_suffix - os_arch: str = Metadata.os_arch - repo_tag: str = Metadata.repo_tag - pkg_suffix: str = Metadata.pkg_suffix - installpkg: str = Metadata.installpkg - reinstall: str = Metadata.reinstall + build_path: str = Configs.build_path + sbo_url: str = Configs.sbo_url + build_path: str = Configs.build_path + tmp_slpkg: str = Configs.tmp_slpkg + tmp_path: str = Configs.tmp_path + tar_suffix: str = Configs.tar_suffix + os_arch: str = Configs.os_arch + repo_tag: str = Configs.repo_tag + pkg_suffix: str = Configs.pkg_suffix + installpkg: str = Configs.installpkg + reinstall: str = Configs.reinstall def execute(self): ''' Starting build or install the slackbuilds. ''' diff --git a/slpkg/update_repository.py b/slpkg/update_repository.py index 43121b6e..d82fb3e5 100644 --- a/slpkg/update_repository.py +++ b/slpkg/update_repository.py @@ -6,7 +6,7 @@ import os from os import path from slpkg.create_data import CreateData from slpkg.downloader import Wget -from slpkg.metadata import Metadata +from slpkg.configs import Configs from slpkg.models.models import SBoTable from slpkg.models.models import session as Session from dataclasses import dataclass @@ -15,11 +15,11 @@ from dataclasses import dataclass @dataclass class UpdateRepository: ''' Deletes and install the data. ''' - sbo_repo_path: str = Metadata.sbo_repo_path - url: str = Metadata.sbo_url - sbo_txt: str = Metadata.sbo_txt - db_path: str = Metadata.db_path - database: str = Metadata.database + sbo_repo_path: str = Configs.sbo_repo_path + url: str = Configs.sbo_url + sbo_txt: str = Configs.sbo_txt + db_path: str = Configs.db_path + database: str = Configs.database session: str = Session def sbo(self): diff --git a/slpkg/utilities.py b/slpkg/utilities.py index d9503ac1..fabcc9d5 100644 --- a/slpkg/utilities.py +++ b/slpkg/utilities.py @@ -6,12 +6,12 @@ import os import re import tarfile from dataclasses import dataclass -from metadata import Metadata +from slpkg.configs import Configs @dataclass class Utilities: - log_packages: str = Metadata.log_packages + log_packages: str = Configs.log_packages def build_tag(self, path: str, name: str): ''' Opens the .SlackBuild file and reads the BUILD TAG. ''' diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 0d0b61c1..178b8177 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -3,13 +3,13 @@ from dataclasses import dataclass from slpkg.queries import SBoQueries -from slpkg.metadata import Metadata +from slpkg.configs import Configs from utilities import Utilities @dataclass class ViewMessage: - colors: str = Metadata.colour + colors: str = Configs.colour utils: str = Utilities() def build_packages(self, slackbuilds: list, dependencies: list): From e19ab47926ca8e186b112760e89bbfa0ca53b977 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 21:39:26 +0300 Subject: [PATCH 40/68] Fixed import --- slpkg/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/main.py b/slpkg/main.py index 7917412f..ed6bb845 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -50,7 +50,7 @@ class Argparse: usage(0) if self.args[0] in ['--version', '-v']: - print(f'{Configs.name}: {Version.version}') + print(f'{Configs.prog_name}: {Version.version}') raise SystemExit() if self.args[0] == 'clean-logs': From 5cc8db20ffbf81779427cf3ded164db20878efdf Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 22:07:06 +0300 Subject: [PATCH 41/68] Updated the colours --- slpkg/configs.py | 5 +++-- slpkg/views/views.py | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/slpkg/configs.py b/slpkg/configs.py index 17ebef6a..02e7abe8 100644 --- a/slpkg/configs.py +++ b/slpkg/configs.py @@ -96,10 +96,11 @@ class Configs: if cls.colors in ['on', 'ON']: color = { - 'RED': '\x1b[31m', + 'RED': '\x1b[91m', 'GREEN': '\x1b[32m', 'YELLOW': '\x1b[93m', - 'CYAN': '\x1b[36m', + 'CYAN': '\x1b[96m', + 'BLUE': '\x1b[94m', 'GREY': '\x1b[38;5;247m', 'ENDC': '\x1b[0m' } diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 178b8177..23ec691d 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -45,7 +45,7 @@ class ViewMessage: print(f'[{color["YELLOW"]} upgrade {color["ENDC"]}] -> ' f'{sbo}-{version}') else: - print(f'[{color["GREEN"]} install {color["ENDC"]}] -> ' + print(f'[{color["CYAN"]} install {color["ENDC"]}] -> ' f'{sbo}-{version}') def remove_packages(self): @@ -56,10 +56,10 @@ class ViewMessage: color = self.colors() for dep in dependencies: - print(f'{color["GREEN"]}{dep[0]}{color["ENDC"]}') + print(f'{color["CYAN"]}{dep[0]}{color["ENDC"]}') print('Dependencies:') for d in dep[1].split(): - print(f'{color["GREEN"]} {d}{color["ENDC"]}') + print(f'{color["CYAN"]} {d}{color["ENDC"]}') print() def question(self, flags: list): From cae5cb3d66b18cc0b32cf08ecc313017a0ae33a1 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sat, 18 Jun 2022 22:28:32 +0300 Subject: [PATCH 42/68] Updated views --- slpkg/views/views.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 23ec691d..11441b84 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -58,9 +58,8 @@ class ViewMessage: for dep in dependencies: print(f'{color["CYAN"]}{dep[0]}{color["ENDC"]}') print('Dependencies:') - for d in dep[1].split(): - print(f'{color["CYAN"]} {d}{color["ENDC"]}') - print() + print(f'{color["CYAN"]} {dep[1]}{color["ENDC"]}\n') + print('Note: After cleaning you should remove them one by one.') def question(self, flags: list): if '--yes' not in flags: From b48b33ce79d0d295558984078402b9d5d8dd01c1 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 00:13:54 +0300 Subject: [PATCH 43/68] Updated views --- slpkg/views/views.py | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 11441b84..4107c71a 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -17,28 +17,37 @@ class ViewMessage: for sbo in slackbuilds: version = SBoQueries(sbo).version() - self._view_packages(sbo, version) + self._view_build(sbo, version) if dependencies: print('Dependencies:') for sbo in dependencies: version = SBoQueries(sbo).version() - self._view_packages(sbo, version) + self._view_build(sbo, version) def install_packages(self, slackbuilds: list, dependencies: list): print('The following packages will be installed or upgraded:\n') for sbo in slackbuilds: version = SBoQueries(sbo).version() - self._view_packages(sbo, version) + self._view_install(sbo, version) if dependencies: print('Dependencies:') for sbo in dependencies: version = SBoQueries(sbo).version() - self._view_packages(sbo, version) + self._view_install(sbo, version) - def _view_packages(self, sbo: str, version: str): + self._view_total(slackbuilds, dependencies) + + def _view_build(self, sbo: str, version: str): + color = self.colors() + + if self.utils.is_installed(f'{sbo}-{version}-'): + print(f'[{color["CYAN"]} build {color["ENDC"]}] -> ' + f'{sbo}-{version}') + + def _view_install(self, sbo: str, version: str): color = self.colors() if self.utils.is_installed(f'{sbo}-{version}-'): @@ -48,6 +57,20 @@ class ViewMessage: print(f'[{color["CYAN"]} install {color["ENDC"]}] -> ' f'{sbo}-{version}') + def _view_total(self, slackbuilds: list, dependencies: list): + slackbuilds.extend(dependencies) + installed = upgraded = 0 + + for sbo in slackbuilds: + version = SBoQueries(sbo).version() + if self.utils.is_installed(f'{sbo}-{version}-'): + upgraded += 1 + else: + installed += 1 + + print(f'\nTotal {installed} will be installed and ' + f'{upgraded} will be upgraded.') + def remove_packages(self): print('The following packages will be removed:\n') From bcd6e101db787e5b670216a7695301707591acbb Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 00:15:53 +0300 Subject: [PATCH 44/68] Updated color views --- slpkg/views/views.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 4107c71a..f5015fe3 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -58,6 +58,8 @@ class ViewMessage: f'{sbo}-{version}') def _view_total(self, slackbuilds: list, dependencies: list): + color = self.colors() + slackbuilds.extend(dependencies) installed = upgraded = 0 @@ -68,8 +70,8 @@ class ViewMessage: else: installed += 1 - print(f'\nTotal {installed} will be installed and ' - f'{upgraded} will be upgraded.') + print(f'\n{color["GREY"]}Total {installed} will be installed and ' + f'{upgraded} will be upgraded.{color["ENDC"]}') def remove_packages(self): print('The following packages will be removed:\n') From 41ad879797f6f4ec1623f9bb75f8db58b1065916 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 17:29:31 +0300 Subject: [PATCH 45/68] Fixed import --- slpkg/blacklist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/blacklist.py b/slpkg/blacklist.py index d90156f6..d5176c9c 100644 --- a/slpkg/blacklist.py +++ b/slpkg/blacklist.py @@ -5,7 +5,7 @@ import os import json from dataclasses import dataclass -from configs import Configs +from slpkg.configs import Configs @dataclass From b7c0cfd2ddfd89bd8b8a0db439c15733b289a24a Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 17:33:43 +0300 Subject: [PATCH 46/68] Fixed configs path --- slackbuild/slpkg.SlackBuild | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slackbuild/slpkg.SlackBuild b/slackbuild/slpkg.SlackBuild index 2cd3a9fb..57bc21fd 100755 --- a/slackbuild/slpkg.SlackBuild +++ b/slackbuild/slpkg.SlackBuild @@ -98,8 +98,8 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr # install configuration files mkdir -p $PKG/etc/slpkg -install -D -m0644 config/slpkg.json $PKG/etc/slpkg/slpkg.json.new -install -D -m0644 config/blacklist.json $PKG/etc/slpkg/blacklist.json.new +install -D -m0644 configs/slpkg.json $PKG/etc/slpkg/slpkg.json.new +install -D -m0644 configs/blacklist.json $PKG/etc/slpkg/blacklist.json.new mkdir -p $PKG/usr/man/man1 cp man/slpkg.1 $PKG/usr/man/man1 From 8deb20f1b519953544cb5129a6db3cccca8aac16 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 17:35:25 +0300 Subject: [PATCH 47/68] Fixed import --- slpkg/views/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index f5015fe3..902b54f5 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -4,7 +4,7 @@ from dataclasses import dataclass from slpkg.queries import SBoQueries from slpkg.configs import Configs -from utilities import Utilities +from slpkg.utilities import Utilities @dataclass From 8b717bfa697887c567b9081c6dec6631b778eebe Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 17:50:36 +0300 Subject: [PATCH 48/68] Fixed messages --- slpkg/views/views.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 902b54f5..21daa5fa 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -25,6 +25,8 @@ class ViewMessage: version = SBoQueries(sbo).version() self._view_build(sbo, version) + self._view_total(slackbuilds, dependencies, method='build') + def install_packages(self, slackbuilds: list, dependencies: list): print('The following packages will be installed or upgraded:\n') @@ -38,12 +40,15 @@ class ViewMessage: version = SBoQueries(sbo).version() self._view_install(sbo, version) - self._view_total(slackbuilds, dependencies) + self._view_total(slackbuilds, dependencies, method='install') def _view_build(self, sbo: str, version: str): color = self.colors() if self.utils.is_installed(f'{sbo}-{version}-'): + print(f'[{color["YELLOW"]} build {color["ENDC"]}] -> ' + f'{sbo}-{version}') + else: print(f'[{color["CYAN"]} build {color["ENDC"]}] -> ' f'{sbo}-{version}') @@ -57,7 +62,7 @@ class ViewMessage: print(f'[{color["CYAN"]} install {color["ENDC"]}] -> ' f'{sbo}-{version}') - def _view_total(self, slackbuilds: list, dependencies: list): + def _view_total(self, slackbuilds: list, dependencies: list, method): color = self.colors() slackbuilds.extend(dependencies) @@ -70,8 +75,12 @@ class ViewMessage: else: installed += 1 - print(f'\n{color["GREY"]}Total {installed} will be installed and ' - f'{upgraded} will be upgraded.{color["ENDC"]}') + if method == 'install': + print(f'\n{color["GREY"]}Total {installed} will be installed and ' + f'{upgraded} will be upgraded.{color["ENDC"]}') + else: + print(f'\n{color["GREY"]}Total {installed + upgraded} packages ' + f'will be build.{color["ENDC"]}') def remove_packages(self): print('The following packages will be removed:\n') From e0d11fe3dc1aacb9e837a7047280bfce42ff3e29 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 19:17:49 +0300 Subject: [PATCH 49/68] Fixed view removed --- slpkg/remove_packages.py | 36 +++------------------ slpkg/slackbuild.py | 4 +-- slpkg/views/views.py | 69 +++++++++++++++++++++++++++++++++------- 3 files changed, 65 insertions(+), 44 deletions(-) diff --git a/slpkg/remove_packages.py b/slpkg/remove_packages.py index 5fd0087c..80330d54 100644 --- a/slpkg/remove_packages.py +++ b/slpkg/remove_packages.py @@ -2,12 +2,10 @@ # -*- coding: utf-8 -*- -import os import subprocess from slpkg.configs import Configs from dataclasses import dataclass -from slpkg.blacklist import Blacklist from slpkg.views.views import ViewMessage from slpkg.models.models import LogsDependencies from slpkg.models.models import session as Session @@ -19,31 +17,19 @@ class RemovePackages: packages: str flags: list session: str = Session - black: list = Blacklist() - log_packages: str = Configs.log_packages - repo_tag: str = Configs.repo_tag removepkg: str = Configs.removepkg - color: str = Configs.colour def remove(self): ''' Remove package with dependencies. ''' self.installed_packages = [] - view = ViewMessage() - view.remove_packages() + self.dependencies = [] - for pkg in self.packages: - self.view_installed_packages(pkg) + view = ViewMessage(self.flags) - self.dependencies = self.session.query( - LogsDependencies.requires).filter( - LogsDependencies.name == pkg).first() + self.installed_packages, self.dependencies = view.remove_packages( + self.packages) - if self.dependencies and '--resolve-off' not in self.flags: - print('\nDependencies:') - for dep in self.dependencies[0].split(): - self.view_installed_packages(dep) - - view.question(self.flags) + view.question() self.remove_packages() self.delete_main_logs() @@ -70,15 +56,3 @@ class RemovePackages: self.session.query(LogsDependencies).filter( LogsDependencies.name == pkg).delete() self.session.commit() - - def view_installed_packages(self, name: str): - ''' View and creates list with packages for remove. ''' - installed = os.listdir(self.log_packages) - color = self.color() - - for package in installed: - black = package.split('-')[0] - if (package.startswith(name) and self.repo_tag in package and - black not in self.black.get()): - self.installed_packages.append(package) - print(f'[{color["RED"]} delete {color["ENDC"]}] -> {package}') diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 075a3916..b52a421f 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -54,7 +54,7 @@ class Slackbuilds: def view_before_build(self): ''' View slackbuilds before proceed. ''' - view = ViewMessage() + view = ViewMessage(self.flags) if self.install: view.install_packages(self.slackbuilds, self.dependencies) @@ -63,7 +63,7 @@ class Slackbuilds: del self.dependencies # no more needed - view.question(self.flags) + view.question() def creating_dictionary(self): ''' Dictionary with the main slackbuilds and dependencies. ''' diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 21daa5fa..259acb63 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -1,16 +1,26 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- +import os from dataclasses import dataclass + from slpkg.queries import SBoQueries from slpkg.configs import Configs from slpkg.utilities import Utilities +from slpkg.models.models import LogsDependencies +from slpkg.models.models import session as Session +from slpkg.blacklist import Blacklist @dataclass class ViewMessage: + flags: list colors: str = Configs.colour + log_packages: str = Configs.log_packages + repo_tag: str = Configs.repo_tag + session: str = Session utils: str = Utilities() + black: list = Blacklist() def build_packages(self, slackbuilds: list, dependencies: list): print('The following packages will be build:\n') @@ -20,12 +30,12 @@ class ViewMessage: self._view_build(sbo, version) if dependencies: - print('Dependencies:') + print('\nDependencies:') for sbo in dependencies: version = SBoQueries(sbo).version() self._view_build(sbo, version) - self._view_total(slackbuilds, dependencies, method='build') + self._view_total(slackbuilds, dependencies, option='build') def install_packages(self, slackbuilds: list, dependencies: list): print('The following packages will be installed or upgraded:\n') @@ -35,12 +45,35 @@ class ViewMessage: self._view_install(sbo, version) if dependencies: - print('Dependencies:') + print('\nDependencies:') for sbo in dependencies: version = SBoQueries(sbo).version() self._view_install(sbo, version) - self._view_total(slackbuilds, dependencies, method='install') + self._view_total(slackbuilds, dependencies, option='install') + + def remove_packages(self, packages: list): + print('The following packages will be removed:\n') + self.installed_packages = [] + slackbuilds, dependencies, = [], [] + + for pkg in packages: + self._view_installed_packages(pkg) + slackbuilds.append(pkg) + + self.dependencies = self.session.query( + LogsDependencies.requires).filter( + LogsDependencies.name == pkg).first() + + if self.dependencies and '--resolve-off' not in self.flags: + print('\nDependencies:') + for dep in self.dependencies[0].split(): + self._view_installed_packages(dep) + dependencies.append(dep) + + self._view_total(slackbuilds, dependencies, option='remove') + + return self.installed_packages, self.dependencies def _view_build(self, sbo: str, version: str): color = self.colors() @@ -62,7 +95,19 @@ class ViewMessage: print(f'[{color["CYAN"]} install {color["ENDC"]}] -> ' f'{sbo}-{version}') - def _view_total(self, slackbuilds: list, dependencies: list, method): + def _view_installed_packages(self, name: str): + ''' View and creates list with packages for remove. ''' + installed = os.listdir(self.log_packages) + color = self.colors() + + for package in installed: + black = package.split('-')[0] + if (package.startswith(name) and self.repo_tag in package and + black not in self.black.get()): + self.installed_packages.append(package) + print(f'[{color["RED"]} delete {color["ENDC"]}] -> {package}') + + def _view_total(self, slackbuilds: list, dependencies: list, option: str): color = self.colors() slackbuilds.extend(dependencies) @@ -75,15 +120,17 @@ class ViewMessage: else: installed += 1 - if method == 'install': + if option == 'install': print(f'\n{color["GREY"]}Total {installed} will be installed and ' f'{upgraded} will be upgraded.{color["ENDC"]}') - else: + + elif option == 'build': print(f'\n{color["GREY"]}Total {installed + upgraded} packages ' f'will be build.{color["ENDC"]}') - def remove_packages(self): - print('The following packages will be removed:\n') + elif option == 'remove': + print(f'\n{color["GREY"]}Total {installed + upgraded} packages ' + f'will be removed.{color["ENDC"]}') def logs_packages(self, dependencies): print('The following logs will be removed:\n') @@ -95,8 +142,8 @@ class ViewMessage: print(f'{color["CYAN"]} {dep[1]}{color["ENDC"]}\n') print('Note: After cleaning you should remove them one by one.') - def question(self, flags: list): - if '--yes' not in flags: + def question(self): + if '--yes' not in self.flags: answer = input('\nDo you want to continue [y/N]: ') print() if answer not in ['Y', 'y']: From 3e3cb45ea7d33db40ae107f75c0d69e67fb230f6 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 19:26:30 +0300 Subject: [PATCH 50/68] Added some comments --- slpkg/blacklist.py | 1 + slpkg/checks.py | 1 + slpkg/clean_logs.py | 2 +- slpkg/create_data.py | 1 + slpkg/dependencies.py | 2 +- slpkg/downloader.py | 1 + slpkg/remove_packages.py | 8 ++++---- 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/slpkg/blacklist.py b/slpkg/blacklist.py index d5176c9c..288d55fd 100644 --- a/slpkg/blacklist.py +++ b/slpkg/blacklist.py @@ -13,6 +13,7 @@ class Blacklist: etc_path: str = Configs.etc_path def get(self): + ''' Reads and returns the blacklist. ''' file = f'{self.etc_path}/blacklist.json' if os.path.isfile(file): with open(file, 'r') as black: diff --git a/slpkg/checks.py b/slpkg/checks.py index 8ef14b07..0da8ec66 100644 --- a/slpkg/checks.py +++ b/slpkg/checks.py @@ -11,6 +11,7 @@ from slpkg.blacklist import Blacklist @dataclass class Check: + ''' Some checks before proceed. ''' log_packages: str = Configs.log_packages repo_tag: str = Configs.repo_tag diff --git a/slpkg/clean_logs.py b/slpkg/clean_logs.py index 63f6430e..834fadc9 100644 --- a/slpkg/clean_logs.py +++ b/slpkg/clean_logs.py @@ -11,6 +11,7 @@ from slpkg.models.models import session as Session @dataclass class CleanLogsDependencies: + ''' Cleans the logs from packages. ''' flags: str session: str = Session @@ -19,7 +20,6 @@ class CleanLogsDependencies: LogsDependencies.name, LogsDependencies.requires).all() if dependencies: - view = ViewMessage() view.logs_packages(dependencies) view.question(self.flags) diff --git a/slpkg/create_data.py b/slpkg/create_data.py index 4b885705..5d467a30 100644 --- a/slpkg/create_data.py +++ b/slpkg/create_data.py @@ -11,6 +11,7 @@ from slpkg.models.models import session as Session @dataclass class CreateData: + ''' Reads the SLACKBUILDS.TXT file and inserts them into the database. ''' db_path: str = Configs.db_path sbo_txt: str = Configs.sbo_txt diff --git a/slpkg/dependencies.py b/slpkg/dependencies.py index 147d9161..f6e0d9cf 100644 --- a/slpkg/dependencies.py +++ b/slpkg/dependencies.py @@ -9,7 +9,7 @@ from slpkg.queries import SBoQueries @dataclass class Requires: ''' Creates a list of dependencies with - the right order to install ''' + the right order to install. ''' name: str def resolve(self) -> list: diff --git a/slpkg/downloader.py b/slpkg/downloader.py index 78b683eb..9bb55c0c 100644 --- a/slpkg/downloader.py +++ b/slpkg/downloader.py @@ -9,6 +9,7 @@ from slpkg.configs import Configs @dataclass class Wget: + ''' Wget donwloader. ''' wget_options: str = Configs.wget_options def download(self, path: str, url: str): diff --git a/slpkg/remove_packages.py b/slpkg/remove_packages.py index 80330d54..9c0dc517 100644 --- a/slpkg/remove_packages.py +++ b/slpkg/remove_packages.py @@ -13,14 +13,14 @@ from slpkg.models.models import session as Session @dataclass class RemovePackages: - ''' Remove installed packages. ''' + ''' Removes installed packages. ''' packages: str flags: list session: str = Session removepkg: str = Configs.removepkg def remove(self): - ''' Remove package with dependencies. ''' + ''' Removes package with dependencies. ''' self.installed_packages = [] self.dependencies = [] @@ -44,14 +44,14 @@ class RemovePackages: subprocess.call(command, shell=True) def delete_main_logs(self): - ''' Delete main packages from logs. ''' + ''' Deletes main packages from logs. ''' for pkg in self.packages: self.session.query(LogsDependencies).filter( LogsDependencies.name == pkg).delete() self.session.commit() def delete_deps_logs(self): - ''' Delete depends packages from logs. ''' + ''' Deletes depends packages from logs. ''' for pkg in self.dependencies[0].split(): self.session.query(LogsDependencies).filter( LogsDependencies.name == pkg).delete() From 4612c9859069693799e07691fbca70653a277af3 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 20:35:09 +0300 Subject: [PATCH 51/68] Updated view version --- slpkg/main.py | 4 ++-- slpkg/version.py | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/slpkg/main.py b/slpkg/main.py index ed6bb845..20cdd905 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -6,7 +6,6 @@ import sys from dataclasses import dataclass from slpkg.cli_menu import usage -from slpkg.configs import Configs from slpkg.slackbuild import Slackbuilds from slpkg.remove_packages import RemovePackages from slpkg.update_repository import UpdateRepository @@ -50,7 +49,8 @@ class Argparse: usage(0) if self.args[0] in ['--version', '-v']: - print(f'{Configs.prog_name}: {Version.version}') + version = Version() + version.view() raise SystemExit() if self.args[0] == 'clean-logs': diff --git a/slpkg/version.py b/slpkg/version.py index d1471ae4..3a17dc57 100644 --- a/slpkg/version.py +++ b/slpkg/version.py @@ -3,11 +3,18 @@ from dataclasses import dataclass +from slpkg.configs import Configs @dataclass class Version: + prog_name: str = Configs.prog_name version_info: tuple = (4, 1, 0) version: str = '{0}.{1}.{2}'.format(*version_info) license: str = 'MIT License' author: str = 'dslackw' + homepage: str = 'https://dslackw.gitlab.io/slpkg' + + def view(self): + print(f'{self.prog_name} version: {self.version}\n' + f'Homepage: {self.homepage}') From e3eb28bc13064e53ae375213dddb13a1f1d06d9e Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 21:38:52 +0300 Subject: [PATCH 52/68] Added search package --- man/slpkg.1 | 17 +++++++++++----- slpkg/cli_menu.py | 5 +++-- slpkg/main.py | 19 +++++++++++++++--- slpkg/search.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 81 insertions(+), 10 deletions(-) create mode 100644 slpkg/search.py diff --git a/man/slpkg.1 b/man/slpkg.1 index 6a8d7113..da7c11f5 100644 --- a/man/slpkg.1 +++ b/man/slpkg.1 @@ -4,7 +4,7 @@ slpkg - [OPTIONS] [packages] .SH SYNAPSES .P -slpkg [-h | -v] [update] [build] [install] [remove] [clean-logs] --yes --resolve-off --reinstall +slpkg [-h|-v] [update] [build] [install] [remove] [search] [clean-logs] --yes --resolve-off --reinstall .SH DESCRIPTION .P Slpkg is a software package manager that installs, updates, and removes packages on Slackware based systems. It automatically computes dependencies and figures out what things should occur to install packages. Slpkg makes it easier to maintain groups of machines without having to manually update. @@ -24,17 +24,17 @@ Print version and exit. .P update .RS -Updates the data packages and the database. +Updates the package list and the database. .RE .P build .RS -Builds and creates only the scripts and puts them in the /tmp directory. +Builds the scripts and puts them in the /tmp directory. .RE .P install .RS -Builds, creates and installs the packages in the correct order and also logs the packages with dependencies to use for removal. +Builds and installs the packages in the correct order and also logs the packages with dependencies to use for removal. .RE .P remove @@ -42,6 +42,11 @@ remove Removes packages with dependencies if the packages was installed with slpkg install method. .RE .P +search +.RS +Search packages by name and view everything in your terminal. +.RE +.P clean-logs .RS Purge logs of dependencies. @@ -61,9 +66,11 @@ Turns off dependency resolving. .RS Use this option if you want to upgrade all packages even if the same version is already installed. Do not skip installed packages. .RE -.SH CONFIGURATION FILE +.SH CONFIGURATIONS FILE .P Configuration file in the /etc/slpkg/slpkg.json file. +.RE +Blacklist file in the /etc/slpkg/blacklist.json file. .SH REPORT BUGS .P Please report any found to https://gitlab.com/dslackw/slpkg/-/issues. diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py index d7740539..0c52de33 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/cli_menu.py @@ -12,10 +12,11 @@ def usage(status: int): ' build Build only the packages.', ' install Build and install the packages.', ' remove Remove installed packages.', - ' clean-logs Purge logs of dependencies.', + ' search Search packages by name.', + ' clean-logs Purge logs of dependencies.\n', ' --yes Answer Yes to all questions.', ' --resolve-off Turns off dependency resolving.', - ' --reinstall Use this option if you want to upgrade.', + ' --reinstall Use this option if you want to upgrade.\n', ' -h, --help Show this message and exit.', ' -v, --version Print version and exit.\n', 'If you need more information try to use slpkg manpage.'] diff --git a/slpkg/main.py b/slpkg/main.py index 20cdd905..b36fc336 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -5,13 +5,14 @@ import sys from dataclasses import dataclass +from slpkg.checks import Check +from slpkg.search import Search +from slpkg.version import Version from slpkg.cli_menu import usage from slpkg.slackbuild import Slackbuilds from slpkg.remove_packages import RemovePackages -from slpkg.update_repository import UpdateRepository from slpkg.clean_logs import CleanLogsDependencies -from slpkg.checks import Check -from slpkg.version import Version +from slpkg.update_repository import UpdateRepository @dataclass @@ -100,6 +101,18 @@ class Argparse: remove.remove() raise SystemExit() + # Search package + if self.args[0] == 'search': + packages = list(set(self.args[1:])) + packages = check.blacklist(packages) + + check.exists(packages) + + search = Search() + search.package(packages) + + raise SystemExit() + usage(1) diff --git a/slpkg/search.py b/slpkg/search.py new file mode 100644 index 00000000..f69888eb --- /dev/null +++ b/slpkg/search.py @@ -0,0 +1,50 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +from dataclasses import dataclass + +from slpkg.configs import Configs +from slpkg.models.models import SBoTable +from slpkg.models.models import session as Session + + +@dataclass +class Search: + session: str = Session + colors: list = Configs.colour + sbo_url: str = Configs.sbo_url + + def package(self, packages): + color = self.colors() + GREEN = color['GREEN'] + BLUE = color['BLUE'] + YELLOW = color['YELLOW'] + ENDC = color['ENDC'] + + for package in packages: + info = self.session.query( + SBoTable.name, + SBoTable.version, + SBoTable.requires, + SBoTable.download, + SBoTable.download64, + SBoTable.md5sum, + SBoTable.md5sum64, + SBoTable.files, + SBoTable.short_description, + SBoTable.location + ).filter( + SBoTable.name == package).first() + + print(f'Name: {GREEN}{info[0]}{ENDC}\n' + f'Version: {GREEN}{info[1]}{ENDC}\n' + f'Requires: {GREEN}{info[2]}{ENDC}\n' + f'Download: {BLUE}{info[3]}{ENDC}\n' + f'Download_x86_64: {BLUE}{info[4]}{ENDC}\n' + f'Md5sum: {YELLOW}{info[5]}{ENDC}\n' + f'Md5sum_x86_64: {YELLOW}{info[6]}{ENDC}\n' + f'Files: {GREEN}{info[7]}{ENDC}\n' + f'Description: {GREEN}{info[8]}{ENDC}\n' + f'SBo url: {BLUE}{self.sbo_url}/{info[9]}/' + f'{info[0]}{ENDC}\n') From f0653eae35d646e4149a53ce59be01e08847b418 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 21:43:07 +0300 Subject: [PATCH 53/68] Updated description --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c298173e..14e97407 100755 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ setup( packages=['slpkg', 'slpkg/models', 'slpkg/views'], scripts=['bin/slpkg'], version=Version.version, - description='Package manager for Slackware installations', + description='Packaging tool that interacts with the SBo repository', long_description=open('README.rst').read(), keywords=['slackware', 'slpkg', 'update', 'build', 'install', 'remove', 'slackpkg', 'tool'], From 24bbceb98cc918c59b4e0d9f1335361adda6a3af Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 21:51:57 +0300 Subject: [PATCH 54/68] Fixed installation --- slpkg/version.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/slpkg/version.py b/slpkg/version.py index 3a17dc57..52e83386 100644 --- a/slpkg/version.py +++ b/slpkg/version.py @@ -3,12 +3,11 @@ from dataclasses import dataclass -from slpkg.configs import Configs @dataclass class Version: - prog_name: str = Configs.prog_name + prog_name: str = 'slpkg' version_info: tuple = (4, 1, 0) version: str = '{0}.{1}.{2}'.format(*version_info) license: str = 'MIT License' From d65316bf54d6863f4b3c54ec534bfab4f6e9359a Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 21:52:14 +0300 Subject: [PATCH 55/68] Fixed flags --- slpkg/clean_logs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slpkg/clean_logs.py b/slpkg/clean_logs.py index 834fadc9..6a58a2a9 100644 --- a/slpkg/clean_logs.py +++ b/slpkg/clean_logs.py @@ -20,9 +20,9 @@ class CleanLogsDependencies: LogsDependencies.name, LogsDependencies.requires).all() if dependencies: - view = ViewMessage() + view = ViewMessage(self.flags) view.logs_packages(dependencies) - view.question(self.flags) + view.question() self.session.query(LogsDependencies).delete() self.session.commit() From 078410138a3afc9d253d349b626b724ebd5cdd0c Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 22:05:48 +0300 Subject: [PATCH 56/68] Updated readme --- slackbuild/README | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/slackbuild/README b/slackbuild/README index a620d3cd..3366a777 100644 --- a/slackbuild/README +++ b/slackbuild/README @@ -1,5 +1,5 @@ -Slpkg is a software package manager that installs, updates -and removes packages on Slackware based systems. It automatically -computes dependencies and figures out what things should occur -to install packages. Slpkg makes it easier to maintain groups -of machines without having to manually update. +Slpkg is a software package manager that installs, updates and +removes packages on Slackware-based systems. It automatically +calculates dependencies and figures out what things need to +happen to install packages. Slpkg makes it easier to manage +groups of machines without the need for manual updates. \ No newline at end of file From d86716183c0612cbc2890b1a4d78c8ddb1a9cd0b Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 22:06:02 +0300 Subject: [PATCH 57/68] Updated imports --- slackbuild/slack-desc | 10 +++++----- slpkg/blacklist.py | 1 + slpkg/cli_menu.py | 1 + slpkg/dependencies.py | 1 + slpkg/downloader.py | 1 + slpkg/models/models.py | 4 +++- slpkg/queries.py | 5 +++-- slpkg/remove_packages.py | 4 ++-- slpkg/slackbuild.py | 3 ++- slpkg/update_repository.py | 6 ++++-- slpkg/utilities.py | 2 ++ slpkg/views/views.py | 4 ++-- 12 files changed, 27 insertions(+), 15 deletions(-) diff --git a/slackbuild/slack-desc b/slackbuild/slack-desc index 05812858..b2ad2d51 100644 --- a/slackbuild/slack-desc +++ b/slackbuild/slack-desc @@ -8,11 +8,11 @@ |-----handy-ruler------------------------------------------------------| slpkg: slpkg (Slackware Packaging Tool) slpkg: -slpkg: Slpkg is a software package manager that installs, updates, -slpkg: and removes packages on Slackware based systems. It automatically -slpkg: computes dependencies and figures out what things should occur -slpkg: to install packages. Slpkg makes it easier to maintain groups of -slpkg: of machines without having to manually update. +slpkg: Slpkg is a software package manager that installs, updates and +slpkg: removes packages on Slackware-based systems. It automatically +slpkg: calculates dependencies and figures out what things need to +slpkg: happen to install packages. Slpkg makes it easier to manage +slpkg: groups of machines without the need for manual updates. slpkg: slpkg: Homepage: https://dslackw.gitlab.io/slpkg/ slpkg: diff --git a/slpkg/blacklist.py b/slpkg/blacklist.py index 288d55fd..9bb50b8f 100644 --- a/slpkg/blacklist.py +++ b/slpkg/blacklist.py @@ -5,6 +5,7 @@ import os import json from dataclasses import dataclass + from slpkg.configs import Configs diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py index 0c52de33..e72ebd0c 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/cli_menu.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- + from slpkg.configs import Configs diff --git a/slpkg/dependencies.py b/slpkg/dependencies.py index f6e0d9cf..13c462b3 100644 --- a/slpkg/dependencies.py +++ b/slpkg/dependencies.py @@ -3,6 +3,7 @@ from dataclasses import dataclass + from slpkg.queries import SBoQueries diff --git a/slpkg/downloader.py b/slpkg/downloader.py index 9bb55c0c..fcac9323 100644 --- a/slpkg/downloader.py +++ b/slpkg/downloader.py @@ -4,6 +4,7 @@ import subprocess from dataclasses import dataclass + from slpkg.configs import Configs diff --git a/slpkg/models/models.py b/slpkg/models/models.py index b3727c0a..08f70d62 100644 --- a/slpkg/models/models.py +++ b/slpkg/models/models.py @@ -1,12 +1,14 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- -from slpkg.configs import Configs + from dataclasses import dataclass from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine, Column, Integer, Text +from slpkg.configs import Configs + db_path = Configs.db_path database = Configs.database diff --git a/slpkg/queries.py b/slpkg/queries.py index dbcf17b4..3de1c8e9 100644 --- a/slpkg/queries.py +++ b/slpkg/queries.py @@ -2,11 +2,12 @@ # -*- coding: utf-8 -*- +from dataclasses import dataclass + from slpkg.configs import Configs +from slpkg.blacklist import Blacklist from slpkg.models.models import SBoTable from slpkg.models.models import session as Session -from dataclasses import dataclass -from slpkg.blacklist import Blacklist @dataclass diff --git a/slpkg/remove_packages.py b/slpkg/remove_packages.py index 9c0dc517..31cf44cd 100644 --- a/slpkg/remove_packages.py +++ b/slpkg/remove_packages.py @@ -3,9 +3,9 @@ import subprocess -from slpkg.configs import Configs - from dataclasses import dataclass + +from slpkg.configs import Configs from slpkg.views.views import ViewMessage from slpkg.models.models import LogsDependencies from slpkg.models.models import session as Session diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index b52a421f..5b709413 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -4,8 +4,9 @@ import os import shutil import subprocess -from collections import OrderedDict + from dataclasses import dataclass +from collections import OrderedDict from slpkg.downloader import Wget from slpkg.checksum import Md5sum diff --git a/slpkg/update_repository.py b/slpkg/update_repository.py index d82fb3e5..1ad443c9 100644 --- a/slpkg/update_repository.py +++ b/slpkg/update_repository.py @@ -3,13 +3,15 @@ import os + from os import path -from slpkg.create_data import CreateData +from dataclasses import dataclass + from slpkg.downloader import Wget from slpkg.configs import Configs +from slpkg.create_data import CreateData from slpkg.models.models import SBoTable from slpkg.models.models import session as Session -from dataclasses import dataclass @dataclass diff --git a/slpkg/utilities.py b/slpkg/utilities.py index fabcc9d5..6b1d70ab 100644 --- a/slpkg/utilities.py +++ b/slpkg/utilities.py @@ -5,7 +5,9 @@ import os import re import tarfile + from dataclasses import dataclass + from slpkg.configs import Configs diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 259acb63..2570ab48 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -4,12 +4,12 @@ import os from dataclasses import dataclass -from slpkg.queries import SBoQueries from slpkg.configs import Configs +from slpkg.queries import SBoQueries from slpkg.utilities import Utilities +from slpkg.blacklist import Blacklist from slpkg.models.models import LogsDependencies from slpkg.models.models import session as Session -from slpkg.blacklist import Blacklist @dataclass From cf0a0f1e5fdd19722be9edc67dd10c07b86bd4b7 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 22:18:54 +0300 Subject: [PATCH 58/68] Updated configs --- slpkg/configs.py | 64 ++++++++++++++++++++++++++---------------------- slpkg/version.py | 4 ++- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/slpkg/configs.py b/slpkg/configs.py index 02e7abe8..b5e62840 100644 --- a/slpkg/configs.py +++ b/slpkg/configs.py @@ -2,7 +2,9 @@ # -*- coding: utf-8 -*- +import os import json + from dataclasses import dataclass @@ -47,41 +49,44 @@ class Configs: wget_options = '-c -N' ''' Overwrite with user configuration. ''' - with open(f'{etc_path}/{prog_name}.json', 'r') as conf: - config = json.load(conf) + config_file: str = f'{etc_path}/{prog_name}.json' + if os.path.isfile(config_file): - # OS architecture by default - os_arch: str = config['os_arch'] + with open(config_file, 'r') as conf: + config = json.load(conf) - # All necessary paths - tmp_path: str = config['tmp_path'] - tmp_slpkg: str = config['tmp_slpkg'] - build_path: str = config['build_path'] - lib_path: str = config['lib_path'] - etc_path: str = config['etc_path'] - db_path: str = config['db_path'] - sbo_repo_path: str = config['sbo_repo_path'] - log_packages: str = config['log_packages'] + # OS architecture by default + os_arch: str = config['os_arch'] - # Database name - database: str = config['database'] + # All necessary paths + tmp_path: str = config['tmp_path'] + tmp_slpkg: str = config['tmp_slpkg'] + build_path: str = config['build_path'] + lib_path: str = config['lib_path'] + etc_path: str = config['etc_path'] + db_path: str = config['db_path'] + sbo_repo_path: str = config['sbo_repo_path'] + log_packages: str = config['log_packages'] - # Repository details - repo_version: str = config['repo_version'] - sbo_url: str = config['sbo_url'] - sbo_txt: str = config['sbo_txt'] - tar_suffix: str = config['tar_suffix'] - pkg_suffix: str = config['pkg_suffix'] - repo_tag: str = config['repo_tag'] + # Database name + database: str = config['database'] - # Slackware commands - installpkg: str = config['installpkg'] - reinstall: str = config['reinstall'] - removepkg: str = config['removepkg'] + # Repository details + repo_version: str = config['repo_version'] + sbo_url: str = config['sbo_url'] + sbo_txt: str = config['sbo_txt'] + tar_suffix: str = config['tar_suffix'] + pkg_suffix: str = config['pkg_suffix'] + repo_tag: str = config['repo_tag'] - # Other configs - colors: str = config['colors'] - wget_options: str = config['wget_options'] + # Slackware commands + installpkg: str = config['installpkg'] + reinstall: str = config['reinstall'] + removepkg: str = config['removepkg'] + + # Other configs + colors: str = config['colors'] + wget_options: str = config['wget_options'] @classmethod def colour(cls): @@ -90,6 +95,7 @@ class Configs: 'GREEN': '', 'YELLOW': '', 'CYAN': '', + 'BLUE': '', 'GREY': '', 'ENDC': '' } diff --git a/slpkg/version.py b/slpkg/version.py index 52e83386..a7067ebf 100644 --- a/slpkg/version.py +++ b/slpkg/version.py @@ -4,10 +4,12 @@ from dataclasses import dataclass +from slpkg.configs import Configs + @dataclass class Version: - prog_name: str = 'slpkg' + prog_name: str = Configs.prog_name version_info: tuple = (4, 1, 0) version: str = '{0}.{1}.{2}'.format(*version_info) license: str = 'MIT License' From b9b8672c02008b782c4a18fa92c86c330625f68b Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 22:23:19 +0300 Subject: [PATCH 59/68] Updated message --- slpkg/views/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 2570ab48..31525a38 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -121,8 +121,8 @@ class ViewMessage: installed += 1 if option == 'install': - print(f'\n{color["GREY"]}Total {installed} will be installed and ' - f'{upgraded} will be upgraded.{color["ENDC"]}') + print(f'\n{color["GREY"]}Total {installed} packages will be ' + f'installed and {upgraded} will be upgraded.{color["ENDC"]}') elif option == 'build': print(f'\n{color["GREY"]}Total {installed + upgraded} packages ' From 942438dc93ceb77fe11427dc815c490f9cdc5f14 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 22:54:49 +0300 Subject: [PATCH 60/68] Updated README --- README.rst | 75 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 15 deletions(-) diff --git a/README.rst b/README.rst index 8bee51c5..2e50ccf4 100644 --- a/README.rst +++ b/README.rst @@ -1,26 +1,34 @@ -*********** -slpkg 4.1.0 -*********** +.. contents:: Table of Contents: -Slpkg is a software package manager that installs, updates, and removes packages on -`Slackware `_ based systems. It automatically computes dependencies and -figures out what things should occur to install packages. Slpkg makes it easier to maintain groups -of machines without having to manually update. -Slpkg works in accordance with the standards of the organization `SlackBuilds.org `_ -to build packages. Also uses the Slackware Linux instructions for installation, -upgrading or removing packages. +About +----- +Slpkg is a software package manager that installs, updates and removes packages on `Slackware `_ -based systems. +It automatically calculates dependencies and figures out what things need to happen to install packages. +Slpkg makes it easier to manage groups of machines without the need for manual updates. + +Slpkg works in accordance with the standards of the `SlackBuilds.org `_ organization to build packages. +It also uses the Slackware Linux instructions for installing, upgrading or removing packages. + +.. image:: https://gitlab.com/dslackw/images/raw/master/slpkg/slpkg_package.png + :target: https://gitlab.com/dslackw/slpkg + + +Requirements +------------ + +.. code-block:: bash + + SQLAlchemy>=1.4.36 Install ------- -Install from the official third party `SBo repository `_, or directly from the source: - +Install from the official third-party `SBo repository `_ or directly from source: .. code-block:: bash - $ wget slpkg-4.1.0.tar.gz $ tar xvf slpkg-4.1.0.tar.gz $ cd slpkg-4.1.0 $ ./install.sh @@ -31,10 +39,47 @@ Usage .. code-block:: bash - $ slpkg update - $ slpkg install $ slpkg --help + Usage: slpkg [OPTIONS] [packages] + + Packaging tool that interacts with the SBo repository. + + Options: + update Update the data packages. + build Build only the packages. + install Build and install the packages. + remove Remove installed packages. + search Search packages by name. + clean-logs Purge logs of dependencies. + + --yes Answer Yes to all questions. + --resolve-off Turns off dependency resolving. + --reinstall Use this option if you want to upgrade. + + -h, --help Show this message and exit. + -v, --version Print version and exit. + + +Configuration files +------------------- + +.. code-block:: bash + + /etc/slpkg/slpkg.json + General configuration of slpkg + + /etc/slpkg/blacklist.json + Blacklist of packages + +Donate +------ + +If you feel satisfied with this project and want to thanks me make a donation. + +.. image:: https://gitlab.com/dslackw/images/raw/master/donate/paypaldonate.png + :target: https://www.paypal.me/dslackw + Copyright --------- From 918304b26826721fa159ae37c5ec00ea9bc9d73b Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 22:57:06 +0300 Subject: [PATCH 61/68] Fixed typo --- man/slpkg.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/slpkg.1 b/man/slpkg.1 index da7c11f5..19858b56 100644 --- a/man/slpkg.1 +++ b/man/slpkg.1 @@ -66,7 +66,7 @@ Turns off dependency resolving. .RS Use this option if you want to upgrade all packages even if the same version is already installed. Do not skip installed packages. .RE -.SH CONFIGURATIONS FILE +.SH CONFIGURATION FILES .P Configuration file in the /etc/slpkg/slpkg.json file. .RE From 9a7d9c88906cf5b97e60ae78c0a39319ce3314a0 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 23:27:24 +0300 Subject: [PATCH 62/68] Updated lines --- slpkg/blacklist.py | 2 +- slpkg/search.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/slpkg/blacklist.py b/slpkg/blacklist.py index 9bb50b8f..3b9f3cfb 100644 --- a/slpkg/blacklist.py +++ b/slpkg/blacklist.py @@ -11,10 +11,10 @@ from slpkg.configs import Configs @dataclass class Blacklist: + ''' Reads and returns the blacklist. ''' etc_path: str = Configs.etc_path def get(self): - ''' Reads and returns the blacklist. ''' file = f'{self.etc_path}/blacklist.json' if os.path.isfile(file): with open(file, 'r') as black: diff --git a/slpkg/search.py b/slpkg/search.py index f69888eb..c0c760f2 100644 --- a/slpkg/search.py +++ b/slpkg/search.py @@ -34,8 +34,7 @@ class Search: SBoTable.files, SBoTable.short_description, SBoTable.location - ).filter( - SBoTable.name == package).first() + ).filter(SBoTable.name == package).first() print(f'Name: {GREEN}{info[0]}{ENDC}\n' f'Version: {GREEN}{info[1]}{ENDC}\n' From d3cd9b8b01e925d2f5e9bcd710323d3409466da2 Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Sun, 19 Jun 2022 23:32:23 +0300 Subject: [PATCH 63/68] Updated help menu --- README.rst | 2 +- slpkg/cli_menu.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 2e50ccf4..d2cb5a18 100644 --- a/README.rst +++ b/README.rst @@ -46,7 +46,7 @@ Usage Packaging tool that interacts with the SBo repository. Options: - update Update the data packages. + update Update the package lists. build Build only the packages. install Build and install the packages. remove Remove installed packages. diff --git a/slpkg/cli_menu.py b/slpkg/cli_menu.py index e72ebd0c..3e7d0489 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/cli_menu.py @@ -9,7 +9,7 @@ def usage(status: int): args = [f'Usage: {Configs.prog_name} [OPTIONS] [packages]\n', ' Packaging tool that interacts with the SBo repository.\n', 'Options:', - ' update Update the data packages.', + ' update Update the package lists.', ' build Build only the packages.', ' install Build and install the packages.', ' remove Remove installed packages.', From 729f695b5c68ef0cad94d5d7ae652d7a889a8d3d Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 20 Jun 2022 17:50:16 +0300 Subject: [PATCH 64/68] Added --jobs option --- README.rst | 5 +++-- man/slpkg.1 | 28 +++++++++++++++++----------- slpkg/main.py | 7 ++++++- slpkg/slackbuild.py | 11 +++++++++++ slpkg/{ => views}/cli_menu.py | 1 + 5 files changed, 38 insertions(+), 14 deletions(-) rename slpkg/{ => views}/cli_menu.py (94%) diff --git a/README.rst b/README.rst index d2cb5a18..e5af9672 100644 --- a/README.rst +++ b/README.rst @@ -41,7 +41,7 @@ Usage $ slpkg --help - Usage: slpkg [OPTIONS] [packages] + Usage: slpkg [OPTIONS] Packaging tool that interacts with the SBo repository. @@ -54,6 +54,7 @@ Usage clean-logs Purge logs of dependencies. --yes Answer Yes to all questions. + --jobs Set it for multicore systems. --resolve-off Turns off dependency resolving. --reinstall Use this option if you want to upgrade. @@ -86,4 +87,4 @@ Copyright - Copyright 2014-2022 © Dimitris Zlatanidis. - Slackware® is a Registered Trademark of Patrick Volkerding. -- Linux is a Registered Trademark of Linus Torvalds. +- Linux is a Registered Trademark of Linus Torvalds. \ No newline at end of file diff --git a/man/slpkg.1 b/man/slpkg.1 index 19858b56..7c9e2b04 100644 --- a/man/slpkg.1 +++ b/man/slpkg.1 @@ -1,7 +1,7 @@ .TH slpkg 1 "Orestiada, Greece" "slpkg 4.1.0" dslackw .SH NAME .P -slpkg - [OPTIONS] [packages] +slpkg - [OPTIONS] .SH SYNAPSES .P slpkg [-h|-v] [update] [build] [install] [remove] [search] [clean-logs] --yes --resolve-off --reinstall @@ -12,16 +12,6 @@ Slpkg is a software package manager that installs, updates, and removes packages Slpkg works in accordance with the standards of the organization SlackBuilds.org to build packages. Also uses the Slackware Linux instructions for installation, upgrading or removing packages. .SH OPTIONS .P --h | --help -.RS -Show help informatio and exit. -.RE -.P --v | --version -.RS -Print version and exit. -.RE -.P update .RS Updates the package list and the database. @@ -57,6 +47,12 @@ Purge logs of dependencies. Answer Yes to all questions. .RE .P +--jobs +.RS +Acceleration of SlackBuild scripts. When the --jobs flag is set, slpkg automatically detects the number of processors and enters it into the MAKEFLAGS variable. Some SlackBuilds fail when +MAKEFLAGS is declared or the number of processors (-j) is greater than one. +.RE +.P --resolve-off .RS Turns off dependency resolving. @@ -66,6 +62,16 @@ Turns off dependency resolving. .RS Use this option if you want to upgrade all packages even if the same version is already installed. Do not skip installed packages. .RE +.P +-h | --help +.RS +Show help informatio and exit. +.RE +.P +-v | --version +.RS +Print version and exit. +.RE .SH CONFIGURATION FILES .P Configuration file in the /etc/slpkg/slpkg.json file. diff --git a/slpkg/main.py b/slpkg/main.py index b36fc336..b926416b 100644 --- a/slpkg/main.py +++ b/slpkg/main.py @@ -8,7 +8,7 @@ from dataclasses import dataclass from slpkg.checks import Check from slpkg.search import Search from slpkg.version import Version -from slpkg.cli_menu import usage +from slpkg.views.cli_menu import usage from slpkg.slackbuild import Slackbuilds from slpkg.remove_packages import RemovePackages from slpkg.clean_logs import CleanLogsDependencies @@ -22,6 +22,7 @@ class Argparse: def flags(self): self.flags = [] yes = '--yes' + jobs = '--jobs' resolve_off = '--resolve-off' reinstall = '--reinstall' @@ -29,6 +30,10 @@ class Argparse: self.args.remove(yes) self.flags.append(yes) + if jobs in self.args: + self.args.remove(jobs) + self.flags.append(jobs) + if resolve_off in self.args: self.args.remove(resolve_off) self.flags.append(resolve_off) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 5b709413..856b2046 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -4,6 +4,7 @@ import os import shutil import subprocess +import multiprocessing from dataclasses import dataclass from collections import OrderedDict @@ -159,10 +160,20 @@ class Slackbuilds: folder = f'{path}/{name}/' slackbuild = f'./{name}.SlackBuild' execute = folder + slackbuild + + if '--jobs' in self.flags: + self.makeflags() + stdout = subprocess.call(execute) if stdout > 0: raise SystemExit(stdout) + def makeflags(self): + ''' Set number of processors. ''' + cpus = multiprocessing.cpu_count() + os.environ['MAKEFLAGS'] = f'-j {cpus}' + print(os.environ['MAKEFLAGS']) + def download_sources(self, name: str, sources: str): ''' Download the sources. ''' wget = Wget() diff --git a/slpkg/cli_menu.py b/slpkg/views/cli_menu.py similarity index 94% rename from slpkg/cli_menu.py rename to slpkg/views/cli_menu.py index 3e7d0489..6166ca21 100644 --- a/slpkg/cli_menu.py +++ b/slpkg/views/cli_menu.py @@ -16,6 +16,7 @@ def usage(status: int): ' search Search packages by name.', ' clean-logs Purge logs of dependencies.\n', ' --yes Answer Yes to all questions.', + ' --jobs Set it for multicore systems.', ' --resolve-off Turns off dependency resolving.', ' --reinstall Use this option if you want to upgrade.\n', ' -h, --help Show this message and exit.', From 2170388765b29af1deab52fcfdb7a869eb9bff2f Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 20 Jun 2022 17:55:44 +0300 Subject: [PATCH 65/68] Fixed set makeflags --- slpkg/slackbuild.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 856b2046..9b5f7670 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -162,17 +162,16 @@ class Slackbuilds: execute = folder + slackbuild if '--jobs' in self.flags: - self.makeflags() + self.set_makeflags() stdout = subprocess.call(execute) if stdout > 0: raise SystemExit(stdout) - def makeflags(self): + def set_makeflags(self): ''' Set number of processors. ''' cpus = multiprocessing.cpu_count() os.environ['MAKEFLAGS'] = f'-j {cpus}' - print(os.environ['MAKEFLAGS']) def download_sources(self, name: str, sources: str): ''' Download the sources. ''' From 77fcb55795c1b33732bb8feb31e11d287acd282e Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 20 Jun 2022 18:44:19 +0300 Subject: [PATCH 66/68] Fixed install and upgrade --- slpkg/slackbuild.py | 2 +- slpkg/views/views.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/slpkg/slackbuild.py b/slpkg/slackbuild.py index 9b5f7670..983d9b59 100644 --- a/slpkg/slackbuild.py +++ b/slpkg/slackbuild.py @@ -140,7 +140,7 @@ class Slackbuilds: def install_package(self, package: str): ''' Install the packages that before created in the tmp directory. ''' execute = self.installpkg - if ('--reinstall' in self.flags or + if ('--reinstall' in self.flags and self.utils.is_installed(package[:-4])): execute = self.reinstall command = f'{execute} {self.tmp_path}/{package}' diff --git a/slpkg/views/views.py b/slpkg/views/views.py index 31525a38..ed5a52d1 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -88,8 +88,12 @@ class ViewMessage: def _view_install(self, sbo: str, version: str): color = self.colors() + install = 'install' + if '--reinstall' in self.flags: + install = 'upgrade' + if self.utils.is_installed(f'{sbo}-{version}-'): - print(f'[{color["YELLOW"]} upgrade {color["ENDC"]}] -> ' + print(f'[{color["YELLOW"]} {install} {color["ENDC"]}] -> ' f'{sbo}-{version}') else: print(f'[{color["CYAN"]} install {color["ENDC"]}] -> ' From 793d34c492f89fba1527f405f9fb2243d49a578a Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 20 Jun 2022 19:01:37 +0300 Subject: [PATCH 67/68] Fixed colors view --- slpkg/views/views.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slpkg/views/views.py b/slpkg/views/views.py index ed5a52d1..6e303db4 100644 --- a/slpkg/views/views.py +++ b/slpkg/views/views.py @@ -88,12 +88,12 @@ class ViewMessage: def _view_install(self, sbo: str, version: str): color = self.colors() - install = 'install' + install, set_color = 'install', color['RED'] if '--reinstall' in self.flags: - install = 'upgrade' + install, set_color = 'upgrade', color['YELLOW'] if self.utils.is_installed(f'{sbo}-{version}-'): - print(f'[{color["YELLOW"]} {install} {color["ENDC"]}] -> ' + print(f'[{set_color} {install} {color["ENDC"]}] -> ' f'{sbo}-{version}') else: print(f'[{color["CYAN"]} install {color["ENDC"]}] -> ' From 46ff3804b214a9084f400e2e3e471a90a43dd35a Mon Sep 17 00:00:00 2001 From: Dimitris Zlatanidis Date: Mon, 20 Jun 2022 19:45:10 +0300 Subject: [PATCH 68/68] Fixed line --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index e5af9672..ce30645c 100644 --- a/README.rst +++ b/README.rst @@ -87,4 +87,4 @@ Copyright - Copyright 2014-2022 © Dimitris Zlatanidis. - Slackware® is a Registered Trademark of Patrick Volkerding. -- Linux is a Registered Trademark of Linus Torvalds. \ No newline at end of file +- Linux is a Registered Trademark of Linus Torvalds.