Code Monkey home page Code Monkey logo

void-packages's Introduction

The XBPS source packages collection

This repository contains the XBPS source packages collection to build binary packages for the Void Linux distribution.

The included xbps-src script will fetch and compile the sources, and install its files into a fake destdir to generate XBPS binary packages that can be installed or queried through the xbps-install(1) and xbps-query(1) utilities, respectively.

See Contributing for a general overview of how to contribute and the Manual for details of how to create source packages.

Table of Contents

Requirements

  • GNU bash
  • xbps >= 0.56
  • git(1) - unless configured to not, see etc/defaults.conf
  • common POSIX utilities included by default in almost all UNIX systems
  • curl(1) - required by xbps-src update-check

For bootstrapping additionally:

  • flock(1) - util-linux
  • bsdtar or GNU tar (in that order of preference)
  • install(1) - GNU coreutils
  • objcopy(1), objdump(1), strip(1): binutils

xbps-src requires a utility to chroot and bind mount existing directories into a masterdir that is used as its main chroot directory. xbps-src supports multiple utilities to accomplish this task.

NOTE: xbps-src does not allow building as root anymore. Use one of the chroot methods.

Quick start

Clone the void-packages git repository and install the bootstrap packages:

$ git clone https://github.com/void-linux/void-packages.git
$ cd void-packages
$ ./xbps-src binary-bootstrap

Build a package by specifying the pkg target and the package name:

$ ./xbps-src pkg <package_name>

Use ./xbps-src -h to list all available targets and options.

To build packages marked as 'restricted', modify etc/conf:

$ echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf

Once built, the package will be available in hostdir/binpkgs or an appropriate subdirectory (e.g. hostdir/binpkgs/nonfree). To install the package:

# xbps-install --repository hostdir/binpkgs <package_name>

Alternatively, packages can be installed with the xi utility, from the xtools package. xi takes the repository of the current working directory into account.

$ xi <package_name>

chroot methods

xbps-uunshare(1) (default)

XBPS utility that uses user_namespaces(7) (part of xbps, default without -t flag).

This utility requires these Linux kernel options:

  • CONFIG_NAMESPACES
  • CONFIG_IPC_NS
  • CONFIG_UTS_NS
  • CONFIG_USER_NS

This is the default method, and if your system does not support any of the required kernel options it will fail with EINVAL (Invalid argument).

xbps-uchroot(1)

XBPS utility that uses namespaces and must be setgid (part of xbps).

NOTE: This is the only method that implements functionality of xbps-src -t, therefore the flag ignores the choice made in configuration files and enables xbps-uchroot.

This utility requires these Linux kernel options:

  • CONFIG_NAMESPACES
  • CONFIG_IPC_NS
  • CONFIG_PID_NS
  • CONFIG_UTS_NS

Your user must be added to a special group to be able to use xbps-uchroot(1) and the executable must be setgid:

# chown root:<group> xbps-uchroot
# chmod 4750 xbps-uchroot
# usermod -a -G <group> <user>

NOTE: by default in void you shouldn't do this manually, your user must be a member of the xbuilder group.

To enable it:

$ cd void-packages
$ echo XBPS_CHROOT_CMD=uchroot >> etc/conf

If for some reason it's erroring out as ERROR clone (Operation not permitted), check that your user is a member of the required group and that xbps-uchroot(1) utility has the proper permissions and owner/group as explained above.

bwrap(1)

bubblewrap, sandboxing tool for unprivileged users that uses user namespaces or setuid. See https://github.com/containers/bubblewrap.

ethereal

Destroys host system it runs on. Only useful for one-shot containers, i.e docker (used with CI).

Install the bootstrap packages

There is a set of packages that makes up the initial build container, called the bootstrap. These packages are installed into the masterdir in order to create the container.

The primary and recommended way to set up this container is using the binary-bootstrap command. This will use pre-existing binary packages, either from remote xbps repositories or from your local repository.

There is also the bootstrap command, which will build all necessary bootstrap packages from scratch. This is usually not recommended, since those packages are built using your host system's toolchain and are neither fully featured nor reproducible (your host system may influence the build) and thus should only be used as a stage 0 for bootstrapping new Void systems.

If you still choose to use bootstrap, use the resulting stage 0 container to rebuild all bootstrap packages again, then use binary-bootstrap (stage 1) and rebuild the bootstrap packages once more (to gain stage 2, and then use binary-bootstrap again). Once you've done that, you will have a bootstrap set equivalent to using binary-bootstrap in the first place.

Also keep in mind that a full source bootstrap is time consuming and will require having an assortment of utilities installed in your host system, such as binutils, gcc, perl, texinfo and others.

Configuration

The etc/defaults.conf file contains the possible settings that can be overridden through the etc/conf configuration file for the xbps-src utility; if that file does not exist, will try to read configuration settings from $XDG_CONFIG_HOME/xbps-src.conf, ~/.config/xbps-src.conf, ~/.xbps-src.conf.

If you want to customize default CFLAGS, CXXFLAGS and LDFLAGS, don't override those defined in etc/defaults.conf, set them on etc/conf instead i.e:

$ echo 'XBPS_CFLAGS="your flags here"' >> etc/conf
$ echo 'XBPS_LDFLAGS="your flags here"' >> etc/conf

Native and cross compiler/linker flags are set per architecture in common/build-profiles and common/cross-profiles respectively. Ideally those settings are good enough by default, and there's no need to set your own unless you know what you are doing.

Virtual packages

The etc/defaults.virtual file contains the default replacements for virtual packages, used as dependencies in the source packages tree.

If you want to customize those replacements, copy etc/defaults.virtual to etc/virtual and edit it accordingly to your needs.

Directory hierarchy

The following directory hierarchy is used with a default configuration file:

     /void-packages
        |- common
        |- etc
        |- srcpkgs
        |  |- xbps
        |     |- template
        |
        |- hostdir
        |  |- binpkgs ...
        |  |- ccache ...
        |  |- distcc-<arch> ...
        |  |- repocache ...
        |  |- sources ...
        |
        |- masterdir-<arch>
        |  |- builddir -> ...
        |  |- destdir -> ...
        |  |- host -> bind mounted from <hostdir>
        |  |- void-packages -> bind mounted from <void-packages>

The description of these directories is as follows:

  • masterdir-<arch>: master directory to be used as rootfs to build/install packages.
  • builddir: to unpack package source tarballs and where packages are built.
  • destdir: to install packages, aka fake destdir.
  • hostdir/ccache: to store ccache data if the XBPS_CCACHE option is enabled.
  • hostdir/distcc-<arch>: to store distcc data if the XBPS_DISTCC option is enabled.
  • hostdir/repocache: to store binary packages from remote repositories.
  • hostdir/sources: to store package sources.
  • hostdir/binpkgs: local repository to store generated binary packages.

Building packages

The simplest form of building package is accomplished by running the pkg target in xbps-src:

$ cd void-packages
$ ./xbps-src pkg <pkgname>

When the package and its required dependencies are built, the binary packages will be created and registered in the default local repository at hostdir/binpkgs; the path to this local repository can be added to any xbps configuration file (see xbps.d(5)) or by explicitly appending them via cmdline, i.e:

$ xbps-install --repository=hostdir/binpkgs ...
$ xbps-query --repository=hostdir/binpkgs ...

By default xbps-src will try to resolve package dependencies in this order:

  • If a dependency exists in the local repository, use it (hostdir/binpkgs).
  • If a dependency exists in a remote repository, use it.
  • If a dependency exists in a source package, use it.

It is possible to avoid using remote repositories completely by using the -N flag.

The default local repository may contain multiple sub-repositories: debug, multilib, etc.

Package build options

The supported build options for a source package can be shown with xbps-src show-options:

$ ./xbps-src show-options foo

Build options can be enabled with the -o flag of xbps-src:

$ ./xbps-src -o option,option1 pkg foo

Build options can be disabled by prefixing them with ~:

$ ./xbps-src -o ~option,~option1 pkg foo

Both ways can be used together to enable and/or disable multiple options at the same time with xbps-src:

$ ./xbps-src -o option,~option1,~option2 pkg foo

The build options can also be shown for binary packages via xbps-query(1):

$ xbps-query -R --property=build-options foo

NOTE: if you build a package with a custom option, and that package is available in an official void repository, an update will ignore those options. Put that package on hold mode via xbps-pkgdb(1), i.e xbps-pkgdb -m hold foo to ignore updates with xbps-install -u. Once the package is on hold, the only way to update it is by declaring it explicitly: xbps-install -u foo.

Permanent global package build options can be set via XBPS_PKG_OPTIONS variable in the etc/conf configuration file. Per package build options can be set via XBPS_PKG_OPTIONS_<pkgname>.

NOTE: if pkgname contains dashes, those should be replaced by underscores i.e XBPS_PKG_OPTIONS_xorg_server=opt.

The list of supported package build options and its description is defined in the common/options.description file or in the template file.

Sharing and signing your local repositories

To share a local repository remotely it's mandatory to sign it and the binary packages stored on it. This is accomplished with the xbps-rindex(1) utility.

First a RSA key must be created with openssl(1) or ssh-keygen(1):

$ openssl genrsa -des3 -out privkey.pem 4096

or

$ ssh-keygen -t rsa -b 4096 -m PEM -f privkey.pem

Only RSA keys in PEM format are currently accepted by xbps.

Once the RSA private key is ready you can use it to initialize the repository metadata:

$ xbps-rindex --sign --signedby "I'm Groot" --privkey privkey.pem $PWD/hostdir/binpkgs

And then make a signature per package:

$ xbps-rindex --sign-pkg --privkey privkey.pem $PWD/hostdir/binpkgs/*.xbps

If --privkey is unset, it defaults to ~/.ssh/id_rsa.

If the RSA key was protected with a passphrase you'll have to type it, or alternatively set it via the XBPS_PASSPHRASE environment variable.

Once the binary packages have been signed, check if the repository contains the appropriate hex fingerprint:

$ xbps-query --repository=hostdir/binpkgs -vL
...

Each time a binary package is created, a package signature must be created with --sign-pkg.

It is not possible to sign a repository with multiple RSA keys.

If packages in hostdir/binpkgs are signed, the key in .plist format (as imported by xbps) can be placed in etc/repo-keys/ to prevent xbps-src from prompting to import that key.

Rebuilding and overwriting existing local packages

Packages are overwritten on every build to make getting package with changed build options easy. To make xbps-src skip build and preserve first package build with given version and revision, same as in official void repository, set XBPS_PRESERVE_PKGS=yes in etc/conf file.

Reinstalling a package in your target rootdir can be easily done too:

$ xbps-install --repository=/path/to/local/repo -yf xbps-0.25_1

Using -f flag twice will overwrite configuration files.

Please note that the package expression must be properly defined to explicitly pick up the package from the desired repository.

Enabling distcc for distributed compilation

Setup the workers (machines that will compile the code):

# xbps-install -Sy distcc

Modify the configuration to allow your local network machines to use distcc (e.g. 192.168.2.0/24):

# echo "192.168.2.0/24" >> /etc/distcc/clients.allow

Enable and start the distccd service:

# ln -s /etc/sv/distccd /var/service

Install distcc on the host (machine that executes xbps-src) as well. Unless you want to use the host as worker from other machines, there is no need to modify the configuration.

On the host you can now enable distcc in the void-packages/etc/conf file:

XBPS_DISTCC=yes
XBPS_DISTCC_HOSTS="localhost/2 --localslots_cpp=24 192.168.2.101/9 192.168.2.102/2"
XBPS_MAKEJOBS=16

The example values assume a localhost CPU with 4 cores of which at most 2 are used for compiler jobs. The number of slots for preprocessor jobs is set to 24 in order to have enough preprocessed data for other CPUs to compile. The worker 192.168.2.101 has a CPU with 8 cores and the /9 for the number of jobs is a saturating choice. The worker 192.168.2.102 is set to run at most 2 compile jobs to keep its load low, even if its CPU has 4 cores. The XBPS_MAKEJOBS setting is increased to 16 to account for the possible parallelism (2 + 9 + 2 + some slack).

Distfiles mirror(s)

In etc/conf you may optionally define a mirror or a list of mirrors to search for distfiles.

$ echo 'XBPS_DISTFILES_MIRROR="ftp://192.168.100.5/gentoo/distfiles"' >> etc/conf

If more than one mirror is to be searched, you can either specify multiple URLs separated with blanks, or add to the variable like this

$ echo 'XBPS_DISTFILES_MIRROR+=" https://sources.voidlinux.org/"' >> etc/conf

Make sure to put the blank after the first double quote in this case.

The mirrors are searched in order for the distfiles to build a package until the checksum of the downloaded file matches the one specified in the template.

Ultimately, if no mirror carries the distfile, or in case all downloads failed the checksum verification, the original download location is used.

If you use uchroot for your XBPS_CHROOT_CMD, you may also specify a local path using the file:// prefix or simply an absolute path on your build host (e.g. /mnt/distfiles). Mirror locations specified this way are bind mounted inside the chroot environment under $XBPS_MASTERDIR and searched for distfiles just the same as remote locations.

Cross compiling packages for a target architecture

Currently xbps-src can cross build packages for some target architectures with a cross compiler. The supported target is shown with ./xbps-src -h.

If a source package has been adapted to be cross buildable xbps-src will automatically build the binary package(s) with a simple command:

$ ./xbps-src -a <target> pkg <pkgname>

If the build for whatever reason fails, might be a new build issue or simply because it hasn't been adapted to be cross compiled.

Using xbps-src in a foreign Linux distribution

xbps-src can be used in any recent Linux distribution matching the CPU architecture.

To use xbps-src in your Linux distribution use the following instructions. Let's start downloading the xbps static binaries:

$ wget http://repo-default.voidlinux.org/static/xbps-static-latest.<arch>-musl.tar.xz
$ mkdir ~/XBPS
$ tar xvf xbps-static-latest.<arch>-musl.tar.xz -C ~/XBPS
$ export PATH=~/XBPS/usr/bin:$PATH

If xbps-uunshare does not work because of lack of user_namespaces(7) support, try other chroot methods.

Clone the void-packages git repository:

$ git clone https://github.com/void-linux/void-packages.git

and xbps-src should be fully functional; just start the bootstrap process, i.e:

$ ./xbps-src binary-bootstrap

The default masterdir is created in the current working directory, i.e. void-packages/masterdir-<arch>, where <arch> for the default masterdir is is the native xbps architecture.

Remaking the masterdir

If for some reason you must update xbps-src and the bootstrap-update target is not enough, it's possible to recreate a masterdir with two simple commands (please note that zap keeps your ccache/distcc/host directories intact):

$ ./xbps-src zap
$ ./xbps-src binary-bootstrap

Keeping your masterdir uptodate

Sometimes the bootstrap packages must be updated to the latest available version in repositories, this is accomplished with the bootstrap-update target:

$ ./xbps-src bootstrap-update

Building 32bit packages on x86_64

Two ways are available to build 32bit packages on x86_64:

  • native mode with a 32bit masterdir (recommended, used in official repository)
  • cross compilation mode to i686 target

The canonical mode (native) needs a new x86 masterdir:

$ ./xbps-src -A i686 binary-bootstrap
$ ./xbps-src -A i686 ...

Building packages natively for the musl C library

The canonical way of building packages for same architecture but different C library is through a dedicated masterdir by using the host architecture flag -A. To build for x86_64-musl on glibc x86_64 system, prepare a new masterdir with the musl packages:

$ ./xbps-src -A x86_64-musl binary-bootstrap

This will create and bootstrap a new masterdir called masterdir-x86_64-musl that will be used when -A x86_64-musl is specified. Your new masterdir is now ready to build packages natively for the musl C library:

$ ./xbps-src -A x86_64-musl pkg ...

Building void base-system from scratch

To rebuild all packages in base-system for your native architecture:

$ ./xbps-src -N pkg base-system

It's also possible to cross compile everything from scratch:

$ ./xbps-src -a <target> -N pkg base-system

Once the build has finished, you can specify the path to the local repository to void-mklive, i.e:

# cd void-mklive
# make
# ./mklive.sh ... -r /path/to/hostdir/binpkgs

void-packages's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

void-packages's Issues

ImageMagick issue

System

  • xuname:
    Void 4.15.15_3 x86_64 GenuineIntel notuptodate hold rrF

  • package:
    ImageMagick-6

Expected behavior

/

Actual behavior

/

Steps to reproduce the behavior

/

Hello everyone.
I have this problem:
I have created a Perl script (imagemagicktest.pl) with only this line:

use Image::Magick;

and if i run it with "perl imagemagicktest.pl" I receive these errors:

Invalid version format (non-numeric data) at /usr/lib/perl5/core_perl/DynaLoader.pm line 210.
Compilation failed in require at /usr/lib/perl5/core_perl/parent.pm line 16.
BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/Image/Magick.pm line 22.
Compilation failed in require at /home/user/Desktop/imagemagicktest.pl line 1.
BEGIN failed--compilation aborted at /home/user/Desktop/imagemagicktest.pl line 1.
&Image::Magick::Q16::constant not defined. The required ImageMagick libraries are not installed or not installed properly.
END failed--call queue aborted at /home/user/Desktop/imagemagicktest.pl line 1.

Note that I uninstalled and reinstalled ImageMagick libmagick and libmagick-perl.

I realized the problem because the gscan2pdf program no longer works and produces the following similar error messages:

Invalid version format (non-numeric data) at /usr/lib/perl5/core_perl/DynaLoader.pm line 210.
Compilation failed in require at /usr/lib/perl5/core_perl/parent.pm line 16.
BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/Image/Magick.pm line 22.
Compilation failed in require at /usr/share/perl5/vendor_perl/Gscan2pdf/Page.pm line 14.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Gscan2pdf/Page.pm line 14.
Compilation failed in require at /usr/share/perl5/vendor_perl/Gscan2pdf/Document.pm line 13.
BEGIN failed--compilation aborted at /usr/share/perl5/vendor_perl/Gscan2pdf/Document.pm line 13.
Compilation failed in require at /usr/bin/gscan2pdf line 49.
BEGIN failed--compilation aborted at /usr/bin/gscan2pdf line 49.
&Image::Magick::Q16::constant not defined. The required ImageMagick libraries are not installed or not installed properly.
END failed--call queue aborted at /usr/bin/gscan2pdf line 49.

How do I solve the issue?

mate-terminal fails to run

System

  • xuname:
    Void 4.16.14_1 x86_64 GenuineIntel uptodate rFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  • package:
    mate-terminal-1.20.1_2

Expected behavior

mate terminal runs

Actual behavior

$ mate-terminal ~

(mate-terminal:3562): GLib-GIO-ERROR **: 17:24:38.760: Settings schema 'org.mate.interface' is not installed

fish: โ€œmate-terminalโ€ terminated by signal SIGTRAP (Trace or breakpoint trap)

Steps to reproduce the behavior

  • Install mate-terminal
  • Run it

Staging repo keeps all packages on wait

Just commited a reubild of wkhtmltopdf that unstages a lot of stuff from aarch64* 6ff7661 , is it by design for it to keep all packages, even ones with no relation to the shlib, on hold while the shlib inconsistency is not fixed ?

Khal requires older python-dateutil version

System

  • Void 4.17.3_1 x86_64 GenuineIntel notuptodate rrm
  • khal-0.9.9_1

Expected behavior

Khal should start

Actual behavior

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 570, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 888, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 779, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (python-dateutil 2.7.3 (/usr/lib/python3.6/site-packages), Requirement.parse('python-dateutil<=2.6.1'), {'khal'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/khal", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3095, in <module>
    @_call_aside
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3079, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3108, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 572, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 585, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 774, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'python-dateutil<=2.6.1' distribution was not found and is required by khal

Steps to reproduce the behavior

Install khal and try to execute it.

Bug in package xf86-video-ati-18.0.1_2

System

  • xuname: Void 4.16.12_1 x86_64 AuthenticAMD notuptodate rrDF

  • package:
    xf86-video-ati-18.0.1_2
    xf86-video-amdgpu-18.0.1_2
    xorg-server-1.20.0_1

Expected behavior

The xf86-video-ati-18.0.1_2 package is bugged, it was downgrade to xf86-video-ati-18.0.1_1 and the error is in the new package!

Actual behavior

I uploaded my dmesg log here

Steps to reproduce the behavior

This is the bug, is a part of the log!

99.088369] radeon 0000:00:01.0: GPU lockup (current fence id 0x000000000000000d last fence id 0x000000000000006c on ring 0)
[ 99.592349] radeon 0000:00:01.0: ring 0 stalled for more than 71996msec
[ 99.592371] radeon 0000:00:01.0: GPU lockup (current fence id 0x000000000000000d last fence id 0x000000000000006d on ring 0)
[ 99.910604] radeon 0000:00:01.0: Saved 3090 dwords of commands on ring 0.
[ 99.910619] radeon 0000:00:01.0: GPU softreset: 0x00000019
[ 99.910623] radeon 0000:00:01.0: GRBM_STATUS = 0xE5703CA0
[ 99.910626] radeon 0000:00:01.0: GRBM_STATUS_SE0 = 0xFC000007
[ 99.910629] radeon 0000:00:01.0: GRBM_STATUS_SE1 = 0x00000007
[ 99.910633] radeon 0000:00:01.0: SRBM_STATUS = 0x20000040
[ 99.910636] radeon 0000:00:01.0: SRBM_STATUS2 = 0x00000000
[ 99.910639] radeon 0000:00:01.0: R_008674_CP_STALLED_STAT1 = 0x01000000
[ 99.910642] radeon 0000:00:01.0: R_008678_CP_STALLED_STAT2 = 0x00011000
[ 99.910645] radeon 0000:00:01.0: R_00867C_CP_BUSY_STAT = 0x00068406
[ 99.910648] radeon 0000:00:01.0: R_008680_CP_STAT = 0x80878647
[ 99.910651] radeon 0000:00:01.0: R_00D034_DMA_STATUS_REG = 0x44C83D57
[ 99.922458] radeon 0000:00:01.0: GRBM_SOFT_RESET=0x00007F6B
[ 99.922513] radeon 0000:00:01.0: SRBM_SOFT_RESET=0x00000100
[ 99.923731] radeon 0000:00:01.0: GRBM_STATUS = 0x00003828
[ 99.923735] radeon 0000:00:01.0: GRBM_STATUS_SE0 = 0x00000007
[ 99.923738] radeon 0000:00:01.0: GRBM_STATUS_SE1 = 0x00000007
[ 99.923742] radeon 0000:00:01.0: SRBM_STATUS = 0x20000040
[ 99.923745] radeon 0000:00:01.0: SRBM_STATUS2 = 0x00000000
[ 99.923748] radeon 0000:00:01.0: R_008674_CP_STALLED_STAT1 = 0x00000000
[ 99.923751] radeon 0000:00:01.0: R_008678_CP_STALLED_STAT2 = 0x00000000
[ 99.923754] radeon 0000:00:01.0: R_00867C_CP_BUSY_STAT = 0x00000000
[ 99.923757] radeon 0000:00:01.0: R_008680_CP_STAT = 0x00000000
[ 99.923760] radeon 0000:00:01.0: R_00D034_DMA_STATUS_REG = 0x44C83D57
[ 99.923770] radeon 0000:00:01.0: GPU reset succeeded, trying to resume
[ 99.939184] [drm] Found smc ucode version: 0x00010200
[ 99.948175] [drm] PCIE GART of 1024M enabled (table at 0x0000000000162000).
[ 99.948384] radeon 0000:00:01.0: WB enabled
[ 99.948392] radeon 0000:00:01.0: fence driver on ring 0 use gpu addr 0x0000000018000c00 and cpu addr 0x00000000caa1e429
[ 99.948396] radeon 0000:00:01.0: fence driver on ring 3 use gpu addr 0x0000000018000c0c and cpu addr 0x00000000172bcb9a
[ 99.948902] radeon 0000:00:01.0: fence driver on ring 5 use gpu addr 0x0000000000072118 and cpu addr 0x00000000920878af
[ 99.965489] [drm] ring test on 0 succeeded in 1 usecs
[ 99.965500] [drm] ring test on 3 succeeded in 3 usecs
[ 100.011559] [drm] ring test on 5 succeeded in 1 usecs
[ 100.031682] [drm] UVD initialized successfully.
[ 102.048433] [drm:r600_ib_test [radeon]] ERROR radeon: fence wait timed out.
[ 102.048539] [drm:radeon_ib_ring_tests [radeon]] ERROR radeon: failed testing IB on GFX ring (-110).

stellarium-0.18.0_1 dies with `free() invalid pointer`

System

  • xuname:
    Void 4.16.14_1 x86_64 AuthenticAMD uptodate rrrdFFFFFF
  • package:
    stellarium-0.18.0_1
    mesa-ati-dri-17.3.3_5

Expected behavior

Start up and display GUI.

Actual behavior

Exits during startup due to try to free() invalid pointer.

Steps to reproduce the behavior

Try to run stellarium on a Void x86_64 install with mesa-ati-dri for GL shader implementation. Here's a backtrace of a gdb run with debug libs installed.

I don't see where the problem arises from.

`slit` package is broken

System

  • xuname:
    Void 4.16.14_1 x86_64 GenuineIntel uptodate rF
  • package:
    slit-1.2.0_1

Expected behavior

slit binary is available

Actual behavior

slit package only contains the LICENSE and README.md files

Steps to reproduce the behavior

Install slit-1.2.0_1 package.

Info

tigrawap/slit@15b856f has refactored the repository: a library is in top level, and the command is moved to cmd/slit. The AUR package could be fixed by appending /cmd/slit to the _gourl variable.

Create a specific package for OpenLDAP tools

System

  • xuname:
    Void 4.14.49_1 x86_64 GenuineIntel notuptodate rr
  • package:
    ii openldap-2.4.45_4 OpenLDAP (Lightweight Directory Access Protocol)

Expected behavior

Could you create a separate package for all ldap* tools included in OpenLDAP packages?

Actual behavior

Installing the full OpenLDAP suite, only to be able to use tools like ldapsearch or ldapadd is kinda annoying.

Thanks for you help, folks!
Regards ๐Ÿ’‹

Nvidia fails to install, when installed, doesn't work

System

  • xuname:
    Void 4.16.14_1 x86_64 GenuineIntel uptodate rr
  • package:
    nvidia 390.67_1

Expected behavior

Installs smoothly. After installation, no driver issue/less issues that nouveau

Actual behavior

Package fails as documents here.
When using the work around proposed in at issue, xorg refuses to run with fatal error

(EE) no screens found(EE)

Sidenote, only one monitor prints the tty

Also of note, on unistall (i.e. returning to nouveau driver) no glx engine is installed (many programs returning glx_init() not found)

Steps to reproduce the behavior

Install nvidia package on non-free
Work around to actually install the package

xinit
# fails
sudo xbps-remove -RF nvidia # returning to free drivers
sudo init 6 
# anything that needs openGL to work

Sorry for the rambling issue, kinda was in the irc channel for about a day and didn't get too far (but ran into a lot of silly errors that should probably be fixed)

Broken atom and nodejs-lts (xbps-create?)

I've finally found a reason why atom and nodejs-lts packages are broken for now.

When running xbps-src install <pkgname>, both applications works correctly from destdir. But somehow several files and directories are missing from .xbps package after packaging is done. This can be seen through diff -aurq destdir <extracted package dir>, I summarized output for both pkgs here: https://gist.github.com/solbjorn/38319acac00d932d301414e7d19847f8

As I understand, it happens inside xbps-create. Can't see any logics on skipping files, maybe it's because of too long filepaths or smth like this.
Both uunshare and uchroot styles are affected. I also don't understand why nodejs (stable version) doesn't suffer from that.

Package Template for when out of Beta - Zig - Ziglang

Recommendation: this not be turned into a PR until such a time as the third stage works. That is to say, when the language gets out of absolute Beta quality software.

Recommendation: a build_option of 'bootstrap' be used to trigger a cmake build, else just rely on a preexisting zig package and run stage two and three to do the build (that means building the zig compiler twice, really necessary? Or just a stage 2 compiler will be adequate, since that has the same effect?)

# Template file for 'zig'
pkgname=zig
version=0.2.0
revision=1
build_style=cmake
makedepends="llvm clang zlib-devel libxml2-devel ncurses-devel"
short_desc="Robust, optimal, and clear programming language"
maintainer="Toyam Cox <[email protected]>"
license="MIT"
homepage="https://ziglang.org/"
distfiles="https://github.com/ziglang/zig/archive/${version}.tar.gz"
checksum=09843a3748bf8a5f1742fe93dbf45699f92051ecf479b23272b067dfc3837cc7

post_install() {
        vlicense LICENSE
}

do_check() {
        bin/zig build --build-file ../build.zig test
}

Firefox-61.0_1 Spell Checking broken

System

  • xuname:
    xuname takes to long. x86_64-musl
  • package:
    firefox-61.0_1

Expected behavior

Having Working Spell checking

Actual behavior

Every word does get marked as wrong.

error: file:///usr/lib/firefox/dictionaries/en_GB.aff: cannot open
error: file:///usr/lib/firefox/dictionaries/en_GB.dic: cannot open
error: file:///usr/lib/firefox/dictionaries/en_GB.aff: cannot open

Steps to reproduce the behavior

Start Firefox and click into any text field with spell checking and start typing

Bad signature in aarch64 xkeyboard package

System

# xuname
Void 4.14.48_1 aarch64  uptodate rF

package: xkeyboard-config-2.24_1

When installing xorg-minimal or xorg-server in a aarch64 system, the installation process aborts due to:

xkeyboard-config-2.24_1: verifying RSA signature...
ERROR: xkeyboard-config-2.24_1: the RSA signature is not valid!
ERROR: xkeyboard-config-2.24_1: removed pkg archive and its signature.

Tried both for repo and repo2 repositories.

grafana-5.1.3_1 build files missing, site not working

The grafana package missed some files, there for the website is not working. A local build brings:

$ xbps-query -f grafana | grep build\/
/usr/share/grafana/public/build/0.5c89ac3fc7a3e78b3629.js
/usr/share/grafana/public/build/0.5c89ac3fc7a3e78b3629.js.map
/usr/share/grafana/public/build/app.5372b9bbcb8c6d1c027e.js
/usr/share/grafana/public/build/app.5372b9bbcb8c6d1c027e.js.map
/usr/share/grafana/public/build/dark.8a5e2cbb18876b5f5777.js
/usr/share/grafana/public/build/dark.8a5e2cbb18876b5f5777.js.map
/usr/share/grafana/public/build/grafana.dark.css
/usr/share/grafana/public/build/grafana.dark.css.map
/usr/share/grafana/public/build/grafana.light.css
/usr/share/grafana/public/build/grafana.light.css.map
/usr/share/grafana/public/build/light.a1da10e009c5244e27d3.js
/usr/share/grafana/public/build/light.a1da10e009c5244e27d3.js.map
/usr/share/grafana/public/build/manifest.abf3d2e8075f2fc29334.js
/usr/share/grafana/public/build/manifest.abf3d2e8075f2fc29334.js.map
/usr/share/grafana/public/build/vendor.0cea50118711e7e6c839.js
/usr/share/grafana/public/build/vendor.0cea50118711e7e6c839.js.map

The package in the repo missed this files.

xbps-query -Rf grafana | grep build\/

libinput-1.11.1_1 broken

System

  • xuname:
    Void 4.16.12_2 x86_64 AuthenticAMD uptodate rFFFFFFFFFFFFFFFFF
  • package:
    libinput-1.11.1_1

Actual behavior

  • libinput list-devices segfaults,
  • basic events like tap are not recognized via libinput debug-events

Steps to fix

downgrade to the last known working version, for example
xdowngrade /var/cache/xbps/libinput-1.11.0_1.x86_64.xbps

Elogind errors musl

Continuation from https://github.com/voidlinux/void-packages/issues/13281.

Reported by sstt011 on 8 Apr 2018.

System

  • xuname:
    Void 4.15.15_1 x86_64-musl GenuineIntel uptodate rF
  • package:
    elogind-253.3

Expected behavior

Computer should boot and start GDM through elogind on an musl system (only x86_64-musl tested).

Actual behavior

Expected behavior occurs on non-musl systems.

Almost exactly the same as #10997,

.... elogind[8822]: Cannot determine cgroup we are running in: No medium found
.... elogind[8822]: Out of memory.

is displayed just before login and again after login (command line). A delay of approx. 10 seconds occurs after the second message. This only occurs on musl systems. (only x86_64-musl tested).

Steps to reproduce the behavior

  • Install xorg-minimal and gnome.
  • Enable services dbus and gdm.
  • Reboot.

`ranger` requires `tmux` to be installed

System

  • xuname:
    Void 4.16.14_1 x86_64 GenuineIntel uptodate rF
  • package:
    ranger-1.9.1_1

Expected behavior

ranger starts correctly.

Actual behavior

ranger fails to start, the terminal is messed up, because the tmux binary is not found.

Steps to reproduce the behavior

Install ranger on a system that don't have tmux installed.

Version Bump: keepalived-2.0.5

keepalived-1.4 branch seems to be no longer maintained and all development and bug fixes go into 2.0 branch. keepalived-2.0 was released in May of this year and is receiving regular updates. If 2.0 is still too new for the repo maintainers to consider it stable, please update keepalived to 1.4.5.

Compile fails inside xbps-src binary-bootstrap with "ld: unrecognized option '-Wl,-z,-relro'"

System

  • xuname:
    • Void 4.16.14_1 x86_64 GenuineIntel notuptodate rrm

I'm trying to build Slic3r using these instructions.

Running the first command perl Build.PL in my normal environment produces this output:
https://pastebin.com/hJyQjFmM

On the other hand, building it using ./xbps-src pkg Slic3r fails when the compilation starts.
https://pastebin.com/udJAxAkh

'-Wl,-z,-relro' seems to have something to do with cross-compiling, which I'm not trying to do.

You can find my template file here (ignore the clutter in dependencies, I've been throwing random things in hoping they would fix it)

Building fails on aarch64-musl: usbip

System

  • xuname:
    Void 4.14.48_1 aarch64-musl notuptodate rFF

  • package:
    usbip-4.16.2_1

Expected behavior

Build successful.

Actual behavior

Fails building:

=> usbip-4.16.2_1: installing target dependency 'slang-devel-2.3.2_2' ...
=> linux-tools-4.16.2_1: running pre-build hook: 02-script-wrapper ...
=> linux-tools-4.16.2_1: running do_build ...
[...]
BUILD: Doing 'make -j4' parallel build
SUBDIR Documentation
XMLTO perf-kallsyms.1
XMLTO perf-inject.1
XMLTO perf-mem.1
XMLTO perf-record.1
Assertion failed: !"sizeof lock obj" (posix-lock.c: get_lock_object: 118)
/usr/bin/xmlto: line 613: 9330 Aborted "/usr/bin/xsltproc" --nonet --xinclude --param passivetex.extensions '1' -o "/tmp/xmlto.sFxF9Y/perf-kallsyms.proc" "/tmp/xmlto-xsl.9gXrjN" "/builddir/linux-4.16.2/tools/perf/Documentation/perf-kallsyms.xml"
make[2]: *** [Makefile:272: perf-kallsyms.1] Error 134
make[2]: *** Waiting for unfinished jobs....
Assertion failed: !"sizeof lock obj" (posix-lock.c: get_lock_object: 118)
/usr/bin/xmlto: line 613: 9333 Aborted "/usr/bin/xsltproc" --nonet --xinclude --param passivetex.extensions '1' -o "/tmp/xmlto.Pyg8Yx/perf-mem.proc" "/tmp/xmlto-xsl.beZw8s" "/builddir/linux-4.16.2/tools/perf/Documentation/perf-mem.xml"
Assertion failed: !"sizeof lock obj" (posix-lock.c: get_lock_object: 118)
/usr/bin/xmlto: line 613: 9329 Aborted "/usr/bin/xsltproc" --nonet --xinclude --param passivetex.extensions '1' -o "/tmp/xmlto.4WFPvV/perf-inject.proc" "/tmp/xmlto-xsl.qbAZ6e" "/builddir/linux-4.16.2/tools/perf/Documentation/perf-inject.xml"
make[2]: *** [Makefile:272: perf-mem.1] Error 134
make[2]: *** [Makefile:272: perf-inject.1] Error 134
Assertion failed: !"sizeof lock obj" (posix-lock.c: get_lock_object: 118)
/usr/bin/xmlto: line 613: 9331 Aborted "/usr/bin/xsltproc" --nonet --xinclude --param passivetex.extensions '1' -o "/tmp/xmlto.2XMpFo/perf-record.proc" "/tmp/xmlto-xsl.E06OMd" "/builddir/linux-4.16.2/tools/perf/Documentation/perf-record.xml"
make[2]: *** [Makefile:272: perf-record.1] Error 134
make[1]: *** [Makefile.perf:704: man] Error 2
make: *** [Makefile:110: man] Error 2
=> ERROR: linux-tools-4.16.2_1: do_build: 'make ${makejobs} CC=$CC LD=$LD CFLAGS="$CFLAGS" EXTRA_CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" WERROR=0 DESTDIR=${DESTDIR} prefix=/usr lib=lib/perf NO_GTK2=1 NO_SDT=1 PERF_VERSION=${version}_${revision} all man' exited with 2
=> ERROR: in do_build() at srcpkgs/linux-tools/template:39

Steps to reproduce the behavior

./xbps-src pkg usbip (on aarch64)

We should use constant uids and gids for system accounts.

The system_accounts variable in xbps templates does let you do this, but
nobody ever seems to use it. Really, we should. As things stand now,
uids and gids for system users are a bit random. This is both fragile
and possibly insecure, especially in the event of package uninstalls
or reinstalls.

sddm: shutdown, suspend and restart not working

System

  • xuname:
    Void 4.16.14_1 x86_64 GenuineIntel uptodate rF
  • package:
    sddm-0.15.0_2
    elogind-238.1_1
    dbus-1.12.8_1

Expected behavior

The buttons to shutdown, suspend and restart should work after booting.

Actual behavior

After booting, the buttons are not shown or they are disabled (depending on the theme). When sddm service is restarted, the buttons work.

Steps to reproduce the behavior

sudo xbps-install -R sddm dbus elogind polkit-elogind
sudo ln -s /etc/sv/sddm /var/service/
sudo ln -s /etc/sv/dbus /var/service/
reboot
try to click the shutdown/suspend/restart buttons in sddm
sudo sv restart sddm
try to click the shutdown/suspend/restart buttons in sddm again

I think this is a race condition with elogind. This has also been reported upstream: sddm/sddm#978

I think the sddm service should wait for elogind to start. But I do not know how to add a check for elogind, because there are no service files for elogind. It seems to be started by some other mechanism than runit.

Firefox sndio tips are hard to find

I just updated to FF 60, and my audio broke. I feel like we should have a single list of settings needed to make sound work on FF.

So here is the list! I know I'm missing things. Please comment to add.

media.cubeb.backend       sndio

apparmor: profile broke dhcpcd

System

CC: @olivier-mauras

  • xuname:
    Void 4.16.14_1 x86_64 GenuineIntel
  • package:
    • dhcpcd
    • apparmor

Expected behavior

dhcpcd should work

Actual behavior

dmesg with denials:

[  724.775214] audit: type=1400 audit(1529313941.992:7446): apparmor="DENIED" operation="open" profile="dhcpcd//dhcpcd_run_hooks" name="/etc/ntp.conf" pid=18788 comm="sed" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[  724.775745] audit: type=1400 audit(1529313941.992:7447): apparmor="DENIED" operation="open" profile="dhcpcd//dhcpcd_run_hooks" name="/etc/ntp.conf" pid=18789 comm="cmp" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[  724.775868] audit: type=1400 audit(1529313941.992:7448): apparmor="DENIED" operation="open" profile="dhcpcd//dhcpcd_run_hooks" name="/etc/ntp.conf" pid=18782 comm="dhcpcd-run-hook" requested_mask="wc" denied_mask="wc" fsuid=0 ouid=0
[  724.776548] audit: type=1400 audit(1529313941.993:7449): apparmor="DENIED" operation="exec" profile="dhcpcd//dhcpcd_run_hooks" name="/usr/bin/sv" pid=18791 comm="dhcpcd-run-hook" requested_mask="x" denied_mask="x" fsuid=0 ouid=0
[  724.781450] audit: type=1400 audit(1529313941.998:7450): apparmor="DENIED" operation="open" profile="dhcpcd//dhcpcd_run_hooks" name="/etc/ntp.conf" pid=18798 comm="sed" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[  724.781946] audit: type=1400 audit(1529313941.998:7451): apparmor="DENIED" operation="open" profile="dhcpcd//dhcpcd_run_hooks" name="/etc/ntp.conf" pid=18799 comm="cmp" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[  724.782056] audit: type=1400 audit(1529313941.999:7452): apparmor="DENIED" operation="open" profile="dhcpcd//dhcpcd_run_hooks" name="/etc/ntp.conf" pid=18792 comm="dhcpcd-run-hook" requested_mask="wc" denied_mask="wc" fsuid=0 ouid=0
[  724.782723] audit: type=1400 audit(1529313941.999:7453): apparmor="DENIED" operation="exec" profile="dhcpcd//dhcpcd_run_hooks" name="/usr/bin/sv" pid=18801 comm="dhcpcd-run-hook" requested_mask="x" denied_mask="x" fsuid=0 ouid=0
[  724.807101] audit: type=1400 audit(1529313942.024:7454): apparmor="DENIED" operation="open" profile="dhcpcd//dhcpcd_run_hooks" name="/etc/ntp.conf" pid=18809 comm="sed" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[  724.807756] audit: type=1400 audit(1529313942.024:7455): apparmor="DENIED" operation="open" profile="dhcpcd//dhcpcd_run_hooks" name="/etc/ntp.conf" pid=18810 comm="cmp" requested_mask="r" denied_mask="r" fsuid=0 ouid=0

Steps to reproduce the behavior

  • install apparmor
  • enable apparmor in the kernel command line
  • put apparmor in enforce mode
  • enable dhcpcd service
  • reboot

runit-void template compiles, but does not package, vlogger(8)

System

  • xuname:
    Void 4.17.2_blackbox x86_64 GenuineIntel uptodate rFFFFF
  • package:
    runit-void-20180620_1

Expected behavior

% xls runit-void | grep vlogger
/usr/bin/vlogger

Actual behavior

% xls runit-void | grep vlogger

Steps to reproduce the behavior

  1. run xls runit-void
  2. Build runit-void with ./xbps-src. It compiles vlogger.c. Then xls it.

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.