]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blob - bash/bash.nm
Merge remote-tracking branch 'stevee/ppp-update'
[people/ms/ipfire-3.x.git] / bash / bash.nm
1 ###############################################################################
2 # IPFire.org - An Open Source Firewall Solution #
3 # Copyright (C) - IPFire Development Team <info@ipfire.org> #
4 ###############################################################################
5
6 name = bash
7 version = 4.2
8 release = 11
9
10 groups = System/Tools
11 url = http://www.gnu.org/software/bash/
12 license = GPLv2+
13 summary = Bash is short for born again shell.
14
15 description
16 Bash is the shell, or command language interpreter, that will appear in
17 the GNU operating system. Bash is an sh-compatible shell that incorporates
18 useful features from the Korn shell (ksh) and C shell (csh). It is intended
19 to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard.
20 end
21
22 source_dl = http://ftp.gnu.org/gnu/bash/
23
24 build
25 requires
26 autoconf
27 automake
28 bison
29 filesystem >= 002
30 ncurses-devel
31 readline-devel
32 texinfo
33 end
34
35 prepare_cmds
36 # Bash uses the RTLD_LAZY option when loading libraries. We want to use
37 # RTLD_NOW (it is defined from <dlfcn.h>:
38 sed -e "s/filename, RTLD_LAZY/filename, RTLD_NOW/" \
39 -i builtins/enable.def
40
41 sed -i "s|htmldir = @htmldir@|htmldir = /usr/share/doc/%{thisapp}|" \
42 Makefile.in
43 end
44
45 configure_options += \
46 --without-bash-malloc \
47 --with-installed-readline
48
49 # Test hangs forever
50 #def test
51 # make tests
52 #end
53
54 install_cmds
55 mkdir -pv %{BUILDROOT}%{sysconfdir}/{profile.d,skel}
56 mkdir -pv %{BUILDROOT}/root
57
58 # Bash startup files
59 cp -vf %{DIR_SOURCE}/dot_bash_logout %{BUILDROOT}%{sysconfdir}/skel/.bash_logout
60 cp -vf %{DIR_SOURCE}/dot_bash_profile %{BUILDROOT}%{sysconfdir}/skel/.bash_profile
61 cp -vf %{DIR_SOURCE}/dot_bashrc %{BUILDROOT}%{sysconfdir}/skel/.bashrc
62
63 cp -vf %{DIR_SOURCE}/dot_bash_logout %{BUILDROOT}/root/.bash_logout
64 cp -vf %{DIR_SOURCE}/dot_bash_profile %{BUILDROOT}/root/.bash_profile
65 cp -vf %{DIR_SOURCE}/dot_bashrc %{BUILDROOT}/root/.bashrc
66
67 # /etc/profile.d
68 cp -vf %{DIR_SOURCE}/profile.d/* %{BUILDROOT}/etc/profile.d
69
70 ln -svf bash %{BUILDROOT}%{bindir}/sh
71 end
72 end
73
74 packages
75 package %{name}
76 groups += Base Build
77
78 requires
79 coreutils
80 /etc/bashrc
81 /etc/profile
82 end
83
84 provides
85 /bin/bash
86 /bin/sh
87 end
88
89 conflicts
90 filesystem < 002
91 end
92
93 script posttransin
94 # Create /etc/shells, if it does not exist.
95 [ -f "/etc/shells" ] || touch /etc/shells
96
97 found_sh=0
98 found_bash=0
99 while read line; do
100 if [ "/bin/bash" = "${line}" ]; then
101 found_bash=1
102 elif [ "/bin/sh" = "${line}" ]; then
103 found_sh=1
104 fi
105 done < /etc/shells
106
107 if [ "${found_bash}" = "0" ]; then
108 echo "/bin/bash" >> /etc/shells
109 fi
110
111 if [ "${found_sh}" = "0" ]; then
112 echo "/bin/sh" >> /etc/shells
113 fi
114 end
115
116 script postun
117 [ -e "/etc/shells" ] || exit 0
118
119 # Remove /bin/bash and /bin/sh from /etc/shells.
120 while read line; do
121 if [ "/bin/bash" = "${line}" ]; then
122 continue
123 elif [ "/bin/sh" = "${line}" ]; then
124 continue
125 fi
126
127 echo "${line}"
128 done < /etc/shells > /etc/shells.$$
129
130 mv -f /etc/shells{.$$,}
131 end
132 end
133
134 package %{name}-debuginfo
135 template DEBUGINFO
136 end
137 end