test/zsh.spec
author J. Ali Harlow <ali@juiblex.co.uk>
Sat Oct 04 18:12:58 2014 +0100 (2014-10-04)
changeset 454 56ff755c268c
parent 393 d16ac3fb05fa
permissions -rw-r--r--
Only export symbols starting with razor_ in dynamic library.

Apart from being good practice to avoid clashes with higher-level
libraries and the application, this also fixes an obscure bug: The
gnulib library is used both by librazor (the dynamic library) and
by razor (the executable). In doing so, we want to have two separate
copies of the library despite the code duplication this involves.
Without the explicit limit to export only razor_ symbols, the razor
executable under mingw64 was picking up the getopt_long function
from librazor and the optind variable from libgnu which meant that
it did not see optind changing. Hiding librazor's copy of getopt
causes the linker to find libgnu's copy and everything works.

Note that under mingw librazor-#.dll still contains undocumented
(private) razor_ symbols but these will do no harm as long as nobody
tries to use them.
ali@393
     1
%define _source_payload w9.gzdio
ali@393
     2
%define _binary_payload w9.gzdio
ali@393
     3
ali@351
     4
Name:      zsh
ali@351
     5
Summary:   Test package
ali@351
     6
Group:     Test
ali@351
     7
License:   GPL
ali@351
     8
Version:   1
ali@351
     9
Release:   1
ali@351
    10
Source:    zsh.tar
ali@351
    11
BuildArch: noarch
ali@351
    12
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
ali@351
    13
Prefix:    /usr
ali@351
    14
Requires:  zip
ali@418
    15
Requires(pre,postun):  zip
ali@351
    16
ali@351
    17
%description
ali@351
    18
Test package
ali@351
    19
ali@351
    20
%prep
ali@351
    21
ali@351
    22
%build
ali@351
    23
ali@351
    24
%install
ali@351
    25
mkdir -p $RPM_BUILD_ROOT/usr/bin
ali@351
    26
mkdir -p $RPM_BUILD_ROOT/etc
ali@351
    27
touch $RPM_BUILD_ROOT/usr/bin/zsh
ali@363
    28
echo "DEVICE /dev/tty" > $RPM_BUILD_ROOT/etc/zsh.conf
ali@351
    29
ali@351
    30
%clean
ali@351
    31
ali@367
    32
%pre -p <lua>
ali@367
    33
function mkdir_missing(dir)
ali@367
    34
    if posix.stat(dir)==nil then
ali@367
    35
	posix.mkdir(dir)
ali@367
    36
    end
ali@367
    37
end
ali@367
    38
prefix=posix.getenv("RPM_INSTALL_PREFIX0")
ali@367
    39
if prefix==nil then
ali@367
    40
    prefix="/usr"
ali@367
    41
end
ali@376
    42
if arg[2]==1 and posix.stat(prefix.."/bin/zip")~=nil then
ali@367
    43
    mkdir_missing(prefix.."/var")
ali@367
    44
    mkdir_missing(prefix.."/var/lib")
ali@367
    45
    posix.mkdir(prefix.."/var/lib/zsh")
ali@367
    46
    io.output(prefix.."/var/lib/zsh/data.zip")
ali@367
    47
    io.write("Important data\n");
ali@367
    48
    io.close()
ali@367
    49
end
ali@367
    50
ali@367
    51
%postun -p <lua>
ali@367
    52
prefix=posix.getenv("RPM_INSTALL_PREFIX0")
ali@367
    53
if prefix==nil then
ali@367
    54
    prefix="/usr"
ali@367
    55
end
ali@376
    56
if arg[2]==0 and posix.stat(prefix.."/bin/zip")~=nil then
ali@367
    57
    os.remove(prefix.."/var/lib/zsh/data.zip")
ali@367
    58
    os.remove(prefix.."/var/lib/zsh")
ali@367
    59
end
ali@367
    60
ali@351
    61
%files
ali@351
    62
/usr/bin/zsh
ali@351
    63
/etc/zsh.conf