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 URL: http://anyfs-tools.sourceforge.net/
20 BuildRequires: e2fsprogs-devel >= 1.38
22 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.9}
23 BuildRequires: rpmbuild(macros) >= 1.379
25 BuildRequires: libfuse-devel >= 2.5
26 BuildRequires: mjpegtools-devel
27 BuildRequires: mpeg2dec-devel
28 BuildRequires: xfsprogs-devel
29 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
32 anyfs-tools provides a unix-like toolset for recovering and converting
33 filesystems. The following utils are included in the toolset:
35 build_it uses Linux OS filesystem drivers to recursively read
36 directory entries in order to obtain information about all of the
37 filesystem inodes. The information is then saved to an external inode
40 anysurrect searches block devices for specific file types, based on
41 their file structure. Information about each found file type is also
42 saved to an external inode table.
44 reblock changes the filesystem block size. reblock uses information
45 from the filesystems inode table to change each files' fragments
46 placing so that it will align with block boundaries but with a new
49 build_e2fs proceeds from external inode table information for building
50 ext2fs filesystems on device.
52 build_xfs proceeds from external inode table information for building
53 xfs filesystems on device.
55 anyconvertfs converts device filesystem with applying other
56 anyfs-tools utilities.
58 The anyfs filesystem driver for Linux allows a user to mount a device
59 using the external inode table information created by the build_it or
60 anysurrect commands. Once the filesystem is mounted with the inode
61 table information the user can perform file operations such as
62 deleting, moving files, making symbolic and hard links, special files
63 and changing file access permissions. All changes are applied to the
64 external inode table on unmounting the filesystem, leaving the data on
65 the block device unchanged.
67 %description -l pl.UTF-8
68 anyfs-tools dostarczają działającego w uniksowym stylu zestawu
69 narzędzi do odzyskiwania i konwersji systemów plików. W pakiecie
70 zawarte są następujące narzędzia:
72 build_it wykorzystuje linuksowe sterowniki systemów plików do
73 rekurencyjnego odczytu wpisów katalogów w celu uzyskania informacji o
74 wszystkich i-węzłach systemu plików. Informacje te są następnie
75 zapisywane do zewnętrznej tabeli i-węzłów.
77 anysurrect przeszukuje urządzenia blokowe pod kątem określonych
78 rodzajów plików w oparciu o ich strukturę plików. Inforamcje o każdym
79 znalezionym rodzaju pliku są także zapisywane do zewnętrznej tabeli
82 reblock zmienia rozmiar bloku systemu plików. Wykorzystuje informacje
83 o tabeli i-węzłów systemu plików, aby zmienić rozmieszczenie
84 fragmentów każdego pliku w taki sposób, by były wyrównane do granic
85 bloków przy nowym ich rozmiarze.
87 build_e2fs na podstawie zewnętrznej informacji o tabeli i-węzłów
88 przystępuje do tworzenia systemu plików ext2fs na urządzeniu.
90 build_xfs na podstawie zewnętrznej informacji o tabeli i-węzłów
91 przystępuje do tworzenia systemu plików xfs na urządzeniu.
93 anyconvertfs konwertuje system plików stosując inne narzędzia
96 Sterownik systemu plików anyfs dla Linuksa pozwala użytkownikowi
97 podmontować urządzenie przy użyciu zewnętrznych informacji o tabeli
98 i-węzłów stworzonej przy użyciu polecenia build_it lub anysurrect. Po
99 podmontowaniu systemu plików użytkownik może wykonywać operacje na
100 plikach, takie jak usuwanie, przenoszenie, tworzenie dowiązań
101 symbolicznych i zwykłych czy urządzeń specjalnych oraz zmiana
102 uprawnień do plików. Wszystkie zmiany są wykonywane na zewnętrznej
103 tabeli i-węzłów przy odmontowywaniu systemu plików, bez zmiany danych
104 na urządzeniu blokowym.
106 %package -n kernel%{_alt_kernel}-misc-any
107 Summary: AnyFS kernel module
108 Summary(pl.UTF-8): Modul AnyFS
109 Release: %{_rel}@%{_kernel_ver_str}
112 Requires(post,postun): /sbin/depmod
113 %if %{with dist_kernel}
114 %requires_releq_kernel
115 Requires(postun): %releq_kernel
117 %if "%{_alt_kernel}" != "%{nil}"
118 Provides: kernel-misc-any
121 %description -n kernel%{_alt_kernel}-misc-any
122 This package contains the AnyFS kernel module.
125 Summary: Header files for anyfs-tools
126 Summary(pl.UTF-8): Pliki nagłówkowe anyfs-tools
127 Group: Development/Libraries
128 Requires: %{name} = %{version}-%{release}
131 Header files for anyfs-tools.
133 %description devel -l pl.UTF-8
134 Pliki nagłówkowe anyfs-tools.
139 cat > anyfs/Makefile <<'EOF'
141 any-objs := inode.o file.o dir.o namei.o symlink.o
149 %build_kernel_modules -C anyfs -m any
153 rm -rf $RPM_BUILD_ROOT
156 DESTDIR=$RPM_BUILD_ROOT
159 %install_kernel_modules -m anyfs/any -d kernel/fs -n any -s current
165 rm -rf $RPM_BUILD_ROOT
167 %files -f %{name}.lang
168 %defattr(644,root,root,755)
170 %lang(ru) %doc README.ru
171 %attr(755,root,root) %{_sbindir}/*
172 %attr(755,root,root) %{_bindir}/anyfuse
176 %lang(ru) %{_mandir}/ru/man3/*
177 %lang(ru) %{_mandir}/ru/man3/*
178 %lang(ru) %{_mandir}/ru/man5/*
179 %lang(ru) %{_mandir}/ru/man8/*
182 %files -n kernel%{_alt_kernel}-misc-any
183 %defattr(644,root,root,755)
184 /lib/modules/%{_kernel_ver}/kernel/fs/any.ko*
188 %defattr(644,root,root,755)
189 %{_includedir}/anyfs-tools