Git Product home page Git Product logo

xbps's Introduction

Packaging status

Tests CodeQL Coverity Scan Build Status

XBPS

The X Binary Package System (in short XBPS) is a binary package system designed and implemented from scratch. Its goal is to be fast, easy to use, bug-free, featureful and portable as much as possible.

The XBPS code is totally compatible with POSIX/SUSv2/C99 standards, and released with a Simplified BSD license (2 clause). There is a well documented API provided by the XBPS Library that is the basis for its frontends to handle binary packages and repositories. Some highlights:

  • Supports multiple local/remote repositories (HTTP/HTTPS/FTP).
  • RSA signed remote repositories (NEW in 0.27).
  • Supports multiple compression formats for repositories: gzip (zlib), bzip2, lz4, xz, zstd (default).
  • Supports multiple compression formats for package archives: gzip (zlib), bzip2, lz4, xz, zstd (default).
  • SHA256 hashes for package metadata, files and binary packages.
  • Supports package states (ala dpkg) to mitigate broken package installs/updates.
  • Ability to resume partial package install/updates.
  • Ability to unpack only files that have been modified in package updates.
  • Ability to use virtual packages.
  • Ability to ignore completely any number of packages in dependency resolution.
  • Ability to check for incompatible shared libraries in reverse dependencies.
  • Ability to update reverse dependencies of any number of packages or globally in a single transaction.
  • Ability to replace packages.
  • Ability to put packages on hold (to never update them. NEW in 0.16).
  • Ability to preserve/update configuration files.
  • Ability to force reinstallation of any installed package.
  • Ability to downgrade any installed package.
  • Ability to execute pre/post install/remove/update scriptlets.
  • Ability to check package integrity: missing files, hashes, missing or unresolved (reverse)dependencies, dangling or modified symlinks, etc.

XBPS contains an almost complete test suite, currently with ~200 test cases, and its number is growing daily! If you find any issue and you can reproduce it, we will fix it and a new test case will be created. No more regressions!

XBPS is brought to you by:

and many other contributors in the free community that have helped improving it. See the AUTHORS file for a complete list of contributors.

Thanks to all who have contributed.

Build requirements

To build this you'll need:

and optionally:

Building and testing for dummies

$ git clone https://github.com/void-linux/xbps
$ cd xbps
$ ./configure --enable-rpath --prefix=/usr --sysconfdir=/etc
$ make -j$(nproc)
$ make DESTDIR=~/xbps-git install clean
$ export PATH=~/xbps-git/usr/bin:$PATH
$ xbps-query -V
...

Thanks to --enable-rpath you can install it anywhere and it will still use the libxbps shared library at $ORIGIN/../lib, that means that if xbps is installed to $HOME/xbps-git/usr, the executables will use $HOME/xbps-git/usr/lib to locate libxbps.

Happy testing!

Tests

To run the test suite make sure kyua is installed and run the following:

$ ./configure --enable-tests
$ make
$ make check

Build instructions

Standard configure script (not generated by GNU autoconf).

$ ./configure --prefix=/blah
$ make -jX
$ make install

By default PREFIX is set /usr/local and may be changed by setting --prefix in the configure script. The DESTDIR variable is also supported at the install stage.

There are some more options that can be tweaked, see them with ./configure --help.

Good luck!

Binaries

Binaries for Linux compiled statically with the musl C library are available:

These builds are available on all official void mirrors, along with their sha256 checksums.

Usage instructions

The xbps package includes the following utilities (among others, not a complete list):

  • xbps-create (1) - XBPS utility to create binary packages
  • xbps-dgraph (1) - XBPS utility to generate dot(1) graphs
  • xbps-install (1) - XBPS utility to install and update packages
  • xbps-pkgdb (1) - XBPS utility to report and fix issues in pkgdb
  • xbps-query (1) - XBPS utility to query for package and repository information
  • xbps-reconfigure (1) - XBPS utility to configure installed packages
  • xbps-remove (1) - XBPS utility to remove packages
  • xbps-rindex (1) - XBPS utility to handle local binary package repositories

In the following sections there will be a brief description of how these utilities currently work.

Package expressions

In the following examples there will be commands accepting an argument such as <package expression>. A package expression is a form to match a pattern; currently XBPS >= 0.19 supports 3 ways to specify them:

  • by specifying a package name, i.e foo.

  • by specifying the exact package name and version, i.e foo-1.0_1.

  • by specifying a package name and version separated by any of the following version comparators:

    • < less than
    • > greater than
    • <= less than or equal to
    • >= greater than or equal to

    Such example would be foo>=2.0 or blah-foo<=1.0.

Repositories

Repositories can be declared in a configuration file of the configuration or system configuration directories:

  • <sysconfdir>/xbps.d - The configuration directory (set to /etc/xbps.d)
  • <sharedir>/xbps.d - The system directory (set to /usr/share/xbps.d)

A configuration file bearing the same filename in /etc/xbps.d overrides the one from <sharedir>/xbps.d. By default the XBPS package provides only the main Void repository in the /usr/share/xbps.d/00-repository-main.conf file.

Additional repositories can be added by installing any of the following XBPS packages or creating new configuration files manually:

$ xbps-query -Rs void-repo
[*] void-repo-debug-3_1            Void Linux drop-in file for the debug repository
[*] void-repo-multilib-3_1         Void Linux drop-in file for the multilib repository
[*] void-repo-multilib-nonfree-3_1 Void Linux drop-in file for the multilib/nonfree repository
[*] void-repo-nonfree-3_1          Void Linux drop-in file for the nonfree repository
$

Repositories specified in the configuration directory are added to the head of the list, while repositories specified via system configuration directories are appended to the existing list.

If no repositories are found it's possible to declare them manually via the command line option --repository, currently accepted in xbps-install(1) and xbps-query(1).

xbps-query - querying packages and repositories

xbps-query(1) will try to match <package expression> in local packages. This behaviour can be changed by enabling the -R or --repository option to force repository mode.

To query the list of installed packages:

$ xbps-query -l

To query the list of working repositories:

$ xbps-query -L

To query the list of installed packages that were installed manually (not as dependencies):

$ xbps-query -m

To query the list of packages on hold (won't be upgraded automatically):

$ xbps-query -H

To query the list of installed package orphans (packages that were installed as dependencies but there is not any package currently that requires it):

$ xbps-query -O

To query a package and show its meta information:

$ xbps-query <package expression>

Additionally the -p or --property option can be used to only show a specific key of a package:

$ xbps-query --property=pkgver xbps
xbps-0.19_1
$

Multiple properties can be specified by delimiting them with commas, i.e -p key,key2.

To query a package and show its file list:

$ xbps-query -f <package expression>

To query a package and show required run-time dependencies:

$ xbps-query -x <package expression>

To query a package and show required reverse run-time dependencies:

$ xbps-query -X <package expression>

To query for packages matching a file with specified pattern(s) (ownedby mode):

$ xbps-query -o <pattern>

Where <pattern> is a shell wildcard pattern as explained in fnmatch(3); e.g "*.png".

Multiple <patterns> can be specified as arguments.

To query for packages matching pkgname/version/description with specified pattern(s) (search mode):

$ xbps-query -s <pattern>

The same rules explained above in the ownedby mode shall be applied.

xbps-install - installing and updating packages

To synchronize remote repository index files:

$ xbps-install -S

The -S, --sync option can be combined while installing or updating packages, i.e xbps-install -Su.

To install a package:

$ xbps-install <package expression>

To install multiple packages at once:

$ xbps-install <package expression> <package expressions>

To update a single package:

$ xbps-install -u <package expression>

To update all packages (also known as dist-upgrade in Debian/Ubuntu):

$ xbps-install -u

The -n, --dry-run option can be used to print what packages will be updated and/or installed and doesn't need permissions in the target rootdir, which can be useful to list updates.

xbps-remove - removing packages

To remove a package:

$ xbps-remove <package name>

To recursively remove unneeded dependencies that were installed by the target package:

$ xbps-remove -R <package name>

To remove package orphans:

$ xbps-remove -o

To clean the cache directory and remove outdated packages and/or packages with wrong hash:

$ xbps-remove -O

To remove package orphans and clean the cache repository both options can be combined, i.e xbps-remove -Oo.

xbps-reconfigure - configure (or force configuration of) a package

The xbps-reconfigure(1) utility may be used to configure packages that were not previously (perhaps due to a power outage, process killed, etc) or simply to force package reconfiguration. By default and unless the -f, --force option is set, only packages that were not configured will be processed.

Its usage is simple, specify a package name or -a, --all for all packages:

$ xbps-reconfigure [-f] <package name> | -a

xbps-pkgdb - checking for errors in packages and pkgdb

The xbps-pkgdb(1) utility may be used to check for errors in packages and in the package database. It is also used to update the package database format (if there have been changes). It works exactly the same way as xbps-reconfigure(1) and expects a package name or -a, --all for all packages.

$ xbps-pkgdb <package name> | -a

To put a package on hold mode (won't be upgraded in dist-upgrade mode):

$ xbps-pkgdb -m hold <package name>

To remove a package from hold mode:

$ xbps-pkgdb -m unhold <package name>

To put a package in automatic mode (as it were installed as a dependency):

$ xbps-pkgdb -m auto <package name>

To put a package in manual mode (won't be detected as orphan):

$ xbps-pkgdb -m manual <package name>

To update the pkgdb format to the latest one:

$ xbps-pkgdb -u

NOTE: updating the pkgdb format does not happen too frequently, therefore it's only necessary in rare circumstances.

xbps-rindex - Create, update and administer local repositories

This command only has 3 operation modes:

  • Add [-a, --all]: adds the specified packages into the specified repository and removes previous entry if found:

     $ xbps-rindex -a /path/to/repository/*.xbps
    

The -f, --force option can be used to forcefully register a package into the repository index, even if the same version is already registered.

  • Clean [-c, --clean]: cleans the index of the specified repository by removing outdated or invalid entries (nonexistent packages, unmatched hashes, etc):

     $ xbps-rindex -c /path/to/repository
    
  • Remove-obsoletes [-r, --remove-obsoletes]: removes obsolete packages in repository (outdated, broken and unmatched hashes):

     $ xbps-rindex -r /path/to/repository
    

Examples

Upgrade all packages in the system, without asking for an answer:

# xbps-install -Syu

Clean the cache directory and remove package orphans:

# xbps-remove -Oo

Show information of a package available in repositories:

$ xbps-query -R xbps

Show filelist of a package available in repositories:

$ xbps-query -Rf xbps

Find the packages that own the file /bin/ls in repositories:

$ xbps-query -Ro /bin/ls

Make a package keepable (won't be detected as orphan):

# xbps-pkgdb -m manual xbps

Search for packages in repositories matching the xbps pattern in its pkgver and short_desc objects:

$ xbps-query -Rs xbps

Remove a package and all unnecessary dependencies that were installed:

# xbps-remove -R xbmc

Appending repositories via command line:

$ xbps-query --repository=<url> ...
# xbps-install --repository=<url> ...

Switch an installed package to on hold mode (won't be updated via xbps-install -u):

# xbps-pkgdb -m hold <pkgname>

Switch an installed package to the unhold mode (will be updated if there are updates):

# xbps-pkgdb -m unhold <pkgname>

Check for errors on installed packages and in pkgdb:

# xbps-pkgdb -a

Listing all files not managed by xbps:

#!/bin/sh

tmp=$(mktemp -dt xbps-disownedXXXXXX)
pkg=$tmp/pkg
fs=$tmp/fs

trap "rm -rf $tmp" EXIT

xbps-query -o \* | cut -d ' ' -f2 | sort > $pkg
find /boot /etc /opt /usr /var -xdev -type f -print | sort > $fs

comm -23 $fs $pkg

xbps's People

Contributors

andkem avatar bobertlo avatar chocimier avatar classabbyamp avatar duncaen avatar ebfe avatar eli-schwartz avatar ericonr avatar flexibeast avatar foxlet avatar fvalasiad avatar giedriuss avatar gottox avatar huglovefan avatar jgouly avatar jnbr avatar leahneukirchen avatar mbarbar avatar meator avatar ncopa avatar oopsbagel avatar paper42 avatar piraty avatar q66 avatar roman-neuhauser avatar sgn avatar stpx avatar uggedal avatar vaelatern avatar wqer555 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xbps's Issues

xbps-install fails to update itslef when {lib,}xbps-dbg is installed

sudo xbps-install -Su
[*] Updating `https://alpha.de.repo.voidlinux.org/current/x86_64-repodata' ...
x86_64-repodata: 1811KB [avg rate: 66GB/s]
[*] Updating `https://alpha.de.repo.voidlinux.org/current/debug/x86_64-repodata' ...
x86_64-repodata: 774KB [avg rate: 27GB/s]
[*] Updating `https://alpha.de.repo.voidlinux.org/current/nonfree/x86_64-repodata' ...
x86_64-repodata: 15KB [avg rate: 402MB/s]
libxbps-0.53_9 (update) breaks installed pkg `libxbps-dbg-0.53_8'
xbps-0.53_9 (update) breaks installed pkg `xbps-dbg-0.53_8'
Transaction aborted due to unresolved dependencies.

it seems like xbps behavior to only update itself first breaks updating when xbps debug packages are installed.

See: https://github.com/voidlinux/xbps/issues/285

xbps-install does not respect XBPS_ARCH

In trying to install musl-void to an alternate partition of my computer, I have tried the command
XBPS_ARCH=x86_64-musl xbps-install -S -R http://repo.voidlinux.eu/current/musl -r /mnt
and gives the output
[*] Updating 'http://repo.voidlinux.eu/current/musl/x86_64-repodata' ... ERROR: [reposync] failed to fetch file 'http://repo.voidlinux.eu/current/musl/x86_64-repodata': Not Found

Despite setting XBPS_ARCH, xbps-install is stubbornly using my local install's settings. The only relating issue I can find is on the pre-migrated xbps https://github.com/voidlinux/xbps/issues/69, but this talks about changing settings in xbps.d, which can't be done until a base system has been installed. If this is expected behavior, then the manpage is a little misleading...

virtualpkg: mapping an existing package to base-system can get base-system removed

System

  • xuname: Void 4.18.13_1 x86_64-musl GenuineIntel/KVM notuptodate rF
  • package xbps-0.53_7

Background

With the goal to evade some unwanted packages that would be pulled as a dependency by other packages, this file is present on my system:

cat /etc/xbps.d/openresolv.conf 
# don't let wireguard pull openresolv
virtualpkg=openresolv:base-system

As mentioned in the NEWS, xbps allows

to map any pkg to another, even if there's an existing real package

The example mentions virtualpkg=wifi-firmware:base-system, see 2976527

Issue

What in fact happens (and had happened to me already in the past) in case of a system-update, is that base-system gets marked as "remove" and the virtualpkgs will get installed, with the high risk of being left with a broken system afterwards, especially if orphans are cleaned too uncarefully...

$ sudo xbps-install -Su
Password: 
[*] Updating `https://alpha.de.repo.voidlinux.org/current/musl/x86_64-musl-repodata' ...

Name            Action    Version           New version            Download size
base-system     remove    0.112_3           -                      - 
openresolv      install   -                 3.9.0_1                - 
wireguard-tools update    0.0.20181007_1    0.0.20181018_1         40KB 

Size to download:               40KB
Size required on disk:         103KB
Space available on disk:      2603MB

Do you want to continue? [Y/n]

Debug log

Below you find the output of an xi -Su --verbose --debug. (It has been shortened, otherwise it would have had 2000 lines)

$ sudo xbps-install -Su -v -d
Password: 
[DEBUG] XBPS: 0.53 API: 20180730 GIT: UNSET
[DEBUG] Processing configuration directory: /etc/xbps.d
[DEBUG] Parsing configuration file: /etc/xbps.d/openresolv.conf
[DEBUG] /etc/xbps.d/openresolv.conf: added virtualpkg openresolv for base-system
[DEBUG] Processing system configuration directory: /usr/share/xbps.d
[DEBUG] Parsing configuration file: /usr/share/xbps.d/00-repository-main.conf
<...>
[DEBUG] [repo] `https://alpha.de.repo.voidlinux.org/current/musl' stored successfully
[DEBUG] /usr/share/xbps.d/00-repository-main.conf: added repository https://alpha.de.repo.voidlinux.org/current/musl
[DEBUG] Parsing configuration file: /usr/share/xbps.d/musl-arch.conf
[DEBUG] /usr/share/xbps.d/musl-arch.conf: native architecture set to x86_64-musl
[DEBUG] Parsing configuration file: /usr/share/xbps.d/void-virtualpkgs.conf
[DEBUG] /usr/share/xbps.d/void-virtualpkgs.conf: added virtualpkg awk for gawk
[DEBUG] /usr/share/xbps.d/void-virtualpkgs.conf: added virtualpkg cron-daemon for dcron
[DEBUG] /usr/share/xbps.d/void-virtualpkgs.conf: added virtualpkg editor for nvi
[DEBUG] /usr/share/xbps.d/void-virtualpkgs.conf: added virtualpkg man for openbsd-man
[DEBUG] /usr/share/xbps.d/void-virtualpkgs.conf: added virtualpkg ntp-daemon for openntpd
[DEBUG] /usr/share/xbps.d/void-virtualpkgs.conf: added virtualpkg openssl for libressl-openssl
[DEBUG] /usr/share/xbps.d/void-virtualpkgs.conf: added virtualpkg shell for dash
[DEBUG] /usr/share/xbps.d/void-virtualpkgs.conf: added virtualpkg smtp-server for opensmtpd
[DEBUG] Parsing configuration file: /usr/share/xbps.d/xbps.conf
[DEBUG] rootdir=/
[DEBUG] metadir=//var/db/xbps
[DEBUG] cachedir=/var/cache/xbps
[DEBUG] confdir=/etc/xbps.d
[DEBUG] sysconfdir=/usr/share/xbps.d
[DEBUG] syslog=true
[DEBUG] bestmatching=false
[DEBUG] Architecture: x86_64-musl
[DEBUG] Target Architecture: (null)
[DEBUG] Repository[0]=https://alpha.de.repo.voidlinux.org/current/musl
[*] Updating `https://alpha.de.repo.voidlinux.org/current/musl/x86_64-musl-repodata' ...
[DEBUG] st.st_size: 1621106
[DEBUG] st.st_atime: 19 Oct 2018 14:58
[DEBUG] st.st_mtime: 19 Oct 2018 14:58
[DEBUG] url_stat.size: -1
[DEBUG] url_stat.atime: 19 Oct 2018 14:58
[DEBUG] url_stat.mtime: 19 Oct 2018 14:58
[DEBUG] [rpool] `https://alpha.de.repo.voidlinux.org/current/musl' registered.
[DEBUG] [repo] `https://alpha.de.repo.voidlinux.org/current/musl' public key already stored.
[DEBUG] [pkgdb] added vpkg cron-daemon-0_1 for cronie
[DEBUG] [pkgdb] added vpkg libudev-220_2 for eudev-libudev
[DEBUG] [pkgdb] added vpkg awk-0_1 for gawk
[DEBUG] [pkgdb] added vpkg jpeg-8_1 for libjpeg-turbo
[DEBUG] [pkgdb] added vpkg openssl-2.7.4_1 for libressl
[DEBUG] [pkgdb] added vpkg man-0_1 for mdocml
[DEBUG] [pkgdb] added vpkg perl-Archive-Tar-2.30_1 for perl
[DEBUG] [pkgdb] added vpkg perl-Attribute-Handlers-1.01_1 for perl
[DEBUG] [pkgdb] added vpkg perl-AutoLoader-5.74_1 for perl
<...>
[DEBUG] [pkgdb] added vpkg perl-threads-shared-1.58_1 for perl
[DEBUG] [pkgdb] added vpkg perl-version-0.9923_1 for perl
[DEBUG] [pkgdb] added vpkg eject-2.32.1_1 for util-linux
[DEBUG] [pkgdb] added vpkg rfkill-2.32.1_1 for util-linux
[DEBUG] [pkgdb] initialized ok.
[DEBUG] [rpool] Skipping `xbps-0.53_7' (installed: xbps-0.53_7) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `LuaJIT-2.0.5_2' (installed: LuaJIT-2.0.5_2) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `acl-2.2.53_1' (installed: acl-2.2.53_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `acpid-2.0.30_1' (installed: acpid-2.0.30_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
<...>
[DEBUG] [rpool] Skipping `wayland-1.16.0_1' (installed: wayland-1.16.0_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `which-2.21_3' (installed: which-2.21_3) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `wifi-firmware-1.3_1' (installed: wifi-firmware-1.3_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `wireguard-0.0.20181018_1' (installed: wireguard-0.0.20181018_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
Found wireguard-tools-0.0.20181018_1 (update) in repository https://alpha.de.repo.voidlinux.org/current/musl
[DEBUG] Added `wireguard-tools-0.0.20181018_1' into the dependency list (https://alpha.de.repo.voidlinux.org/current/musl)
[DEBUG] [rpool] Skipping `wpa_supplicant-2.6_11' (installed: wpa_supplicant-2.6_11) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xbps-0.53_7' (installed: xbps-0.53_7) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xbps-triggers-0.109_1' (installed: xbps-triggers-0.109_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xcb-util-0.4.0_1' (installed: xcb-util-0.4.0_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xcb-util-image-0.4.0_1' (installed: xcb-util-image-0.4.0_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xcb-util-keysyms-0.4.0_1' (installed: xcb-util-keysyms-0.4.0_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xcb-util-renderutil-0.3.9_1' (installed: xcb-util-renderutil-0.3.9_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xcb-util-wm-0.4.1_3' (installed: xcb-util-wm-0.4.1_3) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xfsprogs-4.18.0_1' (installed: xfsprogs-4.18.0_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xkbcomp-1.4.2_1' (installed: xkbcomp-1.4.2_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xkeyboard-config-2.25_1' (installed: xkeyboard-config-2.25_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `xtools-0.52_1' (installed: xtools-0.52_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `zd1211-firmware-1.5_1' (installed: zd1211-firmware-1.5_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `zlib-1.2.11_3' (installed: zlib-1.2.11_3) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] [rpool] Skipping `zstd-1.3.6_1' (installed: zstd-1.3.6_1) from repository `https://alpha.de.repo.voidlinux.org/current/musl'
[DEBUG] Finding required dependencies for 'wireguard-tools-0.0.20181018_1':
[DEBUG] wireguard-tools-0.0.20181018_1: requires dependency 'openresolv>=0': not installed `base-system-0.112_3 (vpkg)'
Found openresolv-3.9.0_1 (install) in repository https://alpha.de.repo.voidlinux.org/current/musl
[DEBUG] Added `openresolv-3.9.0_1' into the dependency list (https://alpha.de.repo.voidlinux.org/current/musl)
[DEBUG] wireguard-tools-0.0.20181018_1: requires dependency 'libmnl>=1.0.3_1': installed `libmnl-1.0.4_1'.
[DEBUG] wireguard-tools-0.0.20181018_1: requires dependency 'musl>=0.9.9_1': installed `musl-1.1.20_1'.
[DEBUG] Package `base-system-0.112_3' will be replaced by `openresolv-3.9.0_1', matched with `openresolv>=0'
[DEBUG] LuaJIT-2.0.5_2: registering libgcc_s.so.1 for shlib-requires
[DEBUG] LuaJIT-2.0.5_2: registering libc.so for shlib-requires
[DEBUG] acl-2.2.53_1: registering libattr.so.1 for shlib-requires
[DEBUG] acl-2.2.53_1: registering libc.so for shlib-requires
[DEBUG] acpid-2.0.30_1: registering libc.so for shlib-requires
<...>
[DEBUG] zlib-1.2.11_3: registering libc.so for shlib-requires
[DEBUG] zstd-1.3.6_1: registering libz.so.1 for shlib-requires
[DEBUG] zstd-1.3.6_1: registering liblzma.so.5 for shlib-requires
[DEBUG] zstd-1.3.6_1: registering libc.so for shlib-requires
[DEBUG] zstd-1.3.6_1: registering libstdc++.so.6 for shlib-requires
[DEBUG] zstd-1.3.6_1: registering libgcc_s.so.1 for shlib-requires
[DEBUG] LuaJIT-2.0.5_2: registering libluajit-5.1.so.2 for shlib-provides
[DEBUG] acl-2.2.53_1: registering libacl.so.1 for shlib-provides
<...>
[DEBUG] xfsprogs-4.18.0_1: registering libhandle.so.1 for shlib-provides
[DEBUG] zlib-1.2.11_3: registering libz.so.1 for shlib-provides
[DEBUG] xbps_transaction_shlibs: checking for `libEGL.so.1': provided by `libEGL-18.2.2_2'
[DEBUG] xbps_transaction_shlibs: checking for `libGL.so.1': provided by `libGL-18.2.2_2'
<...>
[DEBUG] xbps_transaction_shlibs: checking for `libz.so.1': provided by `zlib-1.2.11_3'
[DEBUG] xbps_transaction_shlibs: checking for `libzstd.so.1': provided by `libzstd-1.3.6_1'

Name            Action    Version           New version            Download size
base-system     remove    0.112_3           -                      - 
openresolv      install   -                 3.9.0_1                - 
wireguard-tools update    0.0.20181007_1    0.0.20181018_1         40KB 

Size to download:               40KB
Size required on disk:         103KB
Space available on disk:      2603MB

Do you want to continue? [Y/n] n
Aborting!
[DEBUG] [pkgdb] released ok.

Kernel Panic after updating void linux

Kernel Panic after updating void linux with sudo xbps install -Su.

Update Linux 4.19.15_1 -> 4.19.42_1

Img kernel panic screen

I can still access the system normally under Linux 4.19.15_1

UP:

I've updated void linux again, and now it has upgraded to linuz-4.19.44_1 and kernel panic still occurs.

in x86_64.

repos not working

Pinging alpha.de.repo.voidlinux.org works fine:

$ ping alpha.de.repo.voidlinux.org
PING vm1.a-lej-de.m.voidlinux.org (148.251.199.112) 56(84) bytes of data.
64 bytes from build.voidlinux.eu (148.251.199.112): icmp_seq=1 ttl=53 time=36.3 ms
64 bytes from build.voidlinux.eu (148.251.199.112): icmp_seq=2 ttl=53 time=57.10 ms
64 bytes from build.voidlinux.eu (148.251.199.112): icmp_seq=3 ttl=53 time=34.9 ms
64 bytes from build.voidlinux.eu (148.251.199.112): icmp_seq=4 ttl=53 time=46.6 ms

but xbps-install is failing:

$ sudo xbps-install -Syu
[*] Updating https://alpha.de.repo.voidlinux.org/current/x86_64-repodata' ... ERROR: [reposync] failed to fetch file https://alpha.de.repo.voidlinux.org/current/x86_64-repodata': Connection timed out

Empty directories don't get removed on xbps-remove

When deinstalling a package, empty directories that were created by the package on installation are left behind.

For example, cmus leaves /usr/lib/cmus.
Another: faenza-icon-theme leaves /usr/share/icons/Faenza*.

It's not so that every directory is left behind, though. In the cmus example, /usr/share/cmus is properly cleaned up. I can't see a pattern in which case a directory is deleted and in which not.

It seems not to be package specific.

xbps-install creates wrong alternative symlinks

vim-8.1.1467_1: updating to 8.1.1551_1 ...
[DEBUG] attempting to remove vim-8.1.1551_1 state 2
Removing 'vim' alternatives group symlink: vim
vim-8.1.1467_1: unregistered 'vim' alternatives group
Switched 'vim' alternatives group to 'vim'
Creating 'vim' alternatives group symlink: vim -> /usr/bin/vim-normal
vim-8.1.1551_1: unpacking ...
[DEBUG] vim-8.1.1551_1: file ./usr/share/icons/locolor/32x32/apps/gvim.png matches existing SHA256, skipping...
[DEBUG] vim-8.1.1551_1: updated file timestamps to ./usr/share/icons/locolor/32x32/apps/gvim.png
[DEBUG] vim-8.1.1551_1: file ./usr/share/icons/locolor/16x16/apps/gvim.png matches existing SHA256, skipping...
[DEBUG] vim-8.1.1551_1: updated file timestamps to ./usr/share/icons/locolor/16x16/apps/gvim.png
[DEBUG] vim-8.1.1551_1: file ./usr/share/icons/hicolor/48x48/apps/gvim.png matches existing SHA256, skipping...
[DEBUG] vim-8.1.1551_1: updated file timestamps to ./usr/share/icons/hicolor/48x48/apps/gvim.png
vim-8.1.1551_1: unpacked file `./usr/bin/vim-normal' (2714272 bytes)
Creating 'vim' alternatives group symlink: vim -> /usr/bin/vim-normal
vim-common-8.1.1467_1: updating to 8.1.1551_1 ...
[DEBUG] attempting to remove vim-common-8.1.1551_1 state 2
vim-common-8.1.1467_1: unregistered 'vi' alternatives group
Switched 'vi' alternatives group to 'nvi'
Creating 'vi' alternatives group symlink: ex -> /usr/bin/vim
Creating 'vi' alternatives group symlink: ex.1 -> /usr/share/man/man1/vim.1
Creating 'vi' alternatives group symlink: vi -> /usr/bin/vim
Creating 'vi' alternatives group symlink: vi.1 -> /usr/share/man/man1/vim.1
Creating 'vi' alternatives group symlink: view -> /usr/bin/vim
Creating 'vi' alternatives group symlink: view.1 -> /usr/share/man/man1/vim.1
vim-common-8.1.1551_1: unpacking ...

Later xbps-pkgdb -a showed that the symlinks pointed to vim:

ERROR: nvi: alternatives group vi symlink /usr/bin/ex has wrong target.
ERROR: nvi: alternatives group vi symlink /usr/share/man/man1/ex.1 has wrong target.
ERROR: nvi: alternatives group vi symlink /usr/bin/vi has wrong target.
ERROR: nvi: alternatives group vi symlink /usr/share/man/man1/vi.1 has wrong target.
ERROR: nvi: alternatives group vi symlink /usr/bin/view has wrong target.
ERROR: nvi: alternatives group vi symlink /usr/share/man/man1/view.1 has wrong target.
$ xbps-alternatives -l -g vi
vi
 - nvi (current)
  - ex:/usr/bin/nex
  - ex.1:/usr/share/man/man1/nex.1
  - vi:/usr/bin/nvi
  - vi.1:/usr/share/man/man1/nvi.1
  - view:/usr/bin/nview
  - view.1:/usr/share/man/man1/nview.1
 - vim-common
  - ex:/usr/bin/vim
  - ex.1:/usr/share/man/man1/vim.1
  - vi:/usr/bin/vim
  - vi.1:/usr/share/man/man1/vim.1
  - view:/usr/bin/vim
  - view.1:/usr/share/man/man1/vim.1
 - busybox
  - vi:/usr/bin/busybox

I think the symlinks were correct before the update, I did run xbps-pkgdb -a before with no errors.
But I'm not sure if it pointed to nvi or vim.

xbps$ ls -lsa /usr/bin/vi /usr/bin/ex /usr/bin/vim /usr/bin/vim-normal
   0 lrwxrwxrwx  1 root  root     3B Jun 18 19:44 /usr/bin/ex@ -> vim
   0 lrwxrwxrwx  1 root  root     3B Jun 18 19:44 /usr/bin/vi@ -> vim
   0 lrwxrwxrwx  1 root  root    10B Jun 18 19:44 /usr/bin/vim@ -> vim-normal
5304 -rwxr-xr-x  1 root  root   2.6M Jun 16 22:39 /usr/bin/vim-normal*

Segfault when listing orphans or trying to remove them.

Started after i installed orca and tried to remove with -R

$ xbps-query -O
Segmentation fault
# xbps-remove -o
Segmentation fault

(gdb) run -O
Starting program: /usr/bin/xbps-query -O
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7634209 in _int_free () from /usr/lib/libc.so.6

(gdb) run -o
Starting program: /usr/bin/xbps-remove -o
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
mkversion (num=num@entry=0x5555557c8926 "2.27_1", ap=<synthetic pointer>) at external/dewey.c:190
190external/dewey.c: No such file or directory.

Build fails on Ubuntu 12.04 ppc

make[1]: Entering directory `/home/foxlet/voidppc/xbps-fox/include'
sed -e "s|@@VERSION@@|0.52|g" xbps.h.in > xbps.h
make[1]: Leaving directory `/home/foxlet/voidppc/xbps-fox/include'
make[1]: Entering directory `/home/foxlet/voidppc/xbps-fox/lib'
 [CC]           download.o
In file included from /usr/include/powerpc-linux-gnu/bits/sigcontext.h:28:0,
                 from /usr/include/powerpc-linux-gnu/sys/ucontext.h:27,
                 from /usr/include/signal.h:359,
                 from /usr/include/powerpc-linux-gnu/sys/wait.h:31,
                 from download.c:42:
/usr/include/powerpc-linux-gnu/asm/sigcontext.h:17:23: error: expected identifier or โ€˜(โ€™ before โ€˜[โ€™ token
make[1]: *** [download.o] Error 1
make[1]: Leaving directory `/home/foxlet/voidppc/xbps-fox/lib'
make: *** [all] Error 1

Seems to be an issue similar to that of voidlinux/xbps#291.

sudo xbps-remove changing dirs permissions

Hello!
I have user with umask 0077.
When I install some software and then remove it, xbps-remove change some system files permissions to 0077 too. Is it a bug?

XBPS: 0.53 API: 20180730 GIT: UNSET

[dut@candybox ~]$ ls -l /usr/share/mime/
total 308
-rw-r--r-- 1 root root   1631 Oct 16 17:21 XMLnamespaces
-rw-r--r-- 1 root root  10654 Oct 16 17:21 aliases
drwxr-xr-x 1 root root  16136 Oct 16 17:21 application
drwxr-xr-x 1 root root   1214 Oct 16 17:21 audio
drwxr-xr-x 1 root root     72 Oct 16 17:21 font
-rw-r--r-- 1 root root  17224 Oct 16 17:21 generic-icons
-rw-r--r-- 1 root root  28885 Oct 16 17:21 globs
-rw-r--r-- 1 root root  32093 Oct 16 17:21 globs2
-rw-r--r-- 1 root root     47 Oct 16 17:21 icons
drwxr-xr-x 1 root root   2412 Oct 16 17:21 image
drwxr-xr-x 1 root root    172 Oct 16 17:21 inode
-rw-r--r-- 1 root root  27574 Oct 16 17:21 magic
drwxr-xr-x 1 root root    216 Oct 16 17:21 message
-rw-r--r-- 1 root root 134876 Oct 16 17:21 mime.cache
drwxr-xr-x 1 root root     46 Oct 16 17:21 model
drwxr-xr-x 1 root root    224 Oct 16 17:21 multipart
drwxr-xr-x 1 root root     78 Oct 16 17:21 packages
-rw-r--r-- 1 root root  15907 Oct 16 17:21 subclasses
drwxr-xr-x 1 root root   3014 Oct 16 17:21 text
-rw-r--r-- 1 root root    964 Oct 16 17:21 treemagic
-rw-r--r-- 1 root root  17312 Oct 16 17:21 types
-rw-r--r-- 1 root root      5 Oct 16 17:21 version
drwxr-xr-x 1 root root    664 Oct 16 17:21 video
drwxr-xr-x 1 root root    522 Oct 16 17:21 x-content
drwxr-xr-x 1 root root     28 Oct 16 17:21 x-epoc
[dut@candybox ~]$ sudo xbps-remove -R zim

Name            Action    Version           New version            Download size
zim             remove    0.68_1            -                      - 
python-xdg      remove    0.25_3            -                      - 
pygtk           remove    2.24.0_13         -                      - 
libglade        remove    2.6.4_12          -                      - 
python-gobject2 remove    2.28.7_1          -                      - 
xmlcatmgr       remove    2.2_3             -                      - 
python-cairo    remove    1.17.1_1          -                      - 
python          remove    2.7.15_2          -                      - 

Size freed on disk:             26MB
Space available on disk:       106GB

Do you want to continue? [Y/n] 
Removing `zim-0.68_1' ...
Removing byte-compiled python2.7 code for module zim...
Updating ldconfig(8) cache...
Updating GTK+ icon cache for /usr/share/icons/hicolor...
Updating GTK+ icon cache for /usr/share/icons/ubuntu-mono-dark...
Updating GTK+ icon cache for /usr/share/icons/ubuntu-mono-light...
Updating MIME database...
Updating shared-mime-info database...
Removed `zim-0.68_1' successfully.
Removing `python-xdg-0.25_3' ...
Removing byte-compiled python2.7 code for module xdg...
Updating ldconfig(8) cache...
Removed `python-xdg-0.25_3' successfully.
Removing `pygtk-2.24.0_13' ...
Removing byte-compiled python2.7 code for module gtk-2.0/gtk...
Updating ldconfig(8) cache...
Removed `pygtk-2.24.0_13' successfully.
Removing `libglade-2.6.4_12' ...
Unregistering XML catalog entries... done.
Removed `libglade-2.6.4_12' successfully.
Removing `python-gobject2-2.28.7_1' ...
Removing byte-compiled python2.7 code for module glib...
Removing byte-compiled python2.7 code for module gobject...
Removing byte-compiled python2.7 code for module gtk-2.0...
Removing byte-compiled python2.7 code for module pygtk.py...
Updating ldconfig(8) cache...
Removed `python-gobject2-2.28.7_1' successfully.
Removing `xmlcatmgr-2.2_3' ...
Removed `xmlcatmgr-2.2_3' successfully.
Removing `python-cairo-1.17.1_1' ...
Removed `python-cairo-1.17.1_1' successfully.
Removing `python-2.7.15_2' ...
Removing byte-compiled python2.7 files in usr/lib/python2.7...
Updating ldconfig(8) cache...
python-2.7.15_2: unregistered 'python' alternatives group
Switched 'python' alternatives group to 'python3'
Creating 'python' alternatives group symlink: idle -> /usr/bin/idle3.6
Creating 'python' alternatives group symlink: 2to3 -> /usr/bin/2to3-3.6
Creating 'python' alternatives group symlink: pydoc -> /usr/bin/pydoc3.6
Creating 'python' alternatives group symlink: python -> /usr/bin/python3.6
Creating 'python' alternatives group symlink: python.1 -> /usr/share/man/man1/python3.6.1
Removed `python-2.7.15_2' successfully.

0 downloaded, 0 installed, 0 updated, 0 configured, 8 removed.
[dut@candybox ~]$ ls -l /usr/share/mime/
total 308
-rw------- 1 root root   1631 Oct 16 17:22 XMLnamespaces
-rw------- 1 root root  10654 Oct 16 17:22 aliases
drwxr-xr-x 1 root root  16078 Oct 16 17:22 application
drwxr-xr-x 1 root root   1214 Oct 16 17:22 audio
drwxr-xr-x 1 root root     72 Oct 16 17:22 font
-rw------- 1 root root  17224 Oct 16 17:22 generic-icons
-rw------- 1 root root  28824 Oct 16 17:22 globs
-rw------- 1 root root  32026 Oct 16 17:22 globs2
-rw------- 1 root root     47 Oct 16 17:22 icons
drwxr-xr-x 1 root root   2412 Oct 16 17:22 image
drwxr-xr-x 1 root root    172 Oct 16 17:22 inode
-rw------- 1 root root  27518 Oct 16 17:22 magic
drwxr-xr-x 1 root root    216 Oct 16 17:22 message
-rw------- 1 root root 134588 Oct 16 17:22 mime.cache
drwxr-xr-x 1 root root     46 Oct 16 17:22 model
drwxr-xr-x 1 root root    224 Oct 16 17:22 multipart
drwxr-xr-x 1 root root     64 Oct 16 17:22 packages
-rw------- 1 root root  15811 Oct 16 17:22 subclasses
drwxr-xr-x 1 root root   2986 Oct 16 17:22 text
-rw------- 1 root root    964 Oct 16 17:22 treemagic
-rw------- 1 root root  17249 Oct 16 17:22 types
-rw------- 1 root root      5 Oct 16 17:22 version
drwxr-xr-x 1 root root    664 Oct 16 17:22 video
drwxr-xr-x 1 root root    522 Oct 16 17:22 x-content
drwxr-xr-x 1 root root     28 Oct 16 17:22 x-epoc

xbps-remove -O: Failed to remove <package>.xbps: No such file or directory

xbps-remove -O outputs Failed to remove <package>.xbps: No such file or directory for each obsolete package that is removed from the cache.

# xbps-remove -Ovd 
[DEBUG] XBPS: 0.53 API: 20180730 GIT: UNSET
[DEBUG] Processing configuration directory: /etc/xbps.d
[DEBUG] Parsing configuration file: /etc/xbps.d/00-repository-main.conf
[DEBUG] [repo] `http://ftp.swin.edu.au/voidlinux/current' stored successfully
[DEBUG] /etc/xbps.d/00-repository-main.conf: added repository http://ftp.swin.edu.au/voidlinux/current
[DEBUG] Processing system configuration directory: /usr/share/xbps.d
[DEBUG] /etc/xbps.d: ignoring 00-repository-main.conf (exists in confdir)
[DEBUG] Parsing configuration file: /usr/share/xbps.d/xbps.conf
[DEBUG] rootdir=/
[DEBUG] metadir=//var/db/xbps
[DEBUG] cachedir=/var/cache/xbps
[DEBUG] confdir=/etc/xbps.d
[DEBUG] sysconfdir=/usr/share/xbps.d
[DEBUG] syslog=true
[DEBUG] bestmatching=false
[DEBUG] Architecture: armv7l
[DEBUG] Target Architecture: (null)
[DEBUG] Repository[0]=http://ftp.swin.edu.au/voidlinux/current
[DEBUG] ignoring unknown file: twolame-0.3.13_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libasyncns-0.8_9.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libldns-1.7.0_8.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libtdb-1.3.16_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: opus-1.3_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: fdk-aac-0.1.6_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: audiofile-0.3.6_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libsndio-1.5.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libbluetooth-5.50_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libmount-2.33_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libelf-0.175_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: librtmp-2.4.20161210_6.armv7l.xbps.sig
[DEBUG] ignoring unknown file: lame-3.100_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: speexdsp-1.2rc3_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: p11-kit-0.23.14_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: btrfs-progs-4.19_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libXau-1.0.8_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libnfs-3.0.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: celt-0.11.3_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libXdmcp-1.1.2_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libavformat-4.1_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: nghttp2-1.34.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: openssh-7.9p1_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libsmartcols-2.33_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libsysfs-2.1.0_6.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libssh2-1.8.0_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: socklog-void-20150726_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libtheora-1.1.1_7.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libcdio-2.0.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libswresample-4.1_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libltdl-2.4.6_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: dosfstools-4.1_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: icu-libs-63.1_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: socklog-2.1.0_4.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libid3tag-0.15.1b_8.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libsndfile-1.0.28_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libupnp1.8-1.8.4_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libcrypto44-2.8.2_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: ncmpc-0.33_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: dbus-1.12.10_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: x264-20180307.2245_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libX11-1.6.7_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libunistring-0.9.10_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libldap-2.4.46_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: popt-1.16_7.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libmpg123-1.25.10_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: expat-2.2.6_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: glibc-devel-2.28_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libao-1.2.2_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: mpd-0.21.3_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libelf-0.174_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: mit-krb5-libs-1.16.2_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: kbd-data-2.0.4_2.noarch.xbps.sig
[DEBUG] ignoring unknown file: libstdc++-8.2.0_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libarchive-3.3.3_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libavcodec-4.1_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libblkid-2.33_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: xvidcore-1.3.5_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: bluez-5.50_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libuuid-2.33_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libmpdclient-2.16_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: gcc-8.2.0_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: zziplib-0.13.69_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libxbps-0.53_8.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libtasn1-4.13_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: sudo-1.8.26_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libidn-1.34_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: gdbm-1.18.1_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libcdio-paranoia-10.2+0.94+2_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: python3-wheel-0.32.2_1.noarch.xbps.sig
[DEBUG] ignoring unknown file: ocl-icd-2.2.12_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: avahi-libs-0.7_6.armv7l.xbps.sig
[DEBUG] ignoring unknown file: binutils-2.29.1_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: python3-pip-18.1_1.noarch.xbps.sig
[DEBUG] ignoring unknown file: kernel-libc-headers-4.19.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libfftw-3.3.8_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libxml2-2.9.8_6.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libsoxr-0.1.3_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libstdc++-devel-8.2.0_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: rpi-userland-20180103_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libmodplug-0.8.9.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: ethtool-4.19_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libmikmod-3.3.11.1_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libsmbclient-3.6.25_13.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libssp-devel-8.2.0_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: sbc-1.4_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libgcc-devel-8.2.0_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: util-linux-2.33_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libvpx-1.7.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libfdisk-2.33_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: nano-3.2_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libgomp-8.2.0_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libsasl-2.1.26_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: xbps-0.53_8.armv7l.xbps.sig
[DEBUG] ignoring unknown file: wpa_supplicant-2.6_12.armv7l.xbps.sig
[DEBUG] ignoring unknown file: logrotate-3.14.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: xfsprogs-4.19.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: gnutls-3.5.19_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libflac-1.3.2_4.armv7l.xbps.sig
[DEBUG] ignoring unknown file: iputils-20180629_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: kbd-2.0.4_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: nettle-3.4_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libssl46-2.8.2_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libcurl-7.62.0_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: acpid-2.0.31_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: faad2-2.8.8_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libsamplerate-0.1.9_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: python3-setuptools-40.5.0_1.noarch.xbps.sig
[DEBUG] ignoring unknown file: libffi-3.2.1_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: python3-devel-3.6.7_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: cronie-1.5.2_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libtls18-2.8.2_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: mpd-0.21.2_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: base-files-0.139_11.armv7l.xbps.sig
[DEBUG] ignoring unknown file: glib-2.58.1_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: bluez-alsa-1.3.1_4.armv7l.xbps.sig
[DEBUG] ignoring unknown file: cifs-utils-6.8_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: rng-tools-6.6_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: jansson-2.11_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: orc-0.4.28_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: sqlite-3.25.3_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libmad-0.15.1b_8.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libressl-2.8.2_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: rpi-kernel-4.14.80_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libogg-1.3.3_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libcddb-1.3.2_8.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libavutil-4.1_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libvorbis-1.3.6_4.armv7l.xbps.sig
[DEBUG] ignoring unknown file: yajl-2.1.0_4.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libical-2.0.0_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libspeex-1.2.0_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libmms-0.6.4_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: talloc-2.1.14_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libpulseaudio-12.2_3.armv7l.xbps.sig
[DEBUG] ignoring unknown file: alsa-utils-1.1.7_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libpulseaudio-12.2_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libxcb-1.13.1_1.armv7l.xbps.sig
[DEBUG] ignoring unknown file: alsa-lib-1.1.7_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: libssp-8.2.0_5.armv7l.xbps.sig
[DEBUG] ignoring unknown file: python3-3.6.7_2.armv7l.xbps.sig
[DEBUG] ignoring unknown file: x265-2.8_3.armv7l.xbps.sig
[DEBUG] [rpool] `http://ftp.swin.edu.au/voidlinux/current' registered.
[DEBUG] [rpool] `http://ftp.swin.edu.au/voidlinux/current' registered.
[DEBUG] [rpool] `http://ftp.swin.edu.au/voidlinux/current' registered.
[DEBUG] [rpool] `http://ftp.swin.edu.au/voidlinux/current' registered.
Removed libelf-0.174_1.armv7l.xbps from cachedir (obsolete)
Removed mpd-0.21.2_1.armv7l.xbps from cachedir (obsolete)
Failed to remove `libelf-0.174_1.armv7l.xbps': No such file or directory
Removed libpulseaudio-12.2_2.armv7l.xbps from cachedir (obsolete)
Failed to remove `mpd-0.21.2_1.armv7l.xbps': No such file or directory
Failed to remove `libpulseaudio-12.2_2.armv7l.xbps': No such file or directory

Show action hold for pkg downgrade

Holding a package that has action downgrade, the action description does not change,
however download size is empty.
Holding a package should show action hold for that package.

xbps-install -u fails with unresolved dependencies

Using: XBPS: 0.56 API: 20190621 GIT: UNSET

#xbps-install -u

libuuid-2.34_1 (update) breaks installed pkg libblkid-32bit-2.33.2_1'`

libuuid-2.34_1 (update) breaks installed pkg libmount-32bit-2.33.2_1'`

Transaction aborted due to unresolved dependencies.

This may not be due a bug in xbps-install but I don't know where else to report this issue nor how to correct it so I hope all will excuse my ignorance. This is the first time Void has burped since I installed it a few months back and I'm getting rather, er, lazy with updates because it normally goes without a hitch.

armv8l architecture: can't find armv8l-repodata in aarch64 repository

Steps to reproduce: on any armv8l device (android phone in my case) download aarch64 rootfs and try to update with xbps-install -Su.

Expected results: Update goes normally

Actual results: Update fails with this message
[*] Updating https://alpha.de.repo.voidlinux.org/current/aarch64/armv8l-repodata' ...
ERROR: [reposync] failed to fetch file https://alpha.de.repo.voidlinux.org/current/aarch64/armv8l-repodata': Not Found

Workaround: adding export XBPS_ARCH=aarch64 to .profile fixes this problem

uname output:
Linux localhost 3.18.112-Artemis #1 SMP PREEMPT Tue Jul 10 19:17:22 UTC 2018 armv8l GNU/Linux

I guess it would be better to add feature to autodetect aarch64 architectures like armv8l and use correct repodata URL.

Useless / not informative error messages

Hello,
root is mounted ro,
/var is mounted rw
error messages should say something about read-only fs

`# xbps-install dbus

Name Action Version New version Download size
dbus install - 1.12.16_1 111KB

Size to download: 112KB
Size required on disk: 526KB
Space available on disk: 1283MB

Do you want to continue? [Y/n]

[*] Downloading binary packages
dbus-1.12.16_1.armv7l-musl.xbps: 111KB [avg rate: 326MB/s]
dbus-1.12.16_1.armv7l-musl.xbps.sig: 512B [avg rate: 4274KB/s]

[*] Verifying package integrity
dbus-1.12.16_1: verifying RSA signature...

[*] Running transaction tasks
dbus-1.12.16_1: unpacking ...
ERROR: dbus-1.12.16_1: [unpack] failed to extract file `./usr/share/xml/dbus-1/introspect.dtd': No such file or directory
ERROR: dbus-1.12.16_1: [unpack] failed to extract files: No such file or directory
ERROR: dbus-1.12.16_1: [unpack] failed to unpack files from archive: No such file or directory

mount -o remount,rw /

xbps-install dbus

Name Action Version New version Download size
dbus install - 1.12.16_1 -

Size required on disk: 414KB
Space available on disk: 1283MB

Do you want to continue? [Y/n]

[*] Downloading binary packages

[*] Verifying package integrity
dbus-1.12.16_1: verifying RSA signature...

[*] Running transaction tasks
dbus-1.12.16_1: unpacking ...

[*] Configuring unpacked packages
dbus-1.12.16_1: configuring ...
Created dbus (gid 22) system group.
Created dbus (22) system user.
dbus-1.12.16_1: installed successfully.

0 downloaded, 1 installed, 0 updated, 1 configured, 0 removed.
#`

Using `replaces` in a template only replaces the package but not the files

Steps to reproduces

Install a package and then update it to a meta package that pulls in a new package that replaces the meta package. ( package1 -> update -> package1 (meta) -> depends -> package2 -> replaces package1 )

xbps-query -f lists the files
Also xbps-install -f does not work to fix this issue when one package does depend on one of the not installed symlinks.

doas xbps-install -f okteta
doas (john@void) password: 
kdevelop-5.2.1_4: broken, unresolvable shlib `libkasten3controllers.so.3'
kdevelop-5.2.1_4: broken, unresolvable shlib `libkasten3core.so.3'
kdevelop-5.2.1_4: broken, unresolvable shlib `libkasten3okteta1controllers.so.1'
kdevelop-5.2.1_4: broken, unresolvable shlib `libkasten3okteta1core.so.1'
kdevelop-5.2.1_4: broken, unresolvable shlib `libkasten3okteta1gui.so.1'
kdevelop-5.2.1_4: broken, unresolvable shlib `libokteta2core.so.2'
kdevelop-5.2.1_4: broken, unresolvable shlib `libokteta2gui.so.2'
Transaction aborted due to unresolved shlibs.
doas xbps-pkgdb okteta
doas (john@void) password: 
ERROR: okteta: unexistent file /etc/xdg/okteta-structures.knsrc.
ERROR: okteta: unexistent file /usr/bin/struct2osd.
ERROR: okteta: unexistent file /usr/share/applications/org.kde.okteta.desktop.
ERROR: okteta: unexistent file /usr/share/doc/HTML/es/okteta/index.docbook.
ERROR: okteta: unexistent file /usr/share/doc/HTML/pt/okteta/index.docbook.
ERROR: okteta: unexistent file /usr/share/doc/HTML/pt_BR/okteta/index.docbook.
ERROR: okteta: unexistent file /usr/share/doc/HTML/sr/okteta/index.docbook.
ERROR: okteta: unexistent file /usr/share/icons/hicolor/16x16/apps/okteta.png.
ERROR: okteta: unexistent file /usr/share/icons/hicolor/32x32/apps/okteta.png.
ERROR: okteta: unexistent file /usr/share/icons/hicolor/48x48/apps/okteta.png.
ERROR: okteta: unexistent file /usr/share/locale/sr/LC_MESSAGES/liboktetacore.mo.
ERROR: okteta: unexistent file /usr/share/locale/sr/LC_MESSAGES/liboktetagui.mo.
ERROR: okteta: unexistent file /usr/share/locale/sr/LC_MESSAGES/oktetapart.mo.
ERROR: okteta: unexistent file /usr/share/okteta/structures/elf/main.osd.
ERROR: okteta: unexistent file /usr/share/okteta/structures/elf/metadata.desktop.
ERROR: okteta: unexistent file /usr/share/okteta/structures/gccxml-to-osd.xsl.
ERROR: okteta: unexistent file /usr/share/okteta/structures/png/main.osd.
ERROR: okteta: unexistent file /usr/share/okteta/structures/png/metadata.desktop.
ERROR: okteta: unexistent file /usr/share/okteta/structures/uuid.js.
ERROR: okteta: files check FAILED.
ERROR: okteta: broken symlink /usr/lib/libkasten3controllers.so.3 (target: /usr/lib/libkasten3controllers.so.0.3.0)
ERROR: okteta: broken symlink /usr/lib/libkasten3core.so.3 (target: /usr/lib/libkasten3core.so.0.3.0)
ERROR: okteta: broken symlink /usr/lib/libkasten3gui.so.3 (target: /usr/lib/libkasten3gui.so.0.3.0)
ERROR: okteta: broken symlink /usr/lib/libkasten3okteta1controllers.so.1 (target: /usr/lib/libkasten3okteta1controllers.so.0.3.1)
ERROR: okteta: broken symlink /usr/lib/libkasten3okteta1core.so.1 (target: /usr/lib/libkasten3okteta1core.so.0.3.1)
ERROR: okteta: broken symlink /usr/lib/libkasten3okteta1gui.so.1 (target: /usr/lib/libkasten3okteta1gui.so.0.3.1)
ERROR: okteta: broken symlink /usr/lib/libokteta2core.so.2 (target: /usr/lib/libokteta2core.so.0.9.1)
ERROR: okteta: broken symlink /usr/lib/libokteta2gui.so.2 (target: /usr/lib/libokteta2gui.so.0.9.1)

PR / Commits that are affected by that behaviour

void-linux/void-packages#715
void-linux/void-packages@e7f0b68

xbps checks space available only in /

I have a lvm setup with /, /usr and /var in different LVs. In my last install, I've tried to install a lot of things at the same time and xbps checked the space available in / (actually my / is 2Gb with 50Mb used, my /usr is 20Gb), so I was unable to install with a batch. If I install individually, it will pass, so it seems xbps is checking strictly on space available in /, isn't that bad but it's an issue if you use lvm with a different configuration (like mine).

xbps-remove: marks package as removed, ignoring errors

Hello!
I have root mounted ro.
When I remove a package i get:
`# xbps-remove makeself

Name Action Version New version Download size
makeself remove 2.4.0_3 - -

Size freed on disk: 37KB
Space available on disk: 1301MB

Do you want to continue? [Y/n]
Removing makeself-2.4.0_3' ... ERROR: makeself-2.4.0_3: failed to remove file /usr/bin/makeself': Read-only file system
ERROR: makeself-2.4.0_3: failed to remove file /usr/bin/makeself-header': Read-only file system ERROR: makeself-2.4.0_3: failed to remove file /usr/share/man/man1/makeself.1': Read-only file system
ERROR: makeself-2.4.0_3: failed to remove directory /usr': Read-only file system ERROR: makeself-2.4.0_3: failed to remove directory /usr/bin': Read-only file system
ERROR: makeself-2.4.0_3: failed to remove directory /usr/share': Read-only file system ERROR: makeself-2.4.0_3: failed to remove directory /usr/share/man': Read-only file system
ERROR: makeself-2.4.0_3: failed to remove directory /usr/share/man/man1': Read-only file system Removed makeself-2.4.0_3' successfully.

0 downloaded, 0 installed, 0 updated, 0 configured, 1 removed.
#`
I think there should be an error reported and package left as installed or partially installed, so I could continue removing it after remounting root as rw.

Thank you.

Repos SSL Expired

All of the eu repos, e.g alpha.de.repo.voidlinux.org/* have expired SSL certificates, they expired at 10 am today.

`[*] Updating https://alpha.de.repo.voidlinux.org/current/x86_64-repodata' ...
Certificate verification failed for /CN=vm1.a-lej-de.m.voidlinux.org
SSL_connect returned 1
ERROR: [reposync] failed to fetch file https://alpha.de.repo.voidlinux.org/current/x86_64-repodata': Operation not permitted
[*] Updating https://alpha.de.repo.voidlinux.org/current/multilib/nonfree/x86_64-repodata' ...
Certificate verification failed for /CN=vm1.a-lej-de.m.voidlinux.org
SSL_connect returned 1
ERROR: [reposync] failed to fetch file https://alpha.de.repo.voidlinux.org/current/multilib/nonfree/x86_64-repodata': Operation not permitted
[*] Updating https://alpha.de.repo.voidlinux.org/current/multilib/x86_64-repodata' ...
Certificate verification failed for /CN=vm1.a-lej-de.m.voidlinux.org
SSL_connect returned 1
ERROR: [reposync] failed to fetch file https://alpha.de.repo.voidlinux.org/current/multilib/x86_64-repodata': Operation not permitted
[*] Updating https://alpha.de.repo.voidlinux.org/current/nonfree/x86_64-repodata ...
Certificate verification failed for /CN=vm1.a-lej-de.m.voidlinux.org
SSL_connect returned 1
ERROR: [reposync] failed to fetch file https://alpha.de.repo.voidlinux.org/current/nonfree/x86_64-repodata: Operation not permitted`

zstd compression by default propose

https://bugs.archlinux.org/task/59081

757M pycharm-professional-2018.1.4-1-x86_64.pkg.tar
338M pycharm-professional-2018.1.4-1-x86_64.pkg.tar.zst
309M pycharm-professional-2018.1.4-1-x86_64.pkg.tar.xz
# compress
$ time zstd -T0 pycharm-professional-2018.1.4-1-x86_64.pkg.tar
real 0m2,941s
$ time xz -T0 -1 pycharm-professional-2018.1.4-1-x86_64.pkg.tar
real 0m31,260s
# decompress
$ time zstd -d pycharm-professional-2018.1.4-1-x86_64.pkg.tar.zst
real 0m1,869s
$ time xz -d pycharm-professional-2018.1.4-1-x86_64.pkg.tar.xz
real 0m18,694s

HTTP proxy issues on WSL with CNTLM

Hi!

I run void glibc on WSL using VoidWSL. My environment is probably uncommon, but I don't think that's the cause (see curl results).

I'm behind an NTLM proxy, and I use cntlm for authentication. This is the relevant cntlm config:

Listen      5555
SOCKS5Proxy 5000

I expect xbps to work through the proxy, but it fails:

# sudo http_proxy=http://127.0.0.1:5555 xbps-install -S
[*] Updating `https://alpha.de.repo.voidlinux.org/current/x86_64-repodata' ...
ERROR: [reposync] failed to fetch file `https://alpha.de.repo.voidlinux.org/current/x86_64-repodata': Success
#

Interestingly, when I use the SOCKS proxy, it works:

# sudo SOCKS_PROXY=socks5://127.0.0.1:5000 xbps-install -S
[*] Updating `https://alpha.de.repo.voidlinux.org/current/x86_64-repodata' ...
#

I also tested the proxy using curl:

# curl -ILx 127.0.0.1:5555 https://alpha.de.repo.voidlinux.org/current/x86_64-repodata
HTTP/1.1 200 Connection established
Via: 1.1 MYPROXY1, 1.1 MYPROXY2
Connection: Keep-Alive
Proxy-Connection: Keep-Alive

HTTP/2 200
server: nginx
date: Wed, 20 Mar 2019 12:37:24 GMT
content-type: application/octet-stream
content-length: 1832385
last-modified: Wed, 20 Mar 2019 10:35:19 GMT
etag: "5c921767-1bf5c1"
accept-ranges: bytes
#

Without specifying the proxy for curl, it times out:

# curl -IL https://alpha.de.repo.voidlinux.org/current/x86_64-repodata
curl: (7) Failed to connect to alpha.de.repo.voidlinux.org port 443: Connection refused
#

I think if curl works thorugh the proxy, xbps should also work.

Make it possible to install restricted packages with xbps-install

Installing several packages through xbps-src and upgrading them is tiresome because it doesn't integrate with xbps-install.

  • adobe-flash-plugin
  • vivaldi
  • google-chrome

This is the reason that I migrated from void linux to artix linux.

On Artix Linux, I can manage AUR packages and binary packages with yay or other AUR helpers. yay handles both repositories seamlessly.

xbps needs one tool to manage all packages.

Make xbps smart enough to only trigger some post-methods once

When updating an old container/VPS and alike xbps will first update all fonts and then trigger a fc-cache rebuild for every single font that has been updated which can take quite a time.

I suggest that we store a flag for each action that only needs to be run once after a system update and xbps will not trigger a further action.

Parallel downloads

This is a feature that too few package managers seem to have, as using all of the available cores on the CPU to download packages brings almost a linear speedup (e.g. 4x if you have a 4-thread CPU). Parallel downloads can also even load across multiple mirrors.

xbps not work with authenticated proxy

How do I use xbps with an authenticated proxy? what configuration do I have to do? I'm looking for an example because I've tried configuring the environment variable and nothing, I'm almost buying a service and creating a VPN server on it to be able to connect without dealing with the proxy, but I'd really like to learn how to connect to a proxy network on voidlinux xbps.

uname -a: Linux noloop 4.19.30_1 #1 SMP PREEMPT Wed Mar 20 09:17:21 UTC 2019 x86_64 GNU/Linux
xbps-install -V: XBPS: 0.53 API: 20180730 GIT: UNSET

What I tried and did not succeed so far:

export HTTP_PROXY=http://user1:[email protected]:3128
export HTTPS_PROXY=http://user1:[email protected]:3128
export FTP_PROXY=http://user1:[email protected]:3128

I've already tried it:

 export HTTP_PROXY=http://user1:[email protected]:3128/
 export HTTPS_PROXY=http://user1:[email protected]:3128/
 export FTP_PROXY=http://user1:[email protected]:3128/

or:

export http_proxy="http://user1:[email protected]:3128"
export https_proxy="http://user1:[email protected]:3128"
export ftp_proxy="http://user1:[email protected]:3128"

or

export http_proxy="http://user1:[email protected]:3128/"
export https_proxy="http://user1:[email protected]:3128/"
export ftp_proxy="http://user1:[email protected]:3128/"

If I run the command below after configuring the environment variables, I get the following error:

noloop@noloop:~$ sudo xbps-install -v -S 
[*] Updating `https://alpha.de.repo.voidlinux.org/current/x86_64-repodata' ...
ERROR: [reposync] failed to fetch file `https://alpha.de.repo.voidlinux.org/current/x86_64-repodata': Connection timed out

Note: And yes that username and password, as well as the address and ports are correct because when setting the /etc/apt/apt.conf.d/00proxy file with this data in a debian like, it works as expected. And also with other programs, how it works, however with xbps not.

Searchable long text

With reference to this

It would be useful to have some searchable longer text for each package. Maybe displayed via a switch for xbps-query for a specific package?

The longer text could give a better explanation of the software's purpose and/or any limitations on Void; such as features left out and why. An example being aspell compiled out of weechat-aspell and it being necessary hunspell or similar is installed instead. In #6883 it was mentioned that INSTALL.msg serves the latter part of this purpose but even with a decent resolution, the messages can whizz past and there is little chance to read them or even notice they are there.

It is not a bug but an enhancement request. It is one of the few features in Debian I miss.

[Feature request] Optional runtime dependencies

Ok this is basically https://github.com/voidlinux/xbps/issues/119
A package should define optional dependencies, maybe a xbps-install option could also be added for this --as-dependency or something like this. If you install a package that optionally depends on $foo you could then simply install it through

xbps-install -Sy $foo --as-dependency

and when removing the package $bar that is the only package that has a (optional) dependency on it it can be handled as normal dependency and remove it with the package.

xbps-checkvers cache with relative --distdir

when --distdir is set, xbps-checkvers will create a cachefile path like ${distdir}/.xbps-checkvers.plist. This works while opening the cache, but when writing the cache, xbps-checkvers used chdir to change into distdir.
If the defined distdir was relative it can't write the cache file.

[feature request] xbps-query format output / machine readable output

it would be neat if there were something like gpg --with-colons or --format=json or basically anything that would make the idiom of xbps-query -Rs foo | unmangle | fuzzy-matcher | xbps-install easier. I currently have some hacky shell to pick apart the returned strings but something stable would be much nicer.

Update reports broken/uresolved dependency

libuuid-2.34_1 (update) breaks installed pkg libblkid-32bit-2.33.2_1' libuuid-2.34_1 (update) breaks installed pkg libmount-32bit-2.33.2_1'
Transaction aborted due to unresolved dependencies.

Rpi aarch64 missing certs for xbps

Hey, I doubt this is the right place, but I couldn't find a better suited repo for this issue.

I installed void to a rpi 3 b plus, and it is missing a lot of the system.

It is functional Linux, but xbps-install gets permission denied from the voidlinux.eu mirror.

I manually connected to the internet with wpa_supplicant and dhcpcd via virt console, but sv doesn't seem to exist, and the service supervisor portion of runit appears to be missing entirely.

I found somewhere that the fs images for arm were broken. I am interested in building the rest of void onto the rpi 3. I am also willing to share any discoveries and tools that I make along the way.

I just figured I would also reach out for some help.

Files with extremely long filenames do not get packaged

It looks like files with paths over 127 characters will not get packaged.

I created two directory structures, 1 with 127 characters, another with 128. The 127 character path gets added, the 128 character does not.

greenleaf% a=$(echo a{1..33} | sed 's| |/|g')
greenleaf% mkdir -p $a
greenleaf% touch $a/aaa
greenleaf% echo $a/aaa | wc -c
127
greenleaf% b=$(echo b{1..33} | sed 's| |/|g')
greenleaf% mkdir -p $b
greenleaf% touch $b/bbbb
greenleaf% echo $b/bbbb | wc -c
128
greenleaf% find . -type f
./a1/a2/a3/a4/a5/a6/a7/a8/a9/a10/a11/a12/a13/a14/a15/a16/a17/a18/a19/a20/a21/a22/a23/a24/a25/a26/a27/a28/a29/a30/a31/a32/a33/aaa
./b1/b2/b3/b4/b5/b6/b7/b8/b9/b10/b11/b12/b13/b14/b15/b16/b17/b18/b19/b20/b21/b22/b23/b24/b25/b26/b27/b28/b29/b30/b31/b32/b33/bbbb
greenleaf% cd ..
greenleaf% xbps-create -A noarch -n test-1.0_1 -s "testing filename length" testdest 
test-1.0_1: adding `/a1/a2/a3/a4/a5/a6/a7/a8/a9/a10/a11/a12/a13/a14/a15/a16/a17/a18/a19/a20/a21/a22/a23/a24/a25/a26/a27/a28/a29/a30/a31/a32/a33/a' ...
test-1.0_1: binary package created successfully (test-1.0_1.noarch.xbps)
greenleaf% tar Jtvf test-1.0_1.noarch.xbps
-rw-r--r-- root/root       496 1969-12-31 18:00 ./props.plist
-rw-r--r-- root/root     11652 1969-12-31 18:00 ./files.plist
-rw-r--r-- 0/0               0 2018-06-27 07:59 ./a1/a2/a3/a4/a5/a6/a7/a8/a9/a10/a11/a12/a13/a14/a15/a16/a17/a18/a19/a20/a21/a22/a23/a24/a25/a26/a27/a28/a29/a30/a31/a32/a33/a

xbps-uhelper fails with redirect using proxy

For example, fetching https://www.llvm.org/releases/7.0.1/llvm-7.0.1.src.tar.xz using a proxy (in my case squid running at http://172.17.0.1:3128 and a certificate that I have manually added to my system) produces:

looking up 172.17.0.1
connecting to 172.17.0.1:3128
SSL options: 4004
Peer verification enabled
Using CA cert path: /etc/ssl/certs
Verify hostname
TLSv1.2 connection established using ECDHE-RSA-AES256-GCM-SHA384
Certificate subject: /CN=llvm.org
Certificate issuer: /C=AU/ST= /L= /O= /OU= /CN=
requesting https://www.llvm.org/releases/7.0.1/llvm-7.0.1.src.tar.xz
302 redirect to http://releases.llvm.org/7.0.1/llvm-7.0.1.src.tar.xz
looking up 172.17.0.1
connecting to 172.17.0.1:3128
requesting http://releases.llvm.org/7.0.1/llvm-7.0.1.src.tar.xz
https://www.llvm.org/releases/7.0.1/llvm-7.0.1.src.tar.xz: Bad Request

The problem seems to be connected with the fact that an https URL redirects to a http URL. From the proxy log I can see:

1547696915.462 447 172.17.0.1 TCP_MISS/302 671 GET https://www.llvm.org/releases/7.0.1/llvm-7.0.1.src.tar.xz - HIER_DIRECT/54.67.122.174 text/html
1547696915.465 0 172.17.0.1 NONE/400 3937 GET /7.0.1/llvm-7.0.1.src.tar.xz - HIER_NONE/- text/html

I tracked the problem down to code around here in fetch/http.c:

  /* send request */
  if (verbose)
  	fetch_info("requesting %s://%s%s",
  	    url->scheme, host, url->doc);
  if (purl && strcasecmp(URL->scheme, SCHEME_HTTPS) != 0) {
  	http_cmd(conn, "%s %s://%s%s HTTP/1.1\r\n",
  	    op, url->scheme, host, url->doc);
  } else {
  	http_cmd(conn, "%s %s HTTP/1.1\r\n",
  	    op, url->doc);
  }

  if (if_modified_since && url->last_modified > 0)
  	set_if_modified_since(conn, url->last_modified);

  /* virtual host */
  http_cmd(conn, "Host: %s\r\n", host);

  if (strcasecmp(URL->scheme, SCHEME_HTTPS) != 0)
  	send_proxy_headers(conn, purl);

In two places this code uses URL->scheme (the protocol of the original URL) rather than url->scheme (the protocol of the redirected URL. I found that after replacing these two instances the code appears to work in this particular case. But not really understanding these protocols very well I hesitate to make a pull request based on a single case.

I see comments in the code that the whole http_request function needs to be rewritten anyway, so just bringing this issue to the developers' attention.

xbps-install -Mun does take to long when one repo is not reachable

xbps-install -Mun does hang in an infinite loop when at least one repos is not reachable, which makes xuname hanging forever.
Weirdly this does only happen when using xbps that was compiled with xbps-src. Compilling it manually and running bin/xbps-install/xbps-install -Mun does somehow work.

strace looping part

socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(9090), in_addr=inet_addr("192.168.178.49")}, 16) = -1 EHOSTUNREACH (Host is unreachable)
close(4)

Can't upgrade any packages because of missing rpi-userland dependency

Void newbie here. Everything has been going great until...

After running:

sudo xbps-install -Syu

I get the output:

[*] Updating `https://alpha.de.repo.voidlinux.org/current/x86_64-repodata' ...
[*] Updating `https://alpha.de.repo.voidlinux.org/current/nonfree/x86_64-repodata' ...
MISSING: rpi-userland>=0.0.0.0.20150907_1
Transaction aborted due to unresolved dependencies.

I followed the steps here:
https://github.com/voidlinux/xbps/issues/253

to hold the package but that didn't make a difference.

Any help appreciated. To my knowledge I haven't installed the rpi-userland package and I don't even know what it is (something to do with Raspberry Pi?).

Fish autocompletion doesn't seem to work

  • xuname:
    Void 4.17.9_1 x86_64 GenuineIntel uptodate rF
  • package:
    fish-shell

Expected behavior

sudo xbps-install -S ra -> tab -> show packages starting with ra

Actual behavior

shows files or directories starting with ra

No way to override install-date field

The xbps database contains a field called install-date. For reproducible image builds, it would be useful to be able to set that date/time to a constant. There is a similar issue with the package repository something was installed from, but I am not sure how to address that.

empty line in mirror conf

If file /usr/share/xbps.d/00-repository-main.conf contains no empty line at the end then mirror URL gets truncated and update fails.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.