Add dlog support
[platform/upstream/toybox.git] / packaging / toybox.spec
1 Name: toybox
2 Version: 0.6.0
3 Release: 1%{?dist}
4 Summary: Single binary providing simplified versions of system commands
5 Group: Base/Utilities
6 License: BSD-2.0
7 URL: http://www.landley.net/toybox/
8 Source: %{name}-%{version}.tar.bz2
9 Source1: config
10 Source4: usrbin.links
11 Source5: usrsbin.links
12 Source11: config-full
13 Source1001: toybox.manifest
14
15 BuildRequires : smack-devel
16 BuildRequires : libattr-devel
17 BuildRequires : pkgconfig(dlog)
18
19 %description
20 Toybox is a single binary which includes versions of a large number
21 of system commands, including a shell.  This package can be very
22 useful for recovering from certain types of system failures,
23 particularly those involving broken shared libraries.
24
25 %package full
26 Group: Base/Utilities
27 Summary: ToyBox that includes all applets including init.
28 Conflicts: %{name}
29
30 %description full
31 Toybox-full is a single binary which includes most of the applets
32 including 'init' command.
33
34 %package symlinks-full
35 Group: Base/Utilities
36 Summary: ToyBox symlinks to provide all applets
37 Requires: %{name}-full = %{version}-%{release}
38
39 %description symlinks-full
40 ToyBox symlinks for utilities corresponding to all packages.
41
42 %package symlinks-dhcp
43 Group: Base/Utilities
44 Summary: ToyBox symlinks to provide 'dhcp'
45 Requires: %{name} = %{version}-%{release}
46
47 %description symlinks-dhcp
48 ToyBox symlinks for utilities corresponding to 'dhcp' package.
49
50 %package symlinks-dhcpd
51 Group: Base/Utilities
52 Summary: ToyBox symlinks to provide 'dhcpd'
53 Requires: %{name} = %{version}-%{release}
54
55 %description symlinks-dhcpd
56 ToyBox symlinks for utilities corresponding to 'dhcpd' package.
57
58 %package symlinks-ping
59 Group: Base/Utilities
60 Summary: ToyBox symlinks to provide 'ping'
61 Requires: %{name} = %{version}-%{release}
62
63 %description symlinks-ping
64 ToyBox symlinks for utilities corresponding to 'ping' package.
65
66 %package symlinks-ping6
67 Group: Base/Utilities
68 Summary: ToyBox symlinks to provide 'ping6'
69 Requires: %{name} = %{version}-%{release}
70
71 %description symlinks-ping6
72 ToyBox symlinks for utilities corresponding to 'ping6' package.
73
74 %package symlinks-nslookup
75 Group: Base/Utilities
76 Summary: ToyBox symlinks to provide 'nslookup'
77 Requires: %{name} = %{version}-%{release}
78
79 %description symlinks-nslookup
80 ToyBox symlinks for utilities corresponding to 'nslookup' package.
81
82 %prep
83 %setup -q
84
85 %build
86 cp %{SOURCE1001} .
87
88 # create a minimum dynamic toybox (ELF) that consists of 'nslookup', 'ping', and 'dhcpd'.
89 cp %{SOURCE1} .config
90 export LDFLAGS=" -ldlog"
91 make -j 4 CC+="gcc $RPM_OPT_FLAGS" CFLAGS="$CFLAGS -fPIE -I/usr/include/dlog/" LDOPTIMIZE="-Wl,--gc-sections -pie"
92 cp toybox toybox-dynamic
93
94 # create a dynamic toybox-full (ELF) that include most of the applets including 'init'.
95 cp %{SOURCE11} .config
96 export LDFLAGS=" -ldlog"
97 make -j 4 CC+="gcc $RPM_OPT_FLAGS" CFLAGS="$CFLAGS -fPIE -I/usr/include/dlog/" LDOPTIMIZE="-Wl,--gc-sections -pie"
98 cp toybox toybox-dynamic-full
99
100 %install
101 rm -rf $RPM_BUILD_ROOT
102 mkdir -p $RPM_BUILD_ROOT/%{_bindir}
103 mkdir -p $RPM_BUILD_ROOT/%{_sbindir}
104 install -m 755 toybox-dynamic      $RPM_BUILD_ROOT/%{_bindir}/toybox
105 install -m 755 toybox-dynamic-full $RPM_BUILD_ROOT/%{_bindir}/toybox-full
106
107 # debian/toybox.links
108 pushd %{buildroot}
109 mkdir -p usr/bin usr/sbin
110 pushd usr/bin
111 for f in `cat %SOURCE4` ; do ln -s toybox $f ; done
112 popd
113 pushd usr/sbin
114 for f in `cat %SOURCE5` ; do ln -s ../bin/toybox $f ; done
115 popd
116 popd
117
118 %post full
119 pushd %{_bindir} && ./toybox-full ln -s ./toybox-full ./toybox && popd
120
121 %files
122 %manifest toybox.manifest
123 %license LICENSE.BSD
124 %defattr(-,root,root,-)
125 %{_bindir}/toybox
126
127 %files full
128 %manifest toybox.manifest
129 %license LICENSE.BSD
130 %defattr(-,root,root,-)
131 %{_bindir}/toybox-full
132
133 %files symlinks-full
134 %manifest toybox.manifest
135 %license LICENSE.BSD
136 %defattr(-,root,root,-)
137 %{_bindir}/*
138 %{_sbindir}/*
139 %exclude %{_bindir}/toybox
140 %exclude %{_bindir}/toybox-full
141
142 %files symlinks-dhcp
143 %manifest toybox.manifest
144 %license LICENSE.BSD
145 %defattr(-,root,root,-)
146 %{_bindir}/dhcp
147
148 %files symlinks-dhcpd
149 %manifest toybox.manifest
150 %license LICENSE.BSD
151 %defattr(-,root,root,-)
152 %{_bindir}/dumpleases
153 %{_sbindir}/dhcpd
154
155 %files symlinks-ping
156 %manifest toybox.manifest
157 %license LICENSE.BSD
158 %defattr(-,root,root,-)
159 %{_bindir}/ping
160
161 %files symlinks-ping6
162 %manifest toybox.manifest
163 %license LICENSE.BSD
164 %defattr(-,root,root,-)
165 %{_bindir}/ping6
166
167 %post symlinks-nslookup
168 mv /usr/bin/toybox-nslookup /usr/bin/nslookup
169
170 %files symlinks-nslookup
171 %manifest toybox.manifest
172 %license LICENSE.BSD
173 %defattr(-,root,root,-)
174 %{_bindir}/toybox-nslookup
175
176
177 %changelog
178 * Mon May 27 2019 Geunsik Lim <geunsik.lim@samsung.com>
179 - Added toybox-full that consists of most applets