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