AFS-PAG
view release on metacpan or search on metacpan
if (!$config->check_header('stdbool.h')) {
$config->check_type('_Bool');
}
$config->check_type('sig_atomic_t', undef, undef,
include(qw(sys/types.h signal.h)));
$config->check_type('ssize_t', undef, undef, include('sys/types.h'));
# Checks needed by all libkafs code.
$config->check_header('sys/ioccom.h');
# If the user passed extra flags into Build.PL, use them for probes.
if ($build->extra_linker_flags) {
my $flags = $build->extra_linker_flags;
my @flags = ref($flags) ? @{$flags} : ($flags);
$config->push_link_flags(@flags);
}
# Check if we have a library available to us. If so, check whether it
# provides k_pioctl and k_haspag and then return.
my $lib = $config->search_libs('k_hasafs', ['kafs', 'kopenafs']);
my @files;
if ($lib) {
$config->define_var('HAVE_K_HASAFS', 1,
'Define to 1 if you have the k_hasafs function.');
my $flags = $build->extra_linker_flags;
my @flags = ref($flags) ? @{$flags} : ($flags);
$build->extra_linker_flags(@flags, '-l' . $lib);
if ($lib eq 'kafs') {
$config->check_header('kafs.h');
} elsif ($lib eq 'kopenafs') {
$config->check_header('kopenafs.h');
}
check_funcs($config, ['k_pioctl']);
if (!check_funcs($config, ['k_haspag'])) {
@files = qw(portable/k_haspag.c);
}
} else {
my $build = Module::Build->new(
module_name => 'AFS::PAG',
dist_version_from => 'lib/AFS/PAG.pm',
dist_author => 'Russ Allbery <rra@cpan.org>',
license => 'mit',
recursive_test_files => 1,
add_to_cleanup => [qw(config.log cover_db glue/*.o)],
# XS configuration.
c_source => 'glue',
extra_compiler_flags => ['-I.'],
# Additional package metadata.
meta_merge => {
resources => {
repository => 'git://git.eyrie.org/afs/afs-pag.git',
bugtracker =>
'https://rt.cpan.org/Public/Dist/Display.html?Name=AFS-PAG',
},
},
AFS::PAG uses Module::Build and can be installed using the same process
as any other Module::Build module:
perl Build.PL
./Build
./Build test
./Build install
If your libkafs or libkopenafs libraries are in a path that's not
searched by your linker by default, pass them to Build.PL using the
--extra-linker-flags option, as in:
perl Build.PL --extra-linker-flags '-L/opt/openafs/lib'
You will have to run the last command as root unless you're installing
into a local Perl module tree in your home directory.
SUPPORT
The AFS::PAG web page at:
http://www.eyrie.org/~eagle/software/afs-pag/
kafs/kafs.c view on Meta::CPAN
* we change this static variable is to say that the call failed, so there
* shouldn't be a collision of updates from multiple calls.
*
* It's probably safe to just ignore SIGSYS instead, but this feels more
* thorough.
*/
static volatile sig_atomic_t syscall_okay = 1;
/*
* Signal handler to catch failed system calls and change the okay flag.
*/
#ifdef SIGSYS
static void
sigsys_handler(int s UNUSED)
{
syscall_okay = 0;
signal(SIGSYS, sigsys_handler);
}
#endif /* SIGSYS */
( run in 1.141 second using v1.01-cache-2.11-cpan-94b05bcf43c )