Переглянути джерело

Finally package the great Perl/Tk stuff

Ralf S. Engelschall 23 роки тому
батько
коміт
3dd05124f3
1 змінених файлів з 279 додано та 0 видалено
  1. 279 0
      perl-tk/perl-tk.spec

+ 279 - 0
perl-tk/perl-tk.spec

@@ -0,0 +1,279 @@
+##
+##  perl-tk.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_tk                   800.024
+%define       V_tk_tiff              0.08
+%define       V_tk_jpeg              2.014
+%define       V_tk_png               2.005
+%define       V_tk_canvasfig         1.014
+%define       V_tk_checkbuttongroup  0.2.1
+%define       V_tk_collapsableframe  1.0
+%define       V_tk_date              0.40
+%define       V_tk_dateentry         1.33
+%define       V_tk_executecommand    1.2
+%define       V_tk_gbarr             2.05
+%define       V_tk_graph             0.02
+%define       V_tk_histentry         0.40
+%define       V_tk_jcombobox         0.02
+%define       V_tk_ipentry           0.02
+%define       V_tk_lcd               1.1
+%define       V_tk_mdi               0.2
+%define       V_tk_macprogressbar    1.0
+%define       V_tk_multi             1.004
+%define       V_tk_objecthandler     0.03
+%define       V_tk_pathentry         2.17
+%define       V_tk_popentry          0.06
+%define       V_tk_radiobuttongroup  0.2.1
+%define       V_tk_rotcanvas         1.2
+%define       V_tk_splashscreen      1.0
+%define       V_tk_task              1.0
+%define       V_tk_textansicolor     0.14
+%define       V_tk_treegraph         1.024
+%define       V_tk_workspace         1.75
+%define       V_tk_worldcanvas       1.2.5
+
+#   package information
+Name:         perl-tk
+Summary:      Perl Modules for use with the Tk GUI
+URL:          http://www.cpan.org/
+Vendor:       Perl Community
+Packager:     The OpenPKG Project
+Distribution: OpenPKG [BASE]
+Group:        Language
+License:      GPL/Artistic
+Version:      20020928
+Release:      20020928
+
+#   list of sources
+Source0:      http://www.cpan.org/modules/by-module/Tk/Tk-%{V_tk}.tar.gz
+Source1:      http://www.cpan.org/modules/by-module/Tk/Tk-TIFF-%{V_tk_tiff}.tar.gz
+Source2:      http://www.cpan.org/modules/by-module/Tk/Tk-JPEG-%{V_tk_jpeg}.tar.gz
+Source3:      http://www.cpan.org/modules/by-module/Tk/Tk-PNG-%{V_tk_png}.tar.gz
+Source4:      http://www.cpan.org/modules/by-module/Tk/Tk-CanvasFig-%{V_tk_canvasfig}.tar.gz
+Source5:      http://www.cpan.org/modules/by-module/Tk/Tk-CheckbuttonGroup-%{V_tk_checkbuttongroup}.tgz
+Source6:      http://www.cpan.org/modules/by-module/Tk/Tk-CollapsableFrame-%{V_tk_collapsableframe}.tar.gz
+Source7:      http://www.cpan.org/modules/by-module/Tk/Tk-Date-%{V_tk_date}.tar.gz
+Source8:      http://www.cpan.org/modules/by-module/Tk/Tk-DateEntry-%{V_tk_dateentry}.tar.gz
+Source9:      http://www.cpan.org/modules/by-module/Tk/Tk-ExecuteCommand-%{V_tk_executecommand}.tar.gz
+Source10:     http://www.cpan.org/modules/by-module/Tk/Tk-GBARR-%{V_tk_gbarr}.tar.gz
+Source11:     http://www.cpan.org/modules/by-module/Tk/Tk-Graph-%{V_tk_graph}.tar.gz
+Source12:     http://www.cpan.org/modules/by-module/Tk/Tk-HistEntry-%{V_tk_histentry}.tar.gz
+Source13:     http://www.cpan.org/modules/by-module/Tk/Tk-JComboBox-%{V_tk_jcombobox}.tar.gz
+Source14:     http://www.cpan.org/modules/by-module/Tk/Tk-IPEntry-%{V_tk_ipentry}.tar.gz
+Source15:     http://www.cpan.org/modules/by-module/Tk/Tk-LCD-%{V_tk_lcd}.tar.gz
+Source16:     http://www.cpan.org/modules/by-module/Tk/Tk-MDI-%{V_tk_mdi}.tar.gz
+Source17:     http://www.cpan.org/modules/by-module/Tk/Tk-MacProgressBar-%{V_tk_macprogressbar}.tar.gz
+Source18:     http://www.cpan.org/modules/by-module/Tk/Tk-Multi-%{V_tk_multi}.tar.gz
+Source19:     http://www.cpan.org/modules/by-module/Tk/Tk-ObjectHandler-%{V_tk_objecthandler}.tar.gz
+Source20:     http://www.cpan.org/modules/by-module/Tk/Tk-PathEntry-%{V_tk_pathentry}.tar.gz
+Source21:     http://www.cpan.org/modules/by-module/Tk/Tk-PopEntry-%{V_tk_popentry}.tar.gz
+Source22:     http://www.cpan.org/modules/by-module/Tk/Tk-RadiobuttonGroup-%{V_tk_radiobuttongroup}.tgz
+Source23:     http://www.cpan.org/modules/by-module/Tk/Tk-RotCanvas-%{V_tk_rotcanvas}.tar.gz
+Source24:     http://www.cpan.org/modules/by-module/Tk/Tk-Splashscreen-%{V_tk_splashscreen}.tar.gz
+Source25:     http://www.cpan.org/modules/by-module/Tk/Tk-Task-%{V_tk_task}.tar.gz
+Source26:     http://www.cpan.org/modules/by-module/Tk/Tk-TextANSIColor-%{V_tk_textansicolor}.tar.gz
+Source27:     http://www.cpan.org/modules/by-module/Tk/Tk-TreeGraph-%{V_tk_treegraph}.tar.gz
+Source28:     http://www.cpan.org/modules/by-module/Tk/Tk-Workspace-%{V_tk_workspace}.tar.gz
+Source29:     http://www.cpan.org/modules/by-module/Tk/Tk-WorldCanvas-%{V_tk_worldcanvas}.tar.gz
+
+#   build information
+Prefix:       %{l_prefix}
+BuildRoot:    %{l_buildroot}
+BuildPreReq:  OpenPKG, openpkg >= 20020206, perl, X11, tiff, jpeg, png, zlib
+PreReq:       OpenPKG, openpkg >= 20020206, perl, X11, tiff, jpeg, png, zlib
+AutoReq:      no
+AutoReqProv:  no
+
+%description
+    Perl modules for use with Tk GUI:
+    - Tk (%{V_tk})
+    - Tk::TIFF (%{V_tk_tiff})
+    - Tk::JPEG (%{V_tk_jpeg})
+    - Tk::PNG (%{V_tk_png})
+    - Tk::CanvasFig (%{V_tk_canvasfig})
+    - Tk::CheckbuttonGroup (%{V_tk_checkbuttongroup})
+    - Tk::CollapsableFrame (%{V_tk_collapsableframe})
+    - Tk::Date (%{V_tk_date})
+    - Tk::DateEntry (%{V_tk_dateentry})
+    - Tk::ExecuteCommand (%{V_tk_executecommand})
+    - Tk-GBARR (%{V_tk_gbarr})
+    - Tk::Graph (%{V_tk_graph})
+    - Tk::HistEntry (%{V_tk_histentry})
+    - Tk::JComboBox (%{V_tk_jcombobox})
+    - Tk::IPEntry (%{V_tk_ipentry})
+    - Tk::LCD (%{V_tk_lcd})
+    - Tk::MDI (%{V_tk_mdi})
+    - Tk::MacProgressBar (%{V_tk_macprogressbar})
+    - Tk-Multi (%{V_tk_multi})
+    - Tk::ObjectHandler (%{V_tk_objecthandler})
+    - Tk::PathEntry (%{V_tk_pathentry})
+    - Tk::PopEntry (%{V_tk_popentry})
+    - Tk::RadiobuttonGroup (%{V_tk_radiobuttongroup})
+    - Tk::RotCanvas (%{V_tk_rotcanvas})
+    - Tk::Splashscreen (%{V_tk_splashscreen})
+    - Tk::Task (%{V_tk_task})
+    - Tk::TextANSIColor (%{V_tk_textansicolor})
+    - Tk::TreeGraph (%{V_tk_treegraph})
+    - Tk::Workspace (%{V_tk_workspace})
+    - Tk::WorldCanvas (%{V_tk_worldcanvas})
+
+%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
+    %setup4  -q -T -D -a 4
+    %setup5  -q -T -D -a 5
+    %setup6  -q -T -D -a 6
+    %setup7  -q -T -D -a 7
+    %setup8  -q -T -D -a 8
+    %setup9  -q -T -D -a 9
+    %setup10 -q -T -D -a 10
+    %setup11 -q -T -D -a 11
+    %setup12 -q -T -D -a 12
+    %setup13 -q -T -D -a 13
+    %setup14 -q -T -D -a 14
+    %setup15 -q -T -D -a 15
+    %setup16 -q -T -D -a 16
+    %setup17 -q -T -D -a 17
+    %setup18 -q -T -D -a 18
+    %setup19 -q -T -D -a 19
+    %setup20 -q -T -D -a 20
+    %setup21 -q -T -D -a 21
+    %setup22 -q -T -D -a 22
+    %setup23 -q -T -D -a 23
+    %setup24 -q -T -D -a 24
+    %setup25 -q -T -D -a 25
+    %setup26 -q -T -D -a 26
+    %setup27 -q -T -D -a 27
+    %setup28 -q -T -D -a 28
+    %setup29 -q -T -D -a 29
+
+%build
+
+%install
+    rm -rf $RPM_BUILD_ROOT
+    %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/lib/perl5
+
+    #   create a wrapper script which finds the includes
+    eval `%{l_prefix}/bin/perl -V:version -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
+
+    #   build Tk
+    ( cd Tk%{V_tk}
+      $perl Makefile.PL \
+          X11INC=`%{l_prefix}/etc/rc --query x11_incdir` \
+          X11LIB=`%{l_prefix}/etc/rc --query x11_libdir` \
+          PREFIX=$RPM_BUILD_ROOT%{l_prefix} PERL=$perl FULLPERL=$perl </dev/null
+      %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl all
+      %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl install
+    )
+
+    #   build Tk::TIFF
+    ( cd Tk-TIFF-%{V_tk_tiff}
+	  %{l_shtool} subst \
+	      -e 's;-I/usr/local/include;-I%{l_prefix}/include/tiff -I%{l_prefix}/include;' \
+	      -e 's;-L/usr/local/lib;-L%{l_prefix}/lib;' \
+		  Makefile.PL
+      $perl Makefile.PL \
+          PREFIX=$RPM_BUILD_ROOT%{l_prefix} PERL=$perl FULLPERL=$perl </dev/null
+      %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl all
+      %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl install
+    )
+
+    #   build Tk::JPEG
+    ( cd Tk-JPEG-%{V_tk_jpeg}
+      $perl Makefile.PL \
+          PREFIX=$RPM_BUILD_ROOT%{l_prefix} PERL=$perl FULLPERL=$perl </dev/null
+      %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl all
+      %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl install
+    )
+
+    #   build Tk::PNG
+    ( cd Tk-PNG-%{V_tk_png}
+      %{l_shtool} subst \
+          -e 's;-I/usr/local/include;-I%{l_prefix}/include;' \
+          -e 's;-lpng -lz;-L%{l_prefix}/lib -lpng -lz;' \
+          Makefile.PL
+      $perl Makefile.PL \
+          PREFIX=$RPM_BUILD_ROOT%{l_prefix} PERL=$perl FULLPERL=$perl </dev/null
+      %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl all
+      %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl install
+    )
+
+    #   build addon modules
+    for mod in \
+        %{SOURCE4}  %{SOURCE5}  %{SOURCE6}  %{SOURCE7}  %{SOURCE8}  %{SOURCE9} \
+        %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} \
+        %{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} %{SOURCE20} %{SOURCE21} \
+        %{SOURCE22} %{SOURCE23} %{SOURCE24} %{SOURCE25} %{SOURCE26} %{SOURCE27} \
+        %{SOURCE28} %{SOURCE29} \
+    ; do
+        dir=`echo "$mod" | sed -e 's;^.*/\([^/]*\)\.tar\.gz$;\1;' -e 's;^.*/\([^/]*\)\.tgz$;\1;'`
+        cd $dir
+        chmod -R u+rw .
+        cp Makefile.PL Makefile.PL.orig
+        sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
+        $perl Makefile.PL PREFIX=$RPM_BUILD_ROOT%{l_prefix} PERL=$perl FULLPERL=$perl </dev/null
+        %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl all
+        %{l_make} %{l_mflags} PERL=$perl FULLPERL=$perl install
+        cd ..
+    done
+
+    #   clean up
+    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)
+
+    #   avoid conflicts
+    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
+