3 # - fix make anyfs_module
4 # - make subpackage for libany.a ( -libany or just -static)
6 %bcond_without dist_kernel # allow non-distribution kernel
7 %bcond_without kernel # don't build 'any' kernel module
9 Summary: anyfs-tools - a unix-like toolset for recovering and converting filesystems
10 Summary(pl.UTF-8): anyfs-tools - uniksowy zestaw narzędzi do odzyskiwania i konwersji systemów plików
15 Group: Applications/System
16 Source0: http://dl.sourceforge.net/anyfs-tools/%{name}-%{version}.tar.bz2
17 # Source0-md5: c5d13e636b0097386f5aebf4c445d627
18 Patch0: %{name}-DFL_RTEXTSIZE.patch
19 Patch1: %{name}-blksize.patch
20 URL: http://anyfs-tools.sourceforge.net/
21 BuildRequires: e2fsprogs-devel >= 1.38
23 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.9}
24 BuildRequires: rpmbuild(macros) >= 1.379
26 BuildRequires: libfuse-devel >= 2.5
27 BuildRequires: mjpegtools-devel
28 BuildRequires: mpeg2dec-devel
29 BuildRequires: xfsprogs-devel
30 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
33 anyfs-tools provides a unix-like toolset for recovering and converting
34 filesystems. The following utils are included in the toolset:
36 build_it uses Linux OS filesystem drivers to recursively read
37 directory entries in order to obtain information about all of the
38 filesystem inodes. The information is then saved to an external inode
41 anysurrect searches block devices for specific file types, based on
42 their file structure. Information about each found file type is also
43 saved to an external inode table.
45 reblock changes the filesystem block size. reblock uses information
46 from the filesystems inode table to change each files' fragments
47 placing so that it will align with block boundaries but with a new
50 build_e2fs proceeds from external inode table information for building
51 ext2fs filesystems on device.
53 build_xfs proceeds from external inode table information for building
54 xfs filesystems on device.
56 anyconvertfs converts device filesystem with applying other
57 anyfs-tools utilities.
59 The anyfs filesystem driver for Linux allows a user to mount a device
60 using the external inode table information created by the build_it or
61 anysurrect commands. Once the filesystem is mounted with the inode
62 table information the user can perform file operations such as
63 deleting, moving files, making symbolic and hard links, special files
64 and changing file access permissions. All changes are applied to the
65 external inode table on unmounting the filesystem, leaving the data on
66 the block device unchanged.
68 %description -l pl.UTF-8
69 anyfs-tools dostarczają działającego w uniksowym stylu zestawu
70 narzędzi do odzyskiwania i konwersji systemów plików. W pakiecie
71 zawarte są następujące narzędzia:
73 build_it wykorzystuje linuksowe sterowniki systemów plików do
74 rekurencyjnego odczytu wpisów katalogów w celu uzyskania informacji o
75 wszystkich i-węzłach systemu plików. Informacje te są następnie
76 zapisywane do zewnętrznej tabeli i-węzłów.
78 anysurrect przeszukuje urządzenia blokowe pod kątem określonych
79 rodzajów plików w oparciu o ich strukturę plików. Inforamcje o każdym
80 znalezionym rodzaju pliku są także zapisywane do zewnętrznej tabeli
83 reblock zmienia rozmiar bloku systemu plików. Wykorzystuje informacje
84 o tabeli i-węzłów systemu plików, aby zmienić rozmieszczenie
85 fragmentów każdego pliku w taki sposób, by były wyrównane do granic
86 bloków przy nowym ich rozmiarze.
88 build_e2fs na podstawie zewnętrznej informacji o tabeli i-węzłów
89 przystępuje do tworzenia systemu plików ext2fs na urządzeniu.
91 build_xfs na podstawie zewnętrznej informacji o tabeli i-węzłów
92 przystępuje do tworzenia systemu plików xfs na urządzeniu.
94 anyconvertfs konwertuje system plików stosując inne narzędzia
97 Sterownik systemu plików anyfs dla Linuksa pozwala użytkownikowi
98 podmontować urządzenie przy użyciu zewnętrznych informacji o tabeli
99 i-węzłów stworzonej przy użyciu polecenia build_it lub anysurrect. Po
100 podmontowaniu systemu plików użytkownik może wykonywać operacje na
101 plikach, takie jak usuwanie, przenoszenie, tworzenie dowiązań
102 symbolicznych i zwykłych czy urządzeń specjalnych oraz zmiana
103 uprawnień do plików. Wszystkie zmiany są wykonywane na zewnętrznej
104 tabeli i-węzłów przy odmontowywaniu systemu plików, bez zmiany danych
105 na urządzeniu blokowym.
107 %package -n kernel%{_alt_kernel}-misc-any
108 Summary: AnyFS kernel module
109 Summary(pl.UTF-8): Modul AnyFS
110 Release: %{_rel}@%{_kernel_ver_str}
113 Requires(post,postun): /sbin/depmod
114 %if %{with dist_kernel}
115 %requires_releq_kernel
116 Requires(postun): %releq_kernel
118 %if "%{_alt_kernel}" != "%{nil}"
119 Provides: kernel-misc-any
122 %description -n kernel%{_alt_kernel}-misc-any
123 This package contains the AnyFS kernel module.
126 Summary: Header files for anyfs-tools
127 Summary(pl.UTF-8): Pliki nagłówkowe anyfs-tools
128 Group: Development/Libraries
129 Requires: %{name} = %{version}-%{release}
132 Header files for anyfs-tools.
134 %description devel -l pl.UTF-8
135 Pliki nagłówkowe anyfs-tools.
141 cat > anyfs/Makefile <<'EOF'
143 any-objs := inode.o file.o dir.o namei.o symlink.o
152 %build_kernel_modules -C anyfs -m any
156 rm -rf $RPM_BUILD_ROOT
159 DESTDIR=$RPM_BUILD_ROOT
162 %install_kernel_modules -m anyfs/any -d kernel/fs -n any -s current
168 rm -rf $RPM_BUILD_ROOT
170 %files -f %{name}.lang
171 %defattr(644,root,root,755)
173 %lang(ru) %doc README.ru
174 %attr(755,root,root) %{_sbindir}/*
175 %attr(755,root,root) %{_bindir}/anyfuse
179 %lang(ru) %{_mandir}/ru/man3/*
180 %lang(ru) %{_mandir}/ru/man3/*
181 %lang(ru) %{_mandir}/ru/man5/*
182 %lang(ru) %{_mandir}/ru/man8/*
185 %files -n kernel%{_alt_kernel}-misc-any
186 %defattr(644,root,root,755)
187 /etc/modprobe.d/%{_kernel_ver}/any.conf
188 /lib/modules/%{_kernel_ver}/kernel/fs/any-current.ko*
192 %defattr(644,root,root,755)
193 %{_includedir}/anyfs-tools