浏览代码

New package: perl-curses This is a bundle of Perl modules for using the Curses (actually NCurses+Cdk) facility from within Perl.

Ralf S. Engelschall 24 年之前
父节点
当前提交
329dfc47b3
共有 1 个文件被更改,包括 170 次插入0 次删除
  1. 170 0
      perl-curses/perl-curses.spec

+ 170 - 0
perl-curses/perl-curses.spec

@@ -0,0 +1,170 @@
+##
+##  perl-curses.spec -- OpenPKG RPM Specification
+##  Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
+##  Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
+##  Copyright (c) 2000-2002 Ralf S. Engelschall <rse@engelschall.com>
+##
+##  Permission to use, copy, modify, and distribute this software for
+##  any purpose with or without fee is hereby granted, provided that
+##  the above copyright notice and this permission notice appear in all
+##  copies.
+##
+##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+##  SUCH DAMAGE. 
+##  
+
+#   versions of individual parts
+%define       V_curses          1.06
+%define       V_curses_ui       0.63
+%define       V_curses_widgets  1.992
+%define       V_cdk_perl        20010421
+
+#   package information
+Name:         perl-curses
+Summary:      Perl Modules for use with Curses
+URL:          http://www.cpan.org/
+Vendor:       Perl Community
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [EXP]
+Group:        Language
+License:      GPL/Artistic
+Version:      20020117
+Release:      20020117
+
+#   list of sources
+Source0:      http://www.cpan.org/modules/by-module/Curses/Curses-%{V_curses}.tar.gz
+Source1:      http://www.cpan.org/modules/by-module/Curses/Curses-UI-%{V_curses_ui}.tar.gz
+Source2:      http://www.cpan.org/modules/by-module/Curses/CursesWidgets-%{V_curses_widgets}.tar.gz
+Source3:      ftp://invisible-island.net/cdk/cdk-perl-%{V_cdk_perl}.tgz
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20011227, perl, ncurses, cdk
+PreReq:       OpenPKG, openpkg >= 20011227, perl, ncurses, cdk
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    Various modules for using the Curses library from within the Perl
+    language plus additional widgets.
+
+%prep
+    %setup0  -q -c -n %{name}-%{version}
+    %setup1  -q -T -D -a 1
+    %setup2  -q -T -D -a 2
+    %setup3  -q -T -D -a 3
+
+%build
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/lib/perl5 \
+        $RPM_BUILD_ROOT%{l_prefix}/man/man3
+
+    #   create a wrapper script which finds the includes
+    eval `$perl -V:archname`
+    perl=$RPM_BUILD_ROOT/perl
+    echo "#!/bin/sh" >$perl
+    echo "exec %{l_prefix}/bin/perl \\" >>$perl
+    echo " -I$RPM_BUILD_ROOT%{l_prefix}/lib/perl5/%{version} \\" >>$perl
+    echo " -I$RPM_BUILD_ROOT%{l_prefix}/lib/perl5/%{version}/${archname} \\" >>$perl
+    echo " -I$RPM_BUILD_ROOT%{l_prefix}/lib/perl5/site_perl \\" >>$perl
+    echo " -I$RPM_BUILD_ROOT%{l_prefix}/lib/perl5/site_perl/%{version} \\" >>$perl
+    echo " -I$RPM_BUILD_ROOT%{l_prefix}/lib/perl5/site_perl/%{version}/${archname} \\" >>$perl
+    echo " \"\$@\"" >>$perl
+    chmod a+x $perl
+
+    #   determine general tools and arguments
+    perlargs="PREFIX=$RPM_BUILD_ROOT%{l_prefix} PERL=$perl FULLPERL=$perl"
+    make="%{l_make} %{l_mflags}"
+    makeargs="PERL=$perl FULLPERL=$perl"
+
+    #   make sure our Perl is used
+    chmod -R u+w .
+    %{l_rpmtool} subst \
+        "s:\$^X:'$perl':g" \
+        -- `find . -name Makefile.PL -print`
+
+    #   build Curses
+    ( cd Curses-%{V_curses}
+      hint="unknown"
+      case "%{l_target}" in
+          *-freebsd* ) hint="freebsd.ncurses" ;;
+          *-linux*   ) hint="linux.ncurses"   ;;
+          *-solaris* ) hint="solaris"         ;;
+      esac
+      if [ -f hints/c-$hint.h ]; then
+          cp hints/c-$hint.h c-config.h
+      fi
+      %{l_rpmtool} subst \
+          's:my $inc;:my $inc = "-I%{l_prefix}/include -I%{l_prefix}/include/ncurses";:' \
+          's:my $libs;:my $libs = "-L%{l_prefix}/lib -lpanel -lmenu -lform -lncurses";:' \
+          -- Makefile.PL
+      $perl Makefile.PL $perlargs PANELS MENUS FORMS
+      $make $makeargs all
+      $make $makeargs install
+    )
+
+    #   build Curses::UI
+    ( cd Curses-UI-%{V_curses_ui}
+      $perl Makefile.PL $perlargs
+      $make $makeargs all
+      $make $makeargs install
+    )
+
+    #   build Curses::Widgets
+    ( cd CursesWidgets-%{V_curses_widgets}
+      $perl Makefile.PL $perlargs
+      $make $makeargs all
+      $make $makeargs install
+    )
+
+    #   build Cdk
+    ( cd cdk-perl-%{V_cdk_perl}
+      %{l_rpmtool} subst \
+          's;-L/usr/local/lib;-L%{l_prefix}/lib;' \
+          's;-I/usr/include/ncurses;-I%{l_prefix}/include/ncurses;' \
+          's;-I/usr/local/include/cdk;-I%{l_prefix}/include/cdk;' \
+          -- Makefile.PL
+      $perl Makefile.PL $perlargs
+      $make $makeargs all
+      $make $makeargs install
+    )
+
+    #   strip down installation tree
+    find $RPM_BUILD_ROOT%{l_prefix} -name perllocal.pod -print | xargs rm -f
+    find $RPM_BUILD_ROOT%{l_prefix} -name .packlist -print | xargs rm -f
+    find $RPM_BUILD_ROOT%{l_prefix} -type d -depth -print | (xargs rmdir >/dev/null 2>&1 || true)
+
+    #   determine installed files
+    eval `$perl -V:installarchlib -V:installprivlib -V:installsitearch -V:installsitelib`
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%not %dir %{l_prefix}/lib/perl5' \
+        '%not %dir %{l_prefix}/lib/perl5/*' \
+        "%not %dir $installarchlib" \
+        "%not %dir $installprivlib" \
+        "%not %dir $installsitearch" \
+        "%not %dir $installsitelib" \
+        "%not %dir $installarchlib/auto" \
+        "%not %dir $installprivlib/auto" \
+        "%not %dir $installsitearch/auto" \
+        "%not %dir $installsitelib/auto"
+
+%files -f files
+
+%clean
+    rm -rf $RPM_BUILD_ROOT
+