Alien::...ld::Copy(3)

πŸ’– Alien::Build::Plugin::Build::Copy β€” the man page πŸ’–

okay so this is the user-contributed Perl documentation page for the Build::Copy plugin, and yes the header truncates it to Alien::...ld::Copy(3) because man pages are dramatic like that. Bestie, it's giving "I just copy files and I'm unbothered." Let's get into it. πŸŽ€


✨ NAME ✨

Alien::Build::Plugin::Build::Copy β€” the Copy plugin for Alien::Build 🫢


🌸 VERSION 🌸

version 2.88 β€” she's on 2.88, no cap. ⭐


πŸ¦‹ SYNOPSIS πŸ¦‹

use alienfile;
plugin 'Build::Copy';

That's it. That's the whole vibe check. ✨


πŸ’… DESCRIPTION πŸ’…

So here's the tea: this plugin copies all of the files from the source to the staging prefix. All of them. Every single one. She's not picky, she's not filtering, she's just moving the whole squad over. πŸ‘‘

Why would you want that? Mainly for software packages that ship as binary blobs β€” you know, the ones where there's no build step, no Makefile, no nothing, just a lump of precompiled goodness. πŸ’€

And the iconic part? It works on both Unix and Windows, using the appropriate commands for those platforms, so you don't have to sit there worrying about platform details in your alienfile. She handles it. Periodt. 🌈


🧚 Filtering files, iykyk 🧚

If you want to filter, add, or remove files from what actually gets installed, you can use a before hook. Very much a "not me editing the guest list" moment:

build {
  ...
  before 'build' => sub {
    # remove or modify files
  };
  plugin 'Build::Copy';
  ...
};

πŸ“ When it's blobs on one platform and source on another πŸ“

Some packages might have binary blobs on some platforms and require a build from source on others. (The duality. The range. 😭) In that situation you can use if statements with the appropriate logic in your alienfile.

configure {
  # normally the Build::Copy plugin will insert itself
  # as a config requires, but since it is only used
  # on some platforms, you will want to explicitly
  # require it in your alienfile in case you build your
  # alien dist on a platform that doesn't use it.
  requires 'Alien::Build::Plugin::Build::Copy';
};

build {
  ...
  if($^O eq 'linux')
  {
    start_url 'http://example.com/binary-blob-linux.tar.gz';
    plugin 'Download';
    plugin 'Extract' => 'tar.gz';
    plugin 'Build::Copy';
  }
  else
  {
    start_url 'http://example.com/source.tar.gz';
    plugin 'Download';
    plugin 'Extract' => 'tar.gz';
    plugin 'Build::Autoconf';
  }
};

Read the comment in there, bestie β€” it's important: normally the Build::Copy plugin will insert itself as a config requires, but since it is only used on some platforms, you will want to explicitly require it in your alienfile in case you build your alien dist on a platform that doesn't use it. πŸ’œ


πŸ‘‘ AUTHOR πŸ‘‘

Author: Graham Ollis <plicease@cpan.org>

Contributors β€” the whole group chat, roll call, everyone say hi 🫢:

  • Diab Jerius (DJERIUS)
  • Roy Storey (KIWIROY)
  • Ilya Pavlov
  • David Mertens (run4flat)
  • Mark Nunberg (mordy, mnunberg)
  • Christian Walde (Mithaldu)
  • Brian Wightman (MidLifeXis)
  • Zaki Mughal (zmughal)
  • mohawk (mohawk2, ETJ)
  • Vikas N Kumar (vikasnkumar)
  • Flavio Poletti (polettix)
  • Salvador FandiΓ±o (salva)
  • Gianni Ceccarelli (dakkar)
  • Pavel Shaydo (zwon, trinitum)
  • Kang-min Liu (εŠ‰εΊ·ζ°‘, gugod)
  • Nicholas Shipp (nshp)
  • Juan JuliΓ‘n Merelo GuervΓ³s (JJ)
  • Joel Berger (JBERGER)
  • Petr PΓ­saΕ™ (ppisar)
  • Lance Wicks (LANCEW)
  • Ahmad Fatoum (a3f, ATHREEF)
  • JosΓ© JoaquΓ­n Atria (JJATRIA)
  • Duke Leto (LETO)
  • Shoichi Kaji (SKAJI)
  • Shawn Laffan (SLAFFAN)
  • Paul Evans (leonerd, PEVANS)
  • HΓ₯kon HΓ¦gland (hakonhagland, HAKONH)
  • nick nauwelaerts (INPHOBIA)
  • Florian Weimer
  • Marcel Telka (mtelka)

This software is copyright (c) 2011-2022 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Slay, and legally so. 🌈


okay that's the whole page, bestie β€” this was perl v5.42.3, dated 2026-09-21, filed under Alien::...ld::Copy(3). Mwah, go copy some files. πŸ’…πŸ’–πŸŽ€

πŸ“¦ where this page comes from