Commit Graph

33 Commits

Author SHA1 Message Date
Đoàn Trần Công Danh 2deec738e1 do-extract: move main logic into helper function 2023-08-21 11:27:32 +07:00
classabbyamp b452017c3c common/hooks/do-extract/00-distfiles.sh: support .tar.zst and .zst
.tar.zst: bsdtar is built with support for it, so this shouldn't cause issues
.zst: zstd isn't in base-chroot, so it will need to be specified explicitly
2023-03-06 23:45:51 -05:00
Đoàn Trần Công Danh e64f6c2c46 hooks/do-extract: fix for extract distfiles to single file
We missed the case that distfiles was extracted to a single file.
Instead of changing the second leg, we can simply remove the third leg
because renaming the empty $extractdir to $wrksrc is the same of create
new empty $wrksrc
2023-02-27 13:45:29 +07:00
Đoàn Trần Công Danh 9371fe8339 do-extract: don't add layer for Macintosh and php metadata
Some softwares insisted on have some manifest in top-level directory,
like package.xml for php packages. Some other packages was zipped on
macOS, which will insert some macOS metadata files into zoom.

See-also: dc73556cf3 and its parents.
See-also: 94fe74e506

Those files doesn't justify the need of adding a layer automatically
in extraction step.

Let's move them up.
2023-02-25 10:48:06 +07:00
Đoàn Trần Công Danh c57c2b8a90 do-extract: change cwd to $extractdir to check number of files
In order to simplify the next change, to simplify the processing steps
for PHP and/or Macintosh metadata.
2023-02-25 10:48:06 +07:00
Đoàn Trần Công Danh 1b2519f765 do-extract: extract rpm with bsdtar, too 2022-11-30 23:20:04 +07:00
classabbyamp c18090b458 common/hooks/do-extract/00-distfiles.sh: support deb files
Co-authored-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2022-11-18 23:47:23 -05:00
Đoàn Trần Công Danh 509f79078c hooks: do-extract: extract to temp dir then rename
Extracting to temporary directory then renaming to real $wrksrc,
will make the do-extract steps works atomicity. Either $wrksrc is there
and complete, or it's not there.

Accidentally, this change has a side effect, we can no longer care about
the name of top-level components of a tarball, since we will rename the
top level directory in question to $wrksrc. IOW, we don't need to set
$wrksrc any longer.  The side effect of above side effect: we can starting
to build multiple packages that have same top-level's name without clean
from now on.

In another hand, we only rename the inner directory if the extracted
file hierarchy has single top-level directory, we will use the
renamed-temporary directory as the $wrksrc, $create_wrksrc variable is
no longer relevant, and do-clean will always work probably instead of
leaving some trash behind like before.
2022-11-08 22:30:37 +07:00
Đoàn Trần Công Danh a67189c236 hooks: do-extract: simplify gem extraction 2022-11-08 22:30:37 +07:00
Piotr Wójcik 6efc7dd98d xbps-src: quote wrksrc to allow whitespace 2020-09-03 21:03:32 +02:00
Piotr Wójcik e06efd6bbb hooks/do-extract: refrain from extracting text files outside wrksrc 2020-02-19 19:02:01 +01:00
Piotr Wójcik 9e585603d6 hooks/do-extract: treat *.sh files as text files 2020-02-19 19:02:01 +01:00
innerspacepilot 0c523c2240 add support for .xz compressed files 2020-02-12 08:36:14 +01:00
mobinmob d224b06d8e 00-distfiles.sh: allow bsdtar for zip and 7z archives 2020-01-24 14:53:41 +01:00
q66 2b7fb8124c 00-distfiles.sh: allow bsdtar for ruby gems 2020-01-11 18:52:20 +01:00
Juan RP d547e90018 hooks/do-extract: 00-distfiles.sh: disable trap on ERR. 2020-01-05 10:44:56 +01:00
Juan RP d15b1f6746 hooks: 00-distfiles.sh: detect bsdtar and then tar (GNU).
This way xbps-src is able to work with any of them.
2020-01-05 10:44:56 +01:00
Juan RP 75eca1b03e xbps-src: base-chroot-v2 (reduce artifacts/deps)
This patchset contains multiple changes to xbps-src and
its required package "base-chroot" for building packages
via chroot.

- moved xbps.d(5) conf files to `etc/xbps.d`.
- renamed xbps.d(5) repository files to `etc/xbps.d/repos-{local,remote}*`.
- do not set `--repository` to any xbps command that supports it,
  xbps-src now simply populates `rootdir/etc/xbps.d` with correct
  settings (taking care of CHROOT_READY/IN_CHROOT).
- Unless `-C` is set (to preserve builddir/destdir/autodeps), when
  entering to the chroot (if CHROOT_READY is set), xbps-src will
  clean up the masterdir and then perform a system update to always
  use a constant set of packages for that exact date.
- Improved some normal/error msgs.
- Includes support for `xbps>=0.58`.
- common/hooks: switch to bsdtar.
- base-chroot:
  - base-chroot-musl is gone, now unified for glibc/musl.
  - deps removed: gettext, mpfr, readline, texinfo, which, xz.
  - deps changed: tar -> bsdtar.

Effectively this reduces dependencies in `base-chroot`, makes
it unified for musl and glibc, switches xbps-src to use `bsdtar`
rather than GNU `tar` and `xz`, gets rid of useless host dependencies
like GNU gettext, texinfo, etc.

I've been testing these changes for 1 month or so already,
I was able to build from scratch `base-system` for both native
and multiple targets, i.e `./xbps-src -a target -Nt pkg base-system`
2020-01-05 10:44:56 +01:00
Juan RP 1ee6a3174f xbps-src: reduce basename(1) usage.
This saves a few exec()s.
2019-04-14 01:47:16 -03:00
maxice8 8956ff14f7
meta: forcefully gunzip and bunzip2 .gz and .bz2 files.
Otherwise it gets stuck with a confirmation prompt.
2019-03-03 19:34:54 -03:00
Rasmus Thomsen a8f008f21c hook/do-extract: support extracting .crate files 2018-11-02 08:59:03 -03:00
maxice8 c6c249348d hooks/do-extract: support extracting .gem files with gem unpack. 2018-10-27 09:25:31 -03:00
Juan RP c23daff127 xbps-src: handle .7z distfiles via 7z. 2016-01-11 11:02:44 +01:00
Alessio Sergi 55768ad59d xbps-src: distfiles: allow uncompressed distfiles
Do not extract them, just copy to $extractdir.
The allowed suffixes are: .patch, .diff, .txt.
2015-10-23 20:09:31 +02:00
Juan RP a786acf4d2 hooks/distfiles: do not respect perms/owner when extracting via tar.
With user namespaces and uid/gid == 0, tar will try to respect them
and will fail with EINVAL.
2015-03-05 20:27:28 +01:00
Christian Neukirchen 09c1d7d1da do-extract/00-distfiles.sh: unzip -o to overwrite without asking. 2014-12-12 10:32:12 +01:00
John Galt 440d5d8772 do-extract: allow patch distfile suffix
And do nothing with them
2014-09-06 19:35:08 -07:00
Juan RP 65bf4d6fca hooks/do-extract/00-distfiles: supports rpm extraction via rpmextract. 2014-05-08 18:44:54 +02:00
Juan RP 14c15b0973 hooks/do-extract/distfiles: simplify and support .tar.lz files. 2014-03-14 11:04:51 +01:00
Enno Boland 3ea159d359 common/hooks/do-extract: support 'xbps-uhelper fetch's new '>'-destfile syntax; replace if/elif by case struct for choosing extract method. 2014-03-12 16:44:54 +01:00
Juan RP 80240ba2fc hooks/do-extract/00-distfiles: do not exit, return instead. 2014-03-12 10:32:50 +01:00
Juan RP 8935913ab3 hooks/do-extract/00-distfiles: typo fix that broke extraction of gzipped distfiles. 2014-03-06 11:05:41 +01:00
Juan RP aa83852d7b common/hooks: add support for do-<phase> hooks as suggested by Gottox.
- New hooks for do-fetch and do-extract moved from xbps-src.
- Renamed some hooks to have XX as prefix.
2014-03-05 11:02:37 +01:00