SHA256
1
0
forked from pool/x3270
x3270/x3270.spec

263 lines
7.9 KiB
RPMSpec

#
# spec file for package x3270
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%define appdefdir %{_datadir}/X11
Name: x3270
BuildRequires: autoconf
BuildRequires: bdftopcf
BuildRequires: fontpackages-devel
BuildRequires: freetype2
BuildRequires: ncurses-devel
BuildRequires: openssl-devel
BuildRequires: tcl-devel
BuildRequires: xorg-x11
BuildRequires: xorg-x11-devel
Version: 3.3.12
Release: 0
Summary: A Family of IBM 3270 Terminal Emulators
License: MIT
Group: System/X11/Terminals
Url: http://x3270.bgp.nu
Source0: suite3270-3.3.12ga13-src.tgz
Source5: README.SUSE
Source6: http://x3270.bgp.nu/download/x026-1.0.tgz
Patch: mknod.patch
Patch100: usr_local_bin.patch
Patch102: x026-offset.diff
Patch104: pr3270-memleak.patch
Patch105: gcc4.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
This package contains a family of IBM 3270 mainframe terminal
emulators:
* terminal emulators for interactive use x3270 X Window System
c3270 curses based
* terminal emulators for scripted use s3270 see the x3270-script
man page tcl3270 Tcl based
* printer emulator pr3287
* do not miss the punch card puncher emulator x026
x3270 is an IBM 3270 terminal emulator for the X Window System. x3270
runs over a telnet connection (with or without TN3270E) and emulates
either an IBM 3279 (color) or 3278 (monochrome). It supports APL2
characters, IND$FILE file transfer, NVT mode, a pop-up keypad for
3270-specific keys, alternative keymaps, 3287 printer sessions, and a
scrollbar and has extensive debugging and scripting facilities.
c3270 is the curses-based version of x3270. It runs on any dumb
terminal (an xterm or a console, for example), and supports (almost)
all of the x3270 features. c3270 scripts are compatible with x3270
scripts, and the subset of command line options and resource
definitions are also compatible.
s3270 is a scripting-only version of x3270. This program is intended
primarily for writing "screen-scraping" applications, for example a CGI
back-end script that retrieves database information from a mainframe.
tcl3270 is a Tcl-based 3270 scripting engine. It lets you write Tcl
scripts that manipulate 3270 sessions, and is quite a bit easier to set
up and use than s3270.
pr3287 is the printer companion for the above tools, and allows printer
output from a 3270 session to be directed to a Unix printer queue.
x026 is a fun toy which emulates an x026 puncher.
%prep
# the source-packages all extract to corresponding subdirectories.
# they are all expanded below a 'all3270' directory. this directory
# will also hold the common config.cache
# -q uietly -c reate -name all3270
# -a fter changing into all3270, expand sources
%setup -q -c -n all3270 -T -a0 -a6
%patch
%patch100
%patch102
%patch104
%patch105
%build
export CFLAGS="$RPM_OPT_FLAGS"
export LIBX3270DIR=%{_sysconfdir}/x3270
# the tcl variant
cd tcl3270-3.3
autoconf
%configure \
--cache-file=../config.cache \
--with-tcl=%tcl_version \
--enable-ssl
make LIBX3270DIR=${LIBX3270DIR}
cd ..
# the X variant
cd x3270-3.3
# pr3287 is built from the separate source pr3287*.tgz above.
%configure \
--cache-file=../config.cache \
--enable-app-defaults \
--without-pr3287 \
--x-includes=%{_includedir} \
--x-libraries=%{_libdir} \
--with-all-xinstall \
--with-fontdir=%{_miscfontsdir} \
--enable-ssl
xmkmf -a
make depend
make LIBX3270DIR=${LIBX3270DIR}
cd ..
# the console variant
cd c3270-3.3
%configure \
--cache-file=../config.cache \
--without-pr3287 \
--enable-ssl
make LIBX3270DIR=${LIBX3270DIR}
cd ..
# the scripting variant
cd s3270-3.3
%configure \
--cache-file=../config.cache \
--enable-ssl
make LIBX3270DIR=${LIBX3270DIR}
cd ..
# the printer
cd pr3287-3.3
%configure \
--cache-file=../config.cache \
--enable-ssl
make LIBX3270DIR=${LIBX3270DIR}
cd ..
# the IBM 026 keypunch emulator
cd x026-1.0
xmkmf
make x026
cd ..
%install
export LIBX3270DIR=%{_sysconfdir}/x3270
# abort on error
set -e
# create the default directory structure in the build root
mkdir --parents %{buildroot}{%{_bindir},%{_mandir}/{man1,man5}}
# the X variant
cd x3270-3.3
chmod -x html/Keymap.html
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install.man
# make install does a mkfontdir, that creates a fonts.dir we don't
# want in the package. remove that:
rm %{buildroot}%{_miscfontsdir}/fonts.dir
install -d -m 755 \
%{buildroot}%{appdefdir}/app-defaults
install -m 644 X3270.xad \
%{buildroot}%{appdefdir}/app-defaults/X3270
# clean up:
# remove remainders of patching the examples, if existing
rm -v Examples/*.orig || true
cd ..
# the console variant
cd c3270-3.3
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install.man
cd ..
# the scripting variant
cd s3270-3.3
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install.man
cd ..
# the tcl variant
cd tcl3270-3.3
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install.man
cd ..
# the printer
cd pr3287-3.3
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install
make DESTDIR=%{buildroot} LIBX3270DIR=${LIBX3270DIR} install.man
cd ..
# the IBM 026 keypunch emulator
cd x026-1.0
make DESTDIR=%{buildroot} install
cd ..
# move site config files to the standard locations
mkdir -p %{buildroot}/usr/lib/x3270
# this is a per-site, not a per-machine config file
chmod 644 %{buildroot}%{_sysconfdir}/x3270/ibm_hosts
cp -a %{S:5} .
# remove man-pages in /usr/man
rm -rf %{buildroot}/usr/man/man{1,5}
# set permissions correct
chmod ugo-x %{buildroot}%{_mandir}/man{1,5}/*
# copy the docs
mkdir -p %{buildroot}%{_docdir}/%name
cp -pr --parents x3270-3.3/{Examples,html,Playback} %{buildroot}%{_docdir}/%name
cp -pr --parents c3270-3.3/html %{buildroot}%{_docdir}/%name
cp -pr --parents pr3287-3.3/html %{buildroot}%{_docdir}/%name
cp -pr --parents s3270-3.3/{Examples,html} %{buildroot}%{_docdir}/%name
cp -pr --parents tcl3270-3.3/{Examples,html} %{buildroot}%{_docdir}/%name
%reconfigure_fonts_scriptlets
%files
%defattr(-,root,root,755)
# common files
%dir %{_sysconfdir}/x3270
%config(noreplace) %{_sysconfdir}/x3270/ibm_hosts
%doc %{_mandir}/man5/ibm_hosts.5.gz
%doc %{_mandir}/man1/x3270if.1.gz
%doc %{_mandir}/man1/x3270-script.1.gz
%{_bindir}/x3270if
# x3270
%{_bindir}/x3270
%{appdefdir}/app-defaults/X3270
%dir %{_miscfontsdir}
%{_miscfontsdir}/*
%doc %{_mandir}/man1/x3270.1x.gz
%doc %{_docdir}/%name/x3270-3.3/Examples
%doc %{_docdir}/%name/x3270-3.3/html
%doc %{_docdir}/%name/x3270-3.3/Playback
# c3270
%{_bindir}/c3270
%doc %{_mandir}/man1/c3270.1.gz
%doc %{_docdir}/%name/c3270-3.3/html
# pr3287
%{_bindir}/pr3287
%doc %{_mandir}/man1/pr3287.1.gz
%doc %{_docdir}/%name/pr3287-3.3/html
# s3270
%{_bindir}/s3270
%doc %{_mandir}/man1/s3270.1.gz
%doc %{_docdir}/%name/s3270-3.3/Examples
%doc %{_docdir}/%name/s3270-3.3/html
# tcl3270
%{_bindir}/tcl3270
%doc %{_mandir}/man1/tcl3270.1.gz
%doc %{_docdir}/%name/tcl3270-3.3/Examples
%doc %{_docdir}/%name/tcl3270-3.3/html
# x026
%{_bindir}/x026
%doc %attr(644,root,root) README.SUSE
%changelog