]> git.pld-linux.org Git - packages/file.git/blob - file.spec
- fix "use count (30) exceeded" error on some jpg files
[packages/file.git] / file.spec
1 #
2 # Conditional build:
3 %bcond_without  python2         # don't build python-magic module for Python 2.x
4 %bcond_without  python3         # don't build python-magic module for Python 3.x
5 %bcond_without  static_libs     # don't build static libraries
6 %bcond_without  tests           # don't perform "make check"
7
8 Summary:        A utility for determining file types
9 Summary(cs.UTF-8):      Program pro zjišťování typu souborů
10 Summary(da.UTF-8):      Et værktøj til bestemmelse af filtyper
11 Summary(de.UTF-8):      Ein Befehl zur Bestimmung von Dateitypen
12 Summary(es.UTF-8):      Utilidad para determinar el tipo de fichero
13 Summary(fr.UTF-8):      Utilitaire permettant d'identifier des types de fichier
14 Summary(id.UTF-8):      Utility untuk menentukan tipe file
15 Summary(is.UTF-8):      Tól til þess að komast að tegund skráar
16 Summary(it.UTF-8):      Utility per determinare il tipo di file
17 Summary(ja.UTF-8):      ファイルの種類を判断するためのユーティリティ
18 Summary(ko.UTF-8):      파일 종류를 결정하는 유틸리티
19 Summary(nb.UTF-8):      Et verktøy for å bestemme filtyper
20 Summary(pl.UTF-8):      Polecenie określające rodzaj pliku
21 Summary(pt.UTF-8):      Um utilitário para determinar o tipo dos ficheiros
22 Summary(pt_BR.UTF-8):   Um utilitário para determinar tipos de arquivos
23 Summary(ru.UTF-8):      Утилита для определения типов файлов
24 Summary(sk.UTF-8):      Pomocný program pre určenie typu súboru
25 Summary(sl.UTF-8):      Pripomoček za ugotavljanje vrste datotek
26 Summary(sv.UTF-8):      Ett verktyg för att bestämma filtyper
27 Summary(tr.UTF-8):      Dosya türünü öğrenmek için bir araç
28 Summary(uk.UTF-8):      Утиліта для визначення типів файлів
29 Summary(zh_CN.UTF-8):   判定文件类型的工具。
30 Summary(zh_TW.UTF-8):   用於決定檔案類型的一個工具程式。
31 Name:           file
32 Version:        5.22
33 Release:        2
34 License:        distributable
35 Group:          Applications/File
36 Source0:        ftp://ftp.astron.com/pub/file/%{name}-%{version}.tar.gz
37 # Source0-md5:  8fb13e5259fe447e02c4a37bc7225add
38 Source1:        http://ftp1.pld-linux.org/people/glen/%{name}-non-english-man-pages.tar.bz2
39 # Source1-md5:  6a45bcaefd19b94db36a1b2b7c5b806b
40 Source2:        %{name}-zisofs.magic
41 Source3:        %{name}-mscompress.magic
42 Source4:        %{name}-magic.mime-gen.awk
43 Patch0:         %{name}-selinux.patch
44 Patch1:         searchpath.patch
45 Patch2:         automake.patch
46 Patch3:         %{name}-perl.patch
47 Patch4:         name-use-count.patch
48 URL:            http://www.darwinsys.com/file/
49 BuildRequires:  autoconf >= 2.50
50 BuildRequires:  automake
51 BuildRequires:  libtool >= 2:2.0
52 BuildRequires:  rpmbuild(macros) >= 1.453
53 %if %{with python2}
54 BuildRequires:  python-devel
55 BuildRequires:  python-modules
56 BuildRequires:  rpm-pythonprov
57 %endif
58 %if %{with python3}
59 BuildRequires:  python3-devel
60 BuildRequires:  python3-modules
61 BuildRequires:  rpm-pythonprov
62 %endif
63 BuildRequires:  zlib-devel
64 Requires(pretrans):     coreutils
65 Requires:       libmagic = %{version}-%{release}
66 Conflicts:      rpm-build < 4.4.1-9
67 Conflicts:      xdelta < 1.0.0
68 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69
70 %description
71 This package is useful for finding out what type of file you are
72 looking at on your system. For example, if an fsck results in a file
73 being stored in lost+found, you can run file on it to find out if it's
74 safe to 'more' it or if it's a binary. It recognizes many file types,
75 including ELF binaries, system libraries, RPM packages, and many
76 different graphics formats.
77
78 %description -l cs.UTF-8
79 Příkaz file se používá pro identifikaci zadaného souboru podle jeho
80 obsahu. Je schopen identifikovat množství různých typů souborů včetně
81 binárních souborů ELF, systémových knihoven, RPM balíčků a různých
82 grafických formátů.
83
84 %description -l da.UTF-8
85 Programmet "file" bruges til at identificere filer baseret på indhold.
86 "file" kan identificere mange forskellige filtyper, inkl. ELF-filer,
87 systembiblioteker, RPM-pakker og billedfiler i forskellige formater.
88
89 %description -l de.UTF-8
90 Sie können dieses Paket verwenden, um zu bestimmen, welches Format
91 eine bestimmte Datei hat. Wird durch fsck eine Datei in lost+found
92 gespeichert, können Sie 'file' ausführen, um herauszufinden, ob Sie
93 sie mit 'more' einsehen können, oder ob es sich um ein Binärprogramm
94 handelt Das Programm erkennt u.a. ELF-Binärprogramme,
95 System-Libraries, RPM-Pakete und viele Grafikformate.
96
97 %description -l es.UTF-8
98 Este paquete es útil para descubrir que tipo de archivo estás buscando
99 en tu sistema. Por ejemplo, si fsck resulta un archivo que fue
100 almacenado en el "lost+found", tu puedes ejecutar file en él para
101 descubrir si es seguro leerlo con el "more" o si es un binario.
102 Reconoce varios tipos de archivos, incluyendo binarios ELF,
103 bibliotecas de sistema, paquetes RPM y varios formatos gráficos
104 diferentes.
105
106 %description -l fr.UTF-8
107 Ce paquetage sert à trouver le type du fichier que vous recherchez sur
108 votre système. Par exemple, si un fsck fait qu'un fichier a été stocké
109 dans lost+found, vous pouvez lancer file dessus pour savoir si on peut
110 faire un more, ou s'il s'agit d'un binaire. Il reconnaît de nombreux
111 types de fichiers dont les binaires ELF, les bibliothèques systèmes,
112 les paquetages RPM et de nombreux formats graphiques différents.
113
114 %description -l it.UTF-8
115 Il comando file è utilizzato per identificare il tipo di file in base
116 ai tipi di dati che contiene. File può identificare molti tipi di
117 file, tra cui i binari ELF, le librerie di sistema, i pacchetti RPM e
118 vari formati grafici.
119
120 %description -l ja.UTF-8
121 ファイルコマンドはファイルに含まれるデータの種類により個々のファイルを
122 見分けるために使われる。file は ELF バイナリ、システムライブラリ、 RPM
123 パッケージ、そして種々のグラフィックフォーマットを含む、多くの異なる
124 ファイルの種類を見分けることが可能である。
125
126 %description -l ko.UTF-8
127 파일에 저장된 자료 유형에 따라 파일을 식별하는 file 명령. File은 ELF
128 바이너리, 시스템 라이브러리, RPM 패키지와 다른 그래픽 유형을 포함한
129 여러 많은 파일 유형을 식별 가능합니다.
130
131 %description -l nb.UTF-8
132 Programmet "file" brukes for å identifisere filer basert på innhold.
133 "file" kan identifisere mange ulike filtyper, inkl. ELF-filer,
134 systembibliotek, RPM-pakker og bildefiler i ulike formater.
135
136 %description -l pl.UTF-8
137 Pakiet ten jest przydatny jeżeli chcesz rozpoznać typ plików w twoim
138 systemie. Na przykład jeżeli fsck zdeponuje jakieś pliki w katalogu
139 lost+found, możesz uruchomić file na zdeponowanym pliku i zobaczyć
140 jaki to jest typ pliku, jest to metoda bezpieczniejsza niż 'more', ze
141 względu na to, że to może być plik binarny. File potrafi rozpoznać
142 wiele typów plików np. binarny ELF, biblioteki systemowe, pakiety RPM
143 oraz wiele różnych formatów graficznych i dźwiękowych.
144
145 %description -l pt.UTF-8
146 O comando file é usado para identificar um ficheiro em particular de
147 acordo com o tipo de dados que contém. O file pode identificar vários
148 formatos de ficheiros, incluindo binários ELF, bibliotecas de sistema,
149 pacotes RPM e vários formatos gráficos diferentes.
150
151 %description -l pt_BR.UTF-8
152 Este pacote é útil para descobrir que tipo de arquivo você está
153 procurando em seu sistema. Por exemplo, se um fsck resulta em um
154 arquivo forem armazenado no "lost+found", você pode rodar file nele
155 para descobrir se é seguro lê-lo com o "more" ou se ele é um binário.
156 Ele reconhece vários tipos de arquivos, incluindo binários ELF,
157 bibliotecas de sistema, pacotes RPM e vários formatos gráficos
158 diferentes.
159
160 %description -l ru.UTF-8
161 Команда file используется для определения типа файла по данным, в нем
162 содержащимся. Она может определить множество разнообразных типов
163 файлов, включая бинарные файлы формата ELF, системные библиотеки,
164 пакеты RPM, различные графические форматы и много других.
165
166 %description -l sv.UTF-8
167 Kommandot file används för att identifera en fil vad avser vilken typ
168 av data filen innehåller. File kan identifiera många olika filtyper,
169 inklusive ELF-binärer, systembibliotek, RPM-paket och olika
170 grafikformat.
171
172 %description -l tr.UTF-8
173 file, bir dosyayı inceleyerek ne tür bir dosya olduğu konusunda size
174 bir fikir verebilir. Böylece uzantısından ve adından ne olduğunu
175 çıkaramadığınız bir dosyayı hangi yazılım ile kullanabileceğinize ya
176 da ne yapacağınıza karar verebilisiniz. file, temel dosya tiplerini,
177 çoğu grafik formatını, çalıştırılabilir dosyaları, sistem
178 kitaplıklarını vs. tanıyabilir.
179
180 %description -l uk.UTF-8
181 Команда file використовується для визначення типу файлу по даних, які
182 він містить. Вона може визначити велику кількість різноманітних типів
183 файлів, у тому числі бінарні файли формату ELF, системні бібліотеки,
184 пакети RPM, різноманітні графічні формати та багато інших.
185
186 %description -l zh_CN.UTF-8
187 file 命令用来根据文件中包含的数据类型来识别文件类型。 file
188 可以识别许多不同的文件类型,包括 ELF 二进制、系统 库、RPM
189 软件包、和不同的图形格式。
190
191 %description -l zh_TW.UTF-8
192 file 指令是根據檔案包含的資料類型來辨認檔案。 File
193 可以辨認許多不同的檔案類型, 包含 ELF binaries,系統函式庫,RPM
194 套件,以及不同的 圖像格式。
195
196 %package -n libmagic
197 Summary:        libmagic library
198 Summary(pl.UTF-8):      Biblioteka libmagic
199 Group:          Libraries
200
201 %description -n libmagic
202 Library of functions which operate on magic database file.
203
204 %description -n libmagic -l pl.UTF-8
205 Biblioteka funkcji operujących na pliku bazy danych magic.
206
207 %package -n libmagic-devel
208 Summary:        Header files for libmagic library
209 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki libmagic
210 Group:          Development/Libraries
211 Requires:       libmagic = %{version}-%{release}
212 Requires:       zlib-devel
213
214 %description -n libmagic-devel
215 Library of functions which operate on magic database file.
216
217 This package contains the header files needed to develop programs that
218 use these libmagic.
219
220 %description -n libmagic-devel -l pl.UTF-8
221 Biblioteka funkcji operujących na pliku bazy danych magic.
222
223 Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia programów
224 używających libmagic.
225
226 %package -n libmagic-static
227 Summary:        Static libmagic library
228 Summary(pl.UTF-8):      Statyczna biblioteka libmagic
229 Group:          Development/Libraries
230 Requires:       libmagic-devel = %{version}-%{release}
231
232 %description -n libmagic-static
233 Library of functions which operate on magic database file.
234
235 This package contains the static libmagic.
236
237 %description -n libmagic-static -l pl.UTF-8
238 Biblioteka funkcji operujących na pliku bazy danych magic.
239
240 Ten pakiet zawiera statyczną wersję biblioteki.
241
242 %package -n python-magic
243 Summary:        Python 2 bindings for libmagic
244 Summary(pl.UTF-8):      Wiązania Pythona 2 do biblioteki libmagic
245 Group:          Libraries/Python
246 Requires:       libmagic = %{version}-%{release}
247 Requires:       python-libs
248
249 %description -n python-magic
250 Python 2 bindings for libmagic.
251
252 %description -n python-magic -l pl.UTF-8
253 Wiązania Pythona 2 do biblioteki libmagic.
254
255 %package -n python3-magic
256 Summary:        Python 3 bindings for libmagic
257 Summary(pl.UTF-8):      Wiązania Pythona 3 do biblioteki libmagic
258 Group:          Libraries/Python
259 Requires:       libmagic = %{version}-%{release}
260 Requires:       python-libs
261
262 %description -n python3-magic
263 Python 3 bindings for libmagic.
264
265 %description -n python3-magic -l pl.UTF-8
266 Wiązania Pythona 3 do biblioteki libmagic.
267
268 %prep
269 %setup -q
270 %patch0 -p1
271 %patch1 -p1
272 %patch2 -p1
273 %patch3 -p1
274 %patch4 -p1
275
276 %if "%{cc_version}" < "3.4"
277 %{__sed} -i -e 's,-Wextra,,' configure.ac
278 %endif
279
280 cp -p %{SOURCE3} magic/Magdir/mscompress
281 cp -p %{SOURCE2} magic/Magdir/zisofs
282
283 rm -f magic/Magdir/{*.orig,*~}
284
285 %if %{with python3}
286 cp -a python py3
287 %endif
288
289 %build
290 %{__libtoolize}
291 %{__aclocal}
292 %{__autoheader}
293 %{__autoconf}
294 %{__automake}
295 %configure \
296         --disable-silent-rules \
297         --enable-fsect-man5 \
298         %{?with_static_libs:--enable-static}
299
300 %{__make}
301
302 %if %{with python2}
303 cd python
304 %{__python} setup.py build
305 cd ..
306 %endif
307 %if %{with python3}
308 cd py3
309 %{__python3} setup.py build
310 cd ..
311 %endif
312
313 %if %{with tests}
314 %{__make} check
315 %endif
316
317 %install
318 rm -rf $RPM_BUILD_ROOT
319 install -d $RPM_BUILD_ROOT/%{_lib}
320
321 %{__make} install \
322         DESTDIR=$RPM_BUILD_ROOT
323
324 mv $RPM_BUILD_ROOT%{_libdir}/libmagic.so.* $RPM_BUILD_ROOT/%{_lib}
325 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/libmagic.so.*.*.*) \
326         $RPM_BUILD_ROOT%{_libdir}/libmagic.so
327
328 %if %{with python2}
329 cd python
330 %{__python} setup.py install \
331         --optimize=2 \
332         --root=$RPM_BUILD_ROOT
333 cd ..
334 %py_postclean
335 %endif
336
337 %if %{with python3}
338 cd py3
339 %{__python3} setup.py install \
340         --optimize=2 \
341         --skip-build \
342         --root=$RPM_BUILD_ROOT
343 cd ..
344 %endif
345
346 awk -f %{SOURCE4} < $RPM_BUILD_ROOT%{_datadir}/misc/magic > $RPM_BUILD_ROOT%{_datadir}/misc/magic.mime
347 ln -s misc $RPM_BUILD_ROOT%{_datadir}/file
348
349 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
350 %{__rm} $RPM_BUILD_ROOT%{_mandir}/README.file-non-english-man-pages
351 %{__rm} $RPM_BUILD_ROOT%{_mandir}/file-magic4.diff
352
353 %clean
354 rm -rf $RPM_BUILD_ROOT
355
356 %post   -n libmagic -p /sbin/ldconfig
357 %postun -n libmagic -p /sbin/ldconfig
358
359 %pretrans
360 # it used to be directory
361 if [ -d %{_datadir}/file -a ! -L %{_datadir}/file ]; then
362         mv -b %{_datadir}/file{,.dir}
363         ln -sn misc %{_datadir}/file
364 %banner -e %{name} <<EOF
365 Check %{_datadir}/file.dir for your own files and remove it when done.
366 EOF
367 fi
368
369 %files
370 %defattr(644,root,root,755)
371 %doc ChangeLog COPYING README
372 %attr(755,root,root) %{_bindir}/file
373 %{_datadir}/file
374 %{_datadir}/misc/magic
375 %{_datadir}/misc/magic.mgc
376 %{_datadir}/misc/magic.mime
377 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/magic
378 %{_mandir}/man1/file.1*
379 %{_mandir}/man5/magic.5*
380 %lang(de) %{_mandir}/de/man[15]/*
381 %lang(es) %{_mandir}/es/man[15]/*
382 %lang(fr) %{_mandir}/fr/man[15]/*
383 %lang(hu) %{_mandir}/hu/man[15]/*
384 %lang(it) %{_mandir}/it/man[15]/*
385 %lang(ja) %{_mandir}/ja/man[15]/*
386 %lang(nl) %{_mandir}/nl/man[15]/*
387 %lang(pl) %{_mandir}/pl/man[15]/*
388 %lang(pt_BR) %{_mandir}/pt_BR/man[15]/*
389
390 %files -n libmagic
391 %defattr(644,root,root,755)
392 %attr(755,root,root) /%{_lib}/libmagic.so.*.*.*
393 %attr(755,root,root) %ghost /%{_lib}/libmagic.so.1
394
395 %files -n libmagic-devel
396 %defattr(644,root,root,755)
397 %attr(755,root,root) %{_libdir}/libmagic.so
398 %{_libdir}/libmagic.la
399 %{_includedir}/magic.h
400 %{_mandir}/man3/libmagic.3*
401
402 %if %{with static_libs}
403 %files -n libmagic-static
404 %defattr(644,root,root,755)
405 %{_libdir}/libmagic.a
406 %endif
407
408 %if %{with python3}
409 %files -n python-magic
410 %defattr(644,root,root,755)
411 %doc python/README python/example.py
412 %if "%{py_ver}" > "2.4"
413 %{py_sitescriptdir}/Magic_file_extensions-*.egg-info
414 %endif
415 %{py_sitescriptdir}/magic.py[co]
416 %endif
417
418 %if %{with_python3}
419 %files -n python3-magic
420 %defattr(644,root,root,755)
421 %doc python/README python/example.py
422 %{py3_sitescriptdir}/magic.py
423 %{py3_sitescriptdir}/__pycache__/magic.*.py[co]
424 %{py3_sitescriptdir}/Magic_file_extensions-*.egg-info
425 %endif
This page took 1.025748 seconds and 4 git commands to generate.