Package Details: pacman-utils 1.0.1-1

Git Clone URL: https://aur.archlinux.org/pacman-utils.git (read-only)
Package Base: pacman-utils
Description: Some utils and helper scripts for archlinux packages
Upstream URL: https://github.com/kata198/pacman-utils
Licenses: Apache
Submitter: kata198
Maintainer: kata198
Last Packager: kata198
Votes: 2
Popularity: 0.006521
First Submitted: 2017-06-04 05:37
Last Updated: 2018-04-18 00:58

Latest Comments

kata198 commented on 2017-06-04 09:41

This package contains all the executables associated with pacman-utils.

If you check the github page, the bottom section deals with my simplified system for PGO (Profiled-Guided optimization), which requires install_extras.sh to be executed. This is NOT packaged, you will manually need to clone the repo and install to perform those steps. but it's well worth it

I get 50% speed improvement on "redis" just running the redis tests, stopping the redis server and running it as my user, and running through the benchmarks a few times (tweaking to enable pipelines, different sizes, etc).

I get similar improvements from PGO-rebuilding the various compression programs.

Otherwise, you can expect 10-30% average improvement, often with worst-case slowpaths becoming HOT HOT HOT.

Please checkout the github page, README at the bottom for more information on doing this with your system. We used to have "srcpac", but it seems to have died, and didn't always work anyway (nor did it support PGO out-of-the-box... my solution comes close, requires a 1-line manual addition, doing the profiling itself, and running 1 command to save-off the results for use). Check it out!

Since "source" works from within /etc/makepkg.conf, I will consider a "patch" solution.

Maybe update to core: We could create a /etc/makepkg.conf.d and source all .conf files in that directory, which would simply allow PKGBUILD extensions like I have written.


Enjoy!

kata198 commented on 2017-06-04 09:36

Provides, among other things (all listed on github page):

whatprovides_upstream - Query all available packages for what provides a given file or glob expression.

This is similar to 'yum --whatprovides' which is the ONLY feature of yum that Pacman really needs.


Example:

[tim ~]$ whatprovides_upstream '*/libc.so.6'
glibc /usr/lib/libc.so.6
aarch64-linux-gnu-glibc /usr/aarch64-linux-gnu/lib/libc.so.6
openstack-guest-agents-unix /usr/share/nova-agent/1.39.1/lib/libc.so.6
lib32-glibc /usr/lib32/libc.so.6

[tim ~]$ whatprovides_upstream `which ls`
coreutils


There is also a "whatprovides" that works against the local database, which is the ONLY mode that pacman supports native.

Please install pacman-utils-data ( https://aur.archlinux.org/packages/pacman-utils-data/ ) to get the providesDB file which whatprovides_upstream uses.


ARCHLINUX CORE DEVELOPERS: Please contact me and let's work out a process for the various mirrors to run a cron job (or maybe just the core processes and rsyncs it out) which will generate this database. This information is all extracted from the .MTREE file (extractMtree.py - found herein downloads the first 200K from every package to find .MTREE (and 98% of the time is successful), but otherwise has to download the full package. After providesDB is generated, it only then updates NEW (or with flag, DIFFERENT) packages, which means each update averages only 10MB of traffic per mirror (using 6 mirrors).

It would be much better if this could be incorporated into pacman itself, and the various mirrors generate their own providesDB, such that pacman -Sy downloads and you see a representation of what is available on the current mirror.

Contact me if interested and I can provide coding for such, if we can generate it on the main and sync out, or get buyin to run cron jobs on mirrors themselves (better to generate-and-sync).