diff --git a/perl-X500-DN.spec b/perl-X500-DN.spec index 6d004fa..2bb41cd 100644 --- a/perl-X500-DN.spec +++ b/perl-X500-DN.spec @@ -1,4 +1,143 @@ # +# +# built-in perl-macro + +# macros.perl file +# macros for perl module building. handle with care. + +# Useful perl macros (from Artur Frysiak ) +# +%define perl_sitearch %(eval "`%{__perl} -V:installsitearch`"; echo $installsitearch) +%define perl_sitelib %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib) +%define perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch) +%define perl_vendorlib %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib) +%define perl_archlib %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib) +%define perl_privlib %(eval "`%{__perl} -V:installprivlib`"; echo $installprivlib) + +# More useful perl macros (from Raul Dias ) +# +%define perl_version %(perl -V:version | sed "s!.*='!!;s!'.*!!") +%define perl_man1ext %(perl -V:man1ext | sed "s!.*='!!;s!'.*!!") +%define perl_man3ext %(perl -V:man3ext | sed "s!.*='!!;s!'.*!!") +%define perl_man1dir %(perl -V:man1dir | sed "s!.*='!!;s!'.*!!") +%define perl_man3dir %(perl -V:man3dir | sed "s!.*='!!;s!'.*!!") +%define perl_installman1dir %(perl -V:installman1dir | sed "s!.*='!!;s!'.*!!") +%define perl_installman3dir %(perl -V:installman3dir | sed "s!.*='!!;s!'.*!!") +%define perl_installarchlib %(perl -V:installarchlib | sed "s!.*='!!;s!'.*!!") +%define perl_prefix %{buildroot} + +# Macro to encapsulate perl requires (empty for fedora) +# we keep the complicated form even here to easy sync the other macros with +# perl-macros package +# +%define perl_requires() \ +%if 0%{?suse_version} > 0 \ +Requires: perl(:MODULE_COMPAT_%{perl_version}) \ +%endif + +%define libperl_requires() \ +%if 0%{?suse_version} > 0 \ +Requires: perl = %{perl_version} \ +%endif + +# suse specific macros +# +%define perl_make_install make DESTDIR=$RPM_BUILD_ROOT install_vendor +%define perl_process_packlist(n:) \ + if test -n "$RPM_BUILD_ROOT" -a -d $RPM_BUILD_ROOT%perl_vendorarch/auto; then \ + find $RPM_BUILD_ROOT%perl_vendorarch/auto -name .packlist -print0 | xargs -0 -r rm \ + if [ %{_target_cpu} == noarch ]; then \ + find $RPM_BUILD_ROOT%perl_vendorarch/auto -depth -type d -print0 | xargs -0 -r rmdir \ + fi \ + fi \ + rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod \ + %nil + +# macro: perl_gen_filelist (from Christian ) +# do the rpmlint happy filelist generation +# with %dir in front of directories +# +%define perl_gen_filelist(n)\ +FILES=%{name}.files\ +# fgen_dir func\ +# IN: dir\ +fgen_dir(){\ +%{__cat} >> $FILES << EOF\ +%dir ${1}\ +EOF\ +}\ +# fgen_file func\ +# IN: file\ +fgen_file(){\ +%{__cat} >> $FILES << EOF\ +${1}\ +EOF\ +}\ +# check for files in %{perl_vendorlib}\ +RES=`find ${RPM_BUILD_ROOT}%{perl_vendorlib} -maxdepth 1 -type f`\ +if [ -n "$RES" ]; then\ + for file in $RES; do\ + fgen_file "%{perl_vendorlib}/$(basename ${file})"\ + done\ +fi\ +\ +# get all dirs into array\ +base_dir="${RPM_BUILD_ROOT}%{perl_vendorlib}/"\ +for dir in `find ${base_dir} -type d | sort`; do\ + if [ "$dir" = "${base_dir}" ]; then\ + continue\ + else\ + el=${dir#$base_dir}\ + all_dir=(${all_dir[@]} $el)\ + fi\ +done\ +\ +# build filelist\ +for i in ${all_dir[@]}; do\ + # do not add "dir {perl_vendorlib/arch}/auto", included in perl package\ + if [ "${i}" = "auto" ]; then\ + continue\ + fi\ + if [ "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}/auto" ]; then\ + continue\ + else\ + if [ -d ${base_dir}/${i} ]; then\ + if [ "%{perl_vendorlib}/${i}" != "%{perl_vendorarch}" ]; then\ + fgen_dir "%{perl_vendorlib}/${i}"\ + fi\ + RES=`find "${base_dir}/${i}" -maxdepth 1 -type f`\ + for file in $RES; do\ + fgen_file "%{perl_vendorlib}/${i}/$(basename ${file})"\ + done\ + fi\ + fi\ +done\ +# add man pages\ +# if exist :)\ +if [ -d "${RPM_BUILD_ROOT}%{_mandir}" ]; then\ +for file in `cd "${RPM_BUILD_ROOT}%{_mandir}" && find . -type f -name "*3pm*"`; do \ + if test -e "%{_mandir}/$file" -o -e "%{_mandir}/$file.gz"; then \ + mv ${RPM_BUILD_ROOT}%{_mandir}/$file ${RPM_BUILD_ROOT}%{_mandir}/${file/3pm/3pmc} \ + fi \ +done \ +fgen_file "%{_mandir}/man?/*"\ +fi\ +\ +# add packlist file\ +# generated fom perllocal.pod\ +if [ -f "${RPM_BUILD_ROOT}/var/adm/perl-modules/%{name}" ]; then\ + fgen_file "/var/adm/perl-modules/%{name}"\ +fi\ +\ +# check for files in %{_bindir}\ +if [ -d ${RPM_BUILD_ROOT}%{_bindir} ]; then\ + RES=`find "${RPM_BUILD_ROOT}%{_bindir}" -maxdepth 1 -type f`\ + if [ -n "$RES" ]; then\ + for file in $RES; do\ + fgen_file "%{_bindir}/$(basename ${file})"\ + done\ + fi\ +fi # spec file for package perl-X500-DN # # Copyright (c) 2019 SUSE LLC