# 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 libyui-bindings # # Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # # nodebuginfo Name: libyui-bindings # DO NOT manually bump the version here; instead, use rake version:bump Version: 4.6.3 Release: 0 Summary: Bindings for libyui License: LGPL-2.1-only OR LGPL-3.0-only Group: Development/Sources URL: https://github.com/libyui/libyui-bindings BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: cmake BuildRequires: gcc-c++ # New cmake build environment BuildRequires: libyui-devel >= %{version} # Adaptation for openEuler package architecture BuildRequires: perl-devel BuildRequires: python3-devel BuildRequires: ruby-devel BuildRequires: swig Source: libyui-%{version}.tar.bz2 Prefix: /usr %description This package provides Ruby language bindings to access functions of libyui - An User Interface engine that provides the abstraction from graphical user interfaces (Qt, Gtk) and text based user interfaces (ncurses). Authors: --------- - kkaempf@suse.de - dmacvicar@suse.de %prep %setup -q -n libyui-%{version} %build export CFLAGS="-L%{_libdir}" export CXXFLAGS="-L%{_libdir}" pushd %{name} mkdir build cd build cmake -DYPREFIX=%{prefix} \ -DCMAKE_INSTALL_PREFIX=%{prefix} \ -DLIB=%{_lib} \ -DPYTHON_SITEDIR=%{python3_sitelib} \ -DCMAKE_VERBOSE_MAKEFILE=TRUE \ -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags}" \ -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{optflags}" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SKIP_RPATH=1 \ -DBUILD_RUBY_GEM=no \ .. make %{?jobs:-j %jobs} popd %install pushd %{name} cd build make install DESTDIR=$RPM_BUILD_ROOT popd %clean %{__rm} -rf %{buildroot} %package -n ruby-yui Summary: Ruby bindings for libyui Group: Development/Languages/Ruby %description -n ruby-yui This package provides Ruby language bindings to access functions of libyui - An User Interface engine that provides the abstraction from graphical user interfaces (Qt, Gtk) and text based user interfaces (ncurses). Authors: --------- - kkaempf@suse.de - dmacvicar@suse.de %package -n python3-yui Summary: Python 3 bindings for libyui Group: Development/Languages/Python %description -n python3-yui This package provides Python 3 language bindings to access functions of libyui - An User Interface engine that provides the abstraction from graphical user interfaces (Qt, Gtk) and text based user interfaces (ncurses). Authors: --------- - kkaempf@suse.de - dmacvicar@suse.de %package -n perl-yui %{perl_requires} Summary: Perl bindings for libyui Group: Development/Languages/Perl %description -n perl-yui This package provides Perl language bindings to access functions of yast2-libyui - An User Interface engine that provides the abstraction from graphical user interfaces (Qt, Gtk) and text based user interfaces (ncurses). Authors: --------- - kkaempf@suse.de - dmacvicar@suse.de %files -n ruby-yui %defattr(-,root,root,-) %doc %{name}/swig/ruby/examples/*.rb %{_datadir}/ruby/vendor_ruby/yui/*.rb %{_datadir}/ruby/vendor_ruby/yui.rb %{_libdir}/ruby/vendor_ruby/_yui.so %files -n python3-yui %defattr(-,root,root,-) %doc %{name}/swig/python/examples/*.py %{python3_sitelib}/_yui.so %{python3_sitelib}/yui.py %exclude %dir %{python3_sitelib}/__pycache__ %exclude %{python3_sitelib}/__pycache__/*.pyc %files -n perl-yui %defattr(-,root,root,-) %doc %{name}/swig/perl/examples/*.pl %{perl_vendorarch}/yui.so %{perl_vendorlib}/yui.pm %changelog