aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-02-04cpt-alternatives: use getoptions parser so that global options are recognizedmerakor
FossilOrigin-Name: 1cb9a4e4a9b69ba0dd91f48ff1100587dc6ffb9b9fed7e060f838672f1294473
2021-02-04cpt-lib: disable faulty shellcheck error on older versionsmerakor
FossilOrigin-Name: 240daa9617936e7676d568290a1660a01262ec50571d7431b1ca60735aab6634
2021-02-04cpt: switch back to 'make'merakor
FossilOrigin-Name: 048c099fa4155f31725c51c27b09359d7b04f4c2d7e64f2a2b381ab7dea7803d
2021-02-04pkg_extract(): Add support for pax and add new methodsmerakor
Even though we had a portable extraction method for tarballs, this slowed down the extraction immensely. I have added 2 new methods for tarball extraction so that we have faster extraction speeds based on the system tar implementation. Here are the options with the order of preference: - pax: Although an uncommon program, pax is defined by POSIX, and supports regular expressions, meaning that we can 'strip' components. This is slightly faster than bsdtar and GNU tar. - bsdtar/gnutar: We simply use '--strip-components 1' for these tar implementations. - tar: This is the portable method we had been using for a while, it's good, gets the job done, but it is slower. Here is also a little benchmarking I did by extracting the Linux tarball for 10 times per method. tarball=$CPT_CACHE/sources/linux-headers/linux-5.10.12.tar.xz for extract in pax bsdtar tar; do time sh -c ". cpt-lib extract=$extract for i in \$(seq 10); do mkdir -p hdr; cd hdr; tar_extract \"$tarball\"; cd ..; rm -rf hdr done" done This yields the following output, methods are as ordered above: sh -c 75.21s user 11.11s system 115% cpu 1:14.90 total sh -c 78.68s user 14.64s system 124% cpu 1:15.15 total sh -c 99.88s user 69.99s system 119% cpu 2:21.70 total FossilOrigin-Name: 45e3a9a03e7eff9b30b0e911d68d44068e8681ebf4501f271c8a686118f29243
2021-02-04pkg_find(): break early if only a single match is requestedmerakor
FossilOrigin-Name: ff26aa326167c4751040d86e06e298ac11b4ed7923b729ed3940e881bdc24124
2021-02-04getoptions: update to 2.5.0 of the librarymerakor
FossilOrigin-Name: 536a4979e768c7b605a393251f0468a878e46a23b554045049b7404072b5258b
2021-02-04cpt-search: add option to ignore package databasemerakor
FossilOrigin-Name: a7f5ddfe5f7fdc9ea329ed8175c3ad237e7a7460bcbb3de4855d2af3f233176b
2021-01-05pkg_build(): create package directories manuallymerakor
This ensures that we create the needed directories regardless of pkg_extract() FossilOrigin-Name: c7c7c11246aeb74343f06e1d5d53ea9ad4cab2f4153d745cb00ae0c62f51b048
2021-01-05cpt: add 'cbi' shortcut for checksum, build, and installmerakor
FossilOrigin-Name: a77a19063999297dfeb45dd725cb78dea0482030571dba0a34ae79b02e1c99fd
2021-01-05run_hook(): store and release the CPT_HOOK variablemerakor
FossilOrigin-Name: 4bd8dc7830c8308c31510e5624550b1cf39df1401b4091a5bb80a2e24e109a30
2021-01-04cpt-download: exit with success on usagemerakor
FossilOrigin-Name: aae19d6384369835236023c30bfb54d24e9bf4021ff8d6fa10dbed8611419229
2021-01-04cpt-checksum: exit with success on usagemerakor
FossilOrigin-Name: 81b5d4e8c446aa4e4df789882bb5900d9636f4e5f6e9206e01ed42dfce946ad0
2021-01-04cpt-alternatives: exit with success on usagemerakor
FossilOrigin-Name: ec9c5047e0bd1ef84104e66206db9a44e1b1e519f60519011c92b5c4e8e03657
2021-01-04Merge branch '5.1.x'merakor
FossilOrigin-Name: 035deb0250c22e7feafad486f8f2b1a40893ad87073c8e41ba4bdc0db0d23d62
2021-01-04pkg_swap(): fix swap regular expressionmerakor
This bug caused swapping prefix files to malfunction on manifest files. Example: swapping redo caused redo-* files to be swapped on the manifest with the name 'redo' without actually moving the files to the alternatives directory either. FossilOrigin-Name: 5966d079397154246173b94f53de83212c20edeb53f75089092cec352e6316f4
2021-01-04pkg_get_base: fix shellcheck error on older versionsmerakor
Just so you know, the error is due to a bug on the older versions, but we still don't want checks to fail because of it. Installing newer versions of shellcheck takes too long on test containers that I am okay with fixing a faulty error. FossilOrigin-Name: 179ced7baf35e7eace835e1f7903ce72d2249e7ec6c809cfdd92ba7aa14b2517
2021-01-04pkg_get_base(): Return with success if cpt-base doesn't existmerakor
FossilOrigin-Name: cc958373d206ec3dd65008461a715120b25f05772b9a2d70539b3a53839569c2
2021-01-03pkg_gentree(): add function to generate a dependency graphmerakor
FossilOrigin-Name: e56971ac89f4a4e1c3efd62dad13b3a1c43bc6266c2803600995954cb61ee6cd
2021-01-03pkg_get_base(): add function to print the packages defined in /etc/cpt-basemerakor
FossilOrigin-Name: f282158e981153846bc1aca83263de583403dd78444435cb139a7f25e6658c4e
2021-01-03sepchar(): add function to seperate characters on given stringmerakor
FossilOrigin-Name: 3c44de3bfd6fbf69658371b2d8cd4d30043dd6f9b568c43ab30291925ebc582e
2021-01-03_seq(): add function to print numbers sequentiallymerakor
FossilOrigin-Name: e512f7d12e12c16fe109cfdf642361bb46ba594273ecacd93531c0ddfb144a8e
2021-01-03as_root(): add `sls` to accepted root toolsmerakor
FossilOrigin-Name: ca05dfca6f8529b23647ddac4e9d7d3317c4508ee15045e60a4eac63787a04b7
2020-12-30cpt-install|cpt-remove: fix faulty CPT_PATHmerakor
FossilOrigin-Name: 47fe062d11c48e1cc51d6a2a4d6e3e4d54524e27281dc18ef69ec71f3bd9bcb4
2020-12-30cpt-build: fix faulty CPT_PATH settingmerakor
FossilOrigin-Name: e34f2e3bf42cdfa6bdc94ffafbf1c7d58bc2a377608549e70c7b8bc426592272
2020-12-27cpt: print docstrings using awk instead of sedmerakor
Using awk, we can achieve the following things: - Ignore the rest of the file (2 times faster than sed) - If the line doesn't match the docstring pattern, we can just print a newline instead. I am not exactly really familiar with awk scripting so there might be a better way of doing this. In that case please send a patch and I will apply it. FossilOrigin-Name: bf65db74ad6552bb374f3535ef2a5333bbc0dc3d20563ec37e821036e07f621f
2020-12-24cpt: do not track info directory pagesmerakor
FossilOrigin-Name: 63e4717d7cc2790f055d562b165fb7ada2a6a34760078c2d178027fae28034b2
2020-12-24lib.rc: move helper functions to a seperate filemerakor
In order to avoid confusion, I have moved helper functions to lib.rc from the config.rc file. FossilOrigin-Name: a51d7fa1235547b1f948eae9cd55ddf3ae365d56364eaa2644b16113ea8dd979
2020-12-21cpt-lib: add ability to be used as a scriptmerakor
- cpt script no longer ignores anything. - If cpt-lib is invoked from the command-line, it parses the given command-line arguments, making it possible to be used as a script. FossilOrigin-Name: 8484d0ff082d03f38fa41d7a5e76c21bfdd5951b6db5193bb4a7f17e74a5025e
2020-12-21cpt: remove cpt-stat and cpt-readlink, add _stat() and _readlinkfmerakor
cpt-readlink and cpt-stat were unnecessary additions for mundane tasks. Since they were binaries instead of scripts, they added an extra layer of complexity to the library. These functions are now included inside the package manager library with the names _readlinkf() and _stat(). FossilOrigin-Name: 7e15e2b57ddcb834c4286c8d1ac0a28031ae4f5d39f3c6a99f5b3aa0e9a83d43
2020-12-21tests: calm shellcheck downmerakor
FossilOrigin-Name: 16695158bf8e9ce16fb245dd3d71c44b3678892cbc7e8cd7ca221ce7d4c48823
2020-12-21Merge branch 'master' into redoredomerakor
FossilOrigin-Name: 242ef9adb08b706d0d45a500ef95aaa32860e4119cb1715a981c9a87c5f29843
2020-12-21create_cache(): new variable and argument changesmerakor
- If an argument is supplied to create_cache(), it will not create the default subdirectories (build/pkg/export). - create_cache() now also globally sets the $tmp_dir variable, which is the default directory + $pid variable Changes above do not affect the previous usage of the function, so it is not considered a breaking change. FossilOrigin-Name: 2eb5bc89e2e1c688186667af0d5177a1cdc3dc2e83e28e134752955c68a5c4e0
2020-12-20src: be more specific for calling shellcheck on scriptsmerakor
FossilOrigin-Name: fbdd6c240bc5eae6522926ccb776cd79ab87c1f2e422fd4f15ba8c23fbbbe5b4
2020-12-20src: remove Makefilemerakor
FossilOrigin-Name: 2b735d94662c1f120603b8077e880d07eb76f26f155e2957ce60d6057c938509
2020-12-20cpt: update redo build filesmerakor
FossilOrigin-Name: de567d5766f6af7e5659f2afbef6a566b386c63659f0f8b292f905e38b53c272
2020-12-20cpt-lib: move to cpt-lib.inmerakor
FossilOrigin-Name: ffb46492fd34c44bd9d422c3e5febec38f8938901d339e5f952cac5c91274ee7
2020-12-20cpt-lib: fix a bug in pkg_clean when CPT_DEBUG was set5.1.1merakor
Because of the CPT_DEBUG check returning 1, it would skip the termination, meaning that even the package has failed, it will create the tarball and exit with success. FossilOrigin-Name: ce2337ddaa89f4a9928018ad325e6c7eac71ffb639ad55ad8e8bc97547f9a59b
2020-11-24cpt: bump to 5.1.05.1.0merakor
FossilOrigin-Name: 61286170f1581e6b6af180d0de2ebef9b900e3a693921d5966f66c7d619a4485
2020-11-24lib: make cache more readable and fix removing of temporary filesmerakor
- Move the conflict and temporary manifest files inside the process directory. Instead of naming them 'c' and 'm', name them 'conflict' and 'manifest' respectively. - Remove the process directory entirely. FossilOrigin-Name: 27077d44b5863954d0d25b39a49c00d22ac074436afd764095ef06703407bf53
2020-11-24pkg_swap(): use pkg_owner()merakor
FossilOrigin-Name: e37239871c297b73bf3c08d31fa0ec93d9581939e65771e970933adfcfad83a9
2020-11-24pkg_build(): generate manifest before the dependencies are fixed.merakor
FossilOrigin-Name: 2bf2c63be602059ad077171016c46e1e880920c6085e75dd6c1f9a82fa515153
2020-11-11create_cache(): create multi-level temporary directories per processmerakor
FossilOrigin-Name: 89e024bc50ae14880135de6279580f2e9da3a1e2dcb58fc43f83a9f012bdb060
2020-11-09cpt-lib: don't make main() a function unto itselfmerakor
FossilOrigin-Name: 3f01d4659d9f4e7488387436153fc9a20723b40f28515c5020172a83eb88128b
2020-11-09getoptions(): parse the options during main() call on cpt-libmerakor
Calling parse() after cpt-lib has been called causes sys_db to be initiated using the wrong CPT_ROOT, among other issues. By calling the option parser during the main(), we make sure that the options parsed are used as soon as possible. FossilOrigin-Name: 2933b99bec8ec9c3f20143e2a19c270a6d208f723d2b394c625cbc13d2625326
2020-11-03cpt-lib: fix shellcheck errormerakor
FossilOrigin-Name: 9b88780f4576b44b7578dd7758f8c2a967d11ff6a86566c08dd5b4ccf04f2309
2020-11-03cpt-search: add '--others' optionmerakor
If cpt-search was called from a package directory, adding the '-o' option makes it output only the other instances of the package. FossilOrigin-Name: edf17ee77fb06aecbc6d409d49390aea2719af012ca8be2b7daf1dbda88da269
2020-10-31src: update parser definitionsmerakor
FossilOrigin-Name: 8f46944f81271ff851a5d21bfbaa21ad86f8cf120ef22bf8f9a64ecd3f339eb3
2020-10-31getoptions: update to 2.0.1merakor
FossilOrigin-Name: cdbd1a2ac3828872b8de526e0030d71efbe2ff2a43f62ad05a2bbbe9eab229f6
2020-10-25cpt-lib (pkg_fixdeps): rename to pkg_fix_deps and major changes:merakor
Following the changes on kiss, pkg_fixdeps has been renamed to pkg_fix_deps and added readelf support. Readelf is a much better solution for checking dependencies as it can differentiate between actual dependencies and "dependencies of dependencies". cpt will check for the tool to use in the following order: - readelf - eu-readelf - llvm-readelf - ldd CPT_ELF: This new variable can be used to force a specific tool, such as ldd, or a specific readelf program. Other changes include: - The function no longer prints found dependencies - It checks for the dependencies on the current manifest first, and skips if they have been found on the package. - The function now uses the pkg_owns() for finding packages FossilOrigin-Name: 42927fcc2cd7f588be2658c506773b9be22f2b268e0999903ce1a84c65f7b5ec
2020-10-25pkg_owner(): add function to retrieve the owning package of a filemerakor
This function is almost identical to the function with the same name on kiss. However, instead of saving the owner on a global variable, the function prints the owning package to the standard output. The function can be called similar to grep. The usage is: pkg_owner GREP_FLAGS FILE_TO_CHECK MANIFEST_LOCATIONS... If no manifest is specified, the function will use every installed package on the system database. FossilOrigin-Name: 53cbeff7a92850efd172960f12848885961655c9c53e24a5f8cb8da7642ce541