]> git.pld-linux.org Git - packages/anyfs-tools.git/blob - anyfs-tools.spec
830e3655691b1c7ead3ec9ee4f38d19a2f9cf481
[packages/anyfs-tools.git] / anyfs-tools.spec
1 #
2 # TODO:
3 # - make subpackage for libany.a ( -libany or just -static)
4
5 #
6 # Conditional build:
7 %bcond_without  dist_kernel     # allow non-distribution kernel
8 %bcond_without  kernel          # don't build 'any' kernel module
9 %bcond_without  userspace       # don't build userspace utilities
10 #
11 %define         _rel    1
12 Summary:        anyfs-tools - a unix-like toolset for recovering and converting filesystems
13 Summary(pl.UTF-8):      anyfs-tools - uniksowy zestaw narzędzi do odzyskiwania i konwersji systemów plików
14 Name:           anyfs-tools
15 Version:        0.84.12
16 Release:        %{_rel}
17 License:        GPL v2
18 Group:          Applications/System
19 Source0:        http://dl.sourceforge.net/anyfs-tools/%{name}-%{version}.tar.bz2
20 # Source0-md5:  548126cb199da13c632805ef3fcca26c
21 Patch0:         %{name}-DFL_RTEXTSIZE.patch
22 URL:            http://anyfs-tools.sourceforge.net/
23 %{?with_userspace:BuildRequires:        e2fsprogs-devel >= 1.38}
24 %if %{with kernel}
25 %{?with_dist_kernel:BuildRequires:      kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
26 BuildRequires:  rpmbuild(macros) >= 1.379
27 %endif
28 %if %{with userspace}
29 BuildRequires:  libfuse-devel >= 2.5
30 BuildRequires:  mjpegtools-devel
31 BuildRequires:  mpeg2dec-devel
32 BuildRequires:  xfsprogs-devel >= 2.8.11
33 %endif
34 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
35
36 %description
37 anyfs-tools provides a unix-like toolset for recovering and converting
38 filesystems. The following utils are included in the toolset:
39
40 build_it uses Linux OS filesystem drivers to recursively read
41 directory entries in order to obtain information about all of the
42 filesystem inodes. The information is then saved to an external inode
43 table.
44
45 anysurrect searches block devices for specific file types, based on
46 their file structure. Information about each found file type is also
47 saved to an external inode table.
48
49 reblock changes the filesystem block size. reblock uses information
50 from the filesystems inode table to change each files' fragments
51 placing so that it will align with block boundaries but with a new
52 block size.
53
54 build_e2fs proceeds from external inode table information for building
55 ext2fs filesystems on device.
56
57 build_xfs proceeds from external inode table information for building
58 xfs filesystems on device.
59
60 anyconvertfs converts device filesystem with applying other
61 anyfs-tools utilities.
62
63 The anyfs filesystem driver for Linux allows a user to mount a device
64 using the external inode table information created by the build_it or
65 anysurrect commands. Once the filesystem is mounted with the inode
66 table information the user can perform file operations such as
67 deleting, moving files, making symbolic and hard links, special files
68 and changing file access permissions. All changes are applied to the
69 external inode table on unmounting the filesystem, leaving the data on
70 the block device unchanged.
71
72 %description -l pl.UTF-8
73 anyfs-tools dostarczają działającego w uniksowym stylu zestawu
74 narzędzi do odzyskiwania i konwersji systemów plików. W pakiecie
75 zawarte są następujące narzędzia:
76
77 build_it wykorzystuje linuksowe sterowniki systemów plików do
78 rekurencyjnego odczytu wpisów katalogów w celu uzyskania informacji o
79 wszystkich i-węzłach systemu plików. Informacje te są następnie
80 zapisywane do zewnętrznej tabeli i-węzłów.
81
82 anysurrect przeszukuje urządzenia blokowe pod kątem określonych
83 rodzajów plików w oparciu o ich strukturę plików. Inforamcje o każdym
84 znalezionym rodzaju pliku są także zapisywane do zewnętrznej tabeli
85 i-węzłów.
86
87 reblock zmienia rozmiar bloku systemu plików. Wykorzystuje informacje
88 o tabeli i-węzłów systemu plików, aby zmienić rozmieszczenie
89 fragmentów każdego pliku w taki sposób, by były wyrównane do granic
90 bloków przy nowym ich rozmiarze.
91
92 build_e2fs na podstawie zewnętrznej informacji o tabeli i-węzłów
93 przystępuje do tworzenia systemu plików ext2fs na urządzeniu.
94
95 build_xfs na podstawie zewnętrznej informacji o tabeli i-węzłów
96 przystępuje do tworzenia systemu plików xfs na urządzeniu.
97
98 anyconvertfs konwertuje system plików stosując inne narzędzia
99 anyfs-tools.
100
101 Sterownik systemu plików anyfs dla Linuksa pozwala użytkownikowi
102 podmontować urządzenie przy użyciu zewnętrznych informacji o tabeli
103 i-węzłów stworzonej przy użyciu polecenia build_it lub anysurrect. Po
104 podmontowaniu systemu plików użytkownik może wykonywać operacje na
105 plikach, takie jak usuwanie, przenoszenie, tworzenie dowiązań
106 symbolicznych i zwykłych czy urządzeń specjalnych oraz zmiana
107 uprawnień do plików. Wszystkie zmiany są wykonywane na zewnętrznej
108 tabeli i-węzłów przy odmontowywaniu systemu plików, bez zmiany danych
109 na urządzeniu blokowym.
110
111 %package devel
112 Summary:        Header files for anyfs-tools
113 Summary(pl.UTF-8):      Pliki nagłówkowe anyfs-tools
114 Group:          Development/Libraries
115 Requires:       %{name} = %{version}-%{release}
116
117 %description devel
118 Header files for anyfs-tools.
119
120 %description devel -l pl.UTF-8
121 Pliki nagłówkowe anyfs-tools.
122
123 %package -n kernel%{_alt_kernel}-misc-any
124 Summary:        AnyFS Linux kernel module
125 Summary(pl.UTF-8):      Moduł jądra Linuksa AnyFS
126 Release:        %{_rel}@%{_kernel_ver_str}
127 License:        GPL v2
128 Group:          Base/Kernel
129 Requires(post,postun):  /sbin/depmod
130 %if %{with dist_kernel}
131 %requires_releq_kernel
132 Requires(postun):       %releq_kernel
133 %endif
134 %if "%{_alt_kernel}" != "%{nil}"
135 Provides:       kernel-misc-any
136 %endif
137
138 %description -n kernel%{_alt_kernel}-misc-any
139 This package contains the AnyFS Linux kernel module.
140
141 %description -n kernel%{_alt_kernel}-misc-any -l pl.UTF-8
142 Ten pakiet zawiera moduł jądra Linuksa AnyFS.
143
144 %prep
145 %setup -q
146 %patch0 -p0
147
148 %if %{with kernel}
149 cat > anyfs/Makefile <<'EOF'
150 obj-m += any.o
151 any-objs := inode.o file.o dir.o namei.o symlink.o
152 EOF
153 %endif
154
155 %build
156 %if %{with userspace}
157 %configure
158 %{__make} libany
159 %{__make} progs
160 %endif
161
162 %if %{with kernel}
163 %build_kernel_modules -C anyfs -m any
164 %endif
165
166 %install
167 rm -rf $RPM_BUILD_ROOT
168
169 %if %{with userspace}
170 %{__make} install \
171         DESTDIR=$RPM_BUILD_ROOT
172
173 %find_lang %{name}
174 %endif
175
176 %if %{with kernel}
177 %install_kernel_modules -m anyfs/any -d kernel/fs -n any -s current
178 %endif
179
180 %clean
181 rm -rf $RPM_BUILD_ROOT
182
183 %post -n kernel%{_alt_kernel}-misc-any
184 %depmod %{_kernel_ver}
185
186 %postun -n kernel%{_alt_kernel}-misc-any
187 %depmod %{_kernel_ver}
188
189 %if %{with userspace}
190 %files -f %{name}.lang
191 %defattr(644,root,root,755)
192 %doc README THANKS
193 %lang(ru) %doc README.ru
194 %attr(755,root,root) %{_sbindir}/*
195 %attr(755,root,root) %{_bindir}/anyfuse
196 %{_mandir}/man3/*
197 %{_mandir}/man5/*
198 %{_mandir}/man8/*
199 %lang(ru) %{_mandir}/ru/man3/*
200 %lang(ru) %{_mandir}/ru/man5/*
201 %lang(ru) %{_mandir}/ru/man8/*
202
203 %files devel
204 %defattr(644,root,root,755)
205 %{_includedir}/anyfs-tools
206 %endif
207
208 %if %{with kernel}
209 %files -n kernel%{_alt_kernel}-misc-any
210 %defattr(644,root,root,755)
211 /etc/modprobe.d/%{_kernel_ver}/any.conf
212 /lib/modules/%{_kernel_ver}/kernel/fs/any-current.ko*
213 %endif
This page took 0.0625869999999999 seconds and 2 git commands to generate.