Tiny Core Linux

Tiny Core Extensions => TCE Talk => Topic started by: nick65go on March 01, 2023, 03:09:12 PM

Title: tree of tcz which depends of one chosen tcz
Post by: nick65go on March 01, 2023, 03:09:12 PM
I saw in https://en.wikipedia.org/wiki/Graphviz (https://en.wikipedia.org/wiki/Graphviz) some tree dependency, build by
Code: [Select]
Title:          graphviz.tcz
Version:        2.38.0
Size: 5.9MB
Extension_by:   juanito
Comments:       graph drawing programs and libraries
Change-log:     first version
Current:        2016/01/28
I do not know how o use it; and even if I will know, I think we do not need a 6 MB apps to draw an ASCII tree, when we have a tcz.dep.db.gz on the server.

The idea is to have a A.tcz as root, and then list (optionally to a specific level, let say LEV=4 branches), the hierarchical tcz which ask for this A.tcz, aside of their size. Something like:
Code: [Select]
A.tcz
- B1.tcz [x1 kb]
  -- C1.tcz [x2 kb]
  -- D1.tcz [x3 kb]
- B2.tcz [x1 kb]
  -- C2.tcz [x2 kb]
     -- E1.tcz [x1 kb ]
        -- F1.tcz [x2 kb] 
     -- D3.tcz [x3 kb]
        -- E1.tcz [x1 kb]
- B3.tcz [x1 kb]
I think having these 2 files on the server: size.gz (kb for each tcz) and the new tcz.dep.db.gz, some skilled programmer could build a script using just busybox tools, like awk.
The logic i think is similar with the engine of tce-load, using an array of variable number of fields in awk.
I do not have the skills, but maybe someone could take the challenge, for fun, or as an exercise.

 
Title: Re: tree of tcz which depends of one chosen tcz
Post by: nick65go on March 01, 2023, 03:53:51 PM
as a sample, for what other package-manager could do, I chroot into Alpine-Linux:
Code: [Select]
root@box:/# apk --help  info
apk-tools 2.12.11, compiled for x86_64.
Info options:
  -r, --rdepends        List reverse dependencies of the package (all other
                        packages which depend on the package)
  -R, --depends         List the dependencies of the package
root@box:/#

Code: [Select]
root@box:/# time apk info -R goffice
goffice-0.10.55-r0 depends on:
so:libatk-1.0.so.0
so:libc.musl-x86_64.so.1
so:libcairo.so.2
so:libgdk-3.so.0
so:libgdk_pixbuf-2.0.so.0
so:libgio-2.0.so.0
so:libglib-2.0.so.0
so:libgmodule-2.0.so.0
so:libgobject-2.0.so.0
so:libgsf-1.so.114
so:libgtk-3.so.0
so:libintl.so.8
so:libpango-1.0.so.0
so:libpangocairo-1.0.so.0
so:librsvg-2.so.2
so:libxml2.so.2
so:libxslt.so.1

real    0m 2.43s
user    0m 1.80s
sys     0m 0.63s

Code: [Select]
root@box:/# time apk info -r goffice
goffice-0.10.55-r0 is required by:
gnumeric-1.12.55-r0
abiword-3.0.5-r6

real    0m 1.21s
user    0m 0.90s
sys     0m 0.30s
Title: Re: tree of tcz which depends of one chosen tcz
Post by: curaga on March 02, 2023, 02:18:08 AM
We already have tree files, and the depends-on script was just added?
Title: Re: tree of tcz which depends of one chosen tcz
Post by: nick65go on March 02, 2023, 02:49:11 AM
I was thinking about a tree plus BRANCHES, plus SIZE, plus optionally trim at a chosen deep LEVEL.
You replay that (see my first post here) we will have something like a short list.
Code: [Select]
A.tcz is required by:
B1.tcz
B2.tcz
B3.tcz

But not lets say, branches at level =2, like:
Code: [Select]
A.tcz is required by:
- B1.tcz [x1 kb] ->
-- C1.tcz [x2 kb]   LEV=2
- B2.tcz [x1 kb]
  -- C2.tcz [x2 kb]   LEV=2
- B3.tcz [x1 kb]

If this is already the plan for depends-on.sh then I miss-interpreted.
Title: Re: tree of tcz which depends of one chosen tcz
Post by: curaga on March 02, 2023, 11:33:55 AM
Ah, you want a reverse tree. No, that is not planned, it's not very commonly needed. I can't really think of any use case for it.

You can write it for yourself, call depends-on.sh recursively and indent to create a tree.
Title: Re: tree of tcz which depends of one chosen tcz
Post by: mocore on March 19, 2023, 04:13:58 AM
I do not know how o use it; and even if I will know,
I think we do not need a 6 MB apps to draw an ASCII tree, when we have a tcz.dep.db.gz on the server.

i have in the past found (&lost)  awk scripts

eg 
https://github.com/pouriya/grawk - Simple Awk script for generating ASCII graphs in terminal
the one i had in mind but now cant find was to create graphs git branch/history (like git hub)
Title: Re: tree of tcz which depends of one chosen tcz
Post by: mocore on March 19, 2023, 09:08:06 AM
ftr this was the project i had in mind

"Grawkit is a tool that helps build SVG graphs from git command-line descriptions, and is built in Awk."
https://github.com/deuill/grawkit - The Awksome Git Graph Generator

perhaps it can provide some inspiration , all though mabe it is less relevant than pouriya/grawk  which (apparently) outputs ascii graphs

Ah, you want a reverse tree. No, that is not planned, it's not very commonly needed. I can't really think of any use case for it.

You can write it for yourself, call depends-on.sh recursively and indent to create a tree.

presumably a 'reverse tree' would be like one of the methods
mentioned hear https://en.wikipedia.org/wiki/Tree_traversal
ftr the wiki links to rosettacode
 8) https://rosettacode.org/wiki/Tree_traversal
which conveniently has a section on tree traversal
and  various examples in awk!
https://rosettacode.org/wiki/Tree_traversal#AWK