vcs-snapshot.eclass

Name

vcs-snapshot.eclass -- support eclass for unpacking VCS snapshot tarballs

Description

THIS ECLASS IS NOT NECESSARY FOR MODERN GITHUB AND GITLAB SNAPSHOTS. THEIR DIRECTORY STRUCTURE IS ENTIRELY PREDICTABLE, SO UPDATE YOUR EBUILD TO USE /ARCHIVE/ URI AND SET S IF NECESSARY.

This eclass provides a convenience src_unpack() which does unpack all the tarballs in SRC_URI to locations matching their (local) names, discarding the original parent directory.

The typical use case are VCS tag snapshots coming from BitBucket (but not GitHub or GitLab). They have hash appended to the directory name which makes extracting them a painful experience. But if you are using a SRC_URI arrow to rename them (which quite likely you have to do anyway), vcs-snapshot will just extract them into matching directories.

Please note that this eclass handles only tarballs (.tar, .tar.gz, .tar.bz2 & .tar.xz). For any other file format (or suffix) it will fall back to regular unpack. Support for additional formats may be added in the future if necessary.

Supported EAPIs

6 7 8

Example

EAPI=7
inherit vcs-snapshot

SRC_URI="
   https://bitbucket.org/foo/bar/get/${PV}.tar.bz2 -> ${P}.tar.bz2
   https://bitbucket.org/foo/bar-otherstuff/get/${PV}.tar.bz2
       -> ${P}-otherstuff.tar.bz2"

and however the tarballs were originally packed, all files will appear in ${WORKDIR}/${P} and ${WORKDIR}/${P}-otherstuff respectively.

Exported Phases

  • src_unpack

Functions

vcs-snapshot_src_unpack

Extract all the archives from ${A}. The .tar, .tar.gz, .tar.bz2 and .tar.xz archives will be unpacked to directories matching their local names. Other archive types will be passed down to regular unpack.

Maintainers

mgorny@gentoo.org

Reporting Bugs

Please report bugs via https://bugs.gentoo.org/