Resolving SBo packages dependencies
Posted 08-30-2018 at 06:28 AM by igadoter
When I started this thread [url]https://www.linuxquestions.org/questions/slackware-14/call-for-testers-script-to-resolve-dependencies-for-sbo-packages-4175637160/[/url] I didn't realize it will grow up into something more complicated. Essentially at the end it should full package builder - based on bunch of scripts.
The first it was to realize how to build full file of dependencies (abbr. dep file) for package. Dep file is just text file - each line is link to web page for package. In time it is being created it has to satisfy simple assertion: all dependencies (abbr. deps) for package are in lines below the line which contains name of package. I think it better to make picture than said.
PACKAGE ---> DEP 1 ----> DEP 2 ----> ----- > DEP n'th
(---> means below)
Think a little: because assertion has to be true for every package, all deps for DEP 1 are below (!) DEP 1, the picture above doesn't mean (!) that DEP 2, etc, are deps for DEP 1. But there is assurance all deps for DEP 1 are below (!) DEP 1.
So to build such dep file it is required to keep this assertion to be true all the time. The only things here is to keep watch to remove duplicates.
This is essentially what my first script is doing [url]https://www.linuxquestions.org/questions/slackware-14/call-for-testers-script-to-resolve-dependencies-for-sbo-packages-4175637160/#post5896112[/url].
Because dep file contains links to web pages with description of package, I realized that I can just well grab all that information so: READMDE, *.info, slackbuild script, *.desc, etc. and put the in some directory - say with the name the same as the package name.
Now all this runs by this procedure:
build dep file ---> create directories ---> grab all information about package ---> grab all information from *.info files deps ---> make test comparing what was found all together in *.info with dep file (essentially all what is in *.info's should be in dep file).
There is another goal for this blog: to implement all this in Python, Perl or even C/C++, or instead of 'hashes' in my script to use bash arrays
The first it was to realize how to build full file of dependencies (abbr. dep file) for package. Dep file is just text file - each line is link to web page for package. In time it is being created it has to satisfy simple assertion: all dependencies (abbr. deps) for package are in lines below the line which contains name of package. I think it better to make picture than said.
PACKAGE ---> DEP 1 ----> DEP 2 ----> ----- > DEP n'th
(---> means below)
Think a little: because assertion has to be true for every package, all deps for DEP 1 are below (!) DEP 1, the picture above doesn't mean (!) that DEP 2, etc, are deps for DEP 1. But there is assurance all deps for DEP 1 are below (!) DEP 1.
So to build such dep file it is required to keep this assertion to be true all the time. The only things here is to keep watch to remove duplicates.
This is essentially what my first script is doing [url]https://www.linuxquestions.org/questions/slackware-14/call-for-testers-script-to-resolve-dependencies-for-sbo-packages-4175637160/#post5896112[/url].
Because dep file contains links to web pages with description of package, I realized that I can just well grab all that information so: READMDE, *.info, slackbuild script, *.desc, etc. and put the in some directory - say with the name the same as the package name.
Now all this runs by this procedure:
build dep file ---> create directories ---> grab all information about package ---> grab all information from *.info files deps ---> make test comparing what was found all together in *.info with dep file (essentially all what is in *.info's should be in dep file).
There is another goal for this blog: to implement all this in Python, Perl or even C/C++, or instead of 'hashes' in my script to use bash arrays
Total Comments 1
Comments
-
I need to put this somewhere, why not in blog. TODO
Code:go build -buildmode=pie -ldflags "-X main.gitCommit=4fc53a81fb7c994640722ac585fa9ca548971871 -X main.version=1.0.0-rc5 " -tags "seccomp" -o runc . go build: when using gccgo toolchain, please pass linker flags using -gccgoflags, not -ldflags # _/tmp/SBo/runc-1.0.0-rc5 /usr/bin/ld: $WORK/b001/_pkg1_.a(_cgo_defun.o): relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: $WORK/b001/_pkg2_.a(_cgo_defun.o): relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: $WORK/b001/_pkg3_.a(_cgo_defun.o): relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: $WORK/b001/_pkg4_.a(_cgo_defun.o): relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: $WORK/b001/_pkg5_.a(_cgo_defun.o): relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: final link failed: nonrepresentable section on output collect2: error: ld returned 1 exit status make: *** [Makefile:30: runc] Error 2
Posted 11-11-2018 at 06:57 AM by igadoter