]>
Commit | Line | Data |
---|---|---|
bf51713f | 1 | # TODO make examples package |
2c8b38aa | 2 | |
36c63f4b | 3 | %define module egenix-mx-base |
4 | %define mxdir %{py_sitedir}/mx | |
2c8b38aa | 5 | |
ca03783b | 6 | Summary: eGenix mx-Extensions for Python |
f71d7ea6 | 7 | Summary(pl.UTF-8): eGenix mx-Extensions dla języka Python |
2c8b38aa | 8 | Name: python-%{module} |
c9f5d351 | 9 | Version: 2.0.6 |
2b23dbe6 | 10 | Release: 3 |
b0fc504b | 11 | License: distributable |
bf66b3cb | 12 | Group: Libraries/Python |
1c34c4f9 | 13 | #Source0Download: http://www.egenix.com/files/python/eGenix-mx-Extensions.html |
feae2631 | 14 | Source0: http://www.egenix.com/files/python/%{module}-%{version}.tar.gz |
c9f5d351 | 15 | # Source0-md5: 66841151728a06f92d0b8dd2ed317a29 |
1c34c4f9 | 16 | URL: http://www.egenix.com/files/python/eGenix-mx-Extensions.html |
964ab9f8 | 17 | BuildRequires: python-devel >= 2.2.2 |
1a3a0d39 | 18 | BuildRequires: rpm-pythonprov |
c9f5d351 | 19 | %pyrequires_eq python-libs |
2c8b38aa | 20 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
fd2a456e | 21 | |
22 | %description | |
2c8b38aa | 23 | The eGenix mx Extension Series are a collection of Python extensions |
24 | written in ANSI C and Python which provide a large spectrum of useful | |
25 | additions to everyday Python programming. | |
26 | ||
ca03783b | 27 | This package includes the Open Source subpackages of the series and is |
28 | needed by all other add-on packages of the series. | |
2c8b38aa | 29 | |
f71d7ea6 JR |
30 | %description -l pl.UTF-8 |
31 | eGenix mx Extensions Series jest zestawem modułów, ułatwiających życie | |
32 | każdemu programiście piszącemu w języku Python, napisanych w ANSI C i | |
ca03783b | 33 | Pythonie. |
2c8b38aa | 34 | |
f71d7ea6 | 35 | Ten pakiet zawiera podstawowe moduły wymagane przez inne pakiety. |
eea42fc4 | 36 | |
38a77d59 | 37 | %package devel |
38 | Summary: Basic header files for eGenix extensions | |
f71d7ea6 | 39 | Summary(pl.UTF-8): Podstawowe pliki nagłówkowe dla rozszerzeń eGenix |
38a77d59 | 40 | Group: Development/Languages/Python |
c9f5d351 | 41 | Requires: %{name} = %{version}-%{release} |
38a77d59 | 42 | |
43 | %description devel | |
44 | Basic header files for eGenix extensions. | |
45 | ||
f71d7ea6 JR |
46 | %description devel -l pl.UTF-8 |
47 | Podstawowe pliki nagłówkowe dla rozszerzeń eGenix. | |
38a77d59 | 48 | |
c9f5d351 JB |
49 | %package -n python-mx-BeeBase |
50 | Summary: High performance construction kit for disk based indexed databases (B+Tree) | |
f71d7ea6 | 51 | Summary(pl.UTF-8): Wysokiej jakości pakiet do tworzenia indeksowanych baz danych (B+Tree) |
c9f5d351 JB |
52 | Group: Libraries/Python |
53 | Requires: %{name} = %{version}-%{release} | |
54 | ||
55 | %description -n python-mx-BeeBase | |
56 | mxBeeBase is a high performance construction kit for disk based | |
57 | indexed databases. It offers components which you can plug together to | |
58 | easily build your own custom mid-sized databases (the current size | |
59 | limit is sizeof(long) which gives you an address range of around 2GB | |
60 | on 32-bit platforms). | |
61 | ||
62 | The two basic building blocks in mxBeeBase are storage and index. | |
63 | Storage is implemented as variable record length data storage with | |
64 | integrated data protection features, automatic data recovery and | |
65 | locking for multi process access. Indexes use a high performance | |
66 | optimized B+Tree implementation built on top of Thomas Niemann's | |
67 | Cookbook B+Tree implementation. | |
68 | ||
f71d7ea6 JR |
69 | %description -n python-mx-BeeBase -l pl.UTF-8 |
70 | mxBeeBase jest wysokiej jakości pakietem do tworzenia indeksowanych | |
71 | baz danych. Zawiera komponenty, które można razem łączyć w celu | |
72 | zbudowania własnej bazy. Obecny limit ilości danych wynosi 2GB (max. | |
73 | wartość liczby całkowitej typu long na platformach 32 bitowych). | |
c9f5d351 | 74 | |
f71d7ea6 JR |
75 | Dwoma podstawowymi komponentami w tym pakiecie są indeksy oraz |
76 | rekordy. Rekord może być zmiennej długości i zawiera mechanizmy | |
77 | ochrony, automatycznego odzyskiwania, blokowania, a także | |
78 | wieloprocesowego dostępu do danych. Do indeksowania są używane bardzo | |
c9f5d351 JB |
79 | wydajne B-drzewa zaimplementowane na podstawie Cookbook B+Tree Thomasa |
80 | Newmanna. | |
81 | ||
2c8b38aa | 82 | %package -n python-mx-DateTime |
83 | Summary: Date and time Python extension | |
f71d7ea6 | 84 | Summary(pl.UTF-8): Obiekty daty i czasu dla języka Python |
bf66b3cb | 85 | Group: Libraries/Python |
c9f5d351 | 86 | Requires: %{name} = %{version}-%{release} |
2c8b38aa | 87 | |
88 | %description -n python-mx-DateTime | |
89 | mxDateTime is an extension package that provides three new object | |
ca03783b | 90 | types - DateTime, DateTimeDelta and RelativeDateTime, which let you |
2c8b38aa | 91 | store and handle date/time values in a much more natural way than by |
ca03783b | 92 | using ticks (seconds since 01.01.1970 0:00 UTC; the encoding used by |
93 | the time module). | |
2c8b38aa | 94 | |
95 | You can add, subtract and even multiply instances, pickle and copy | |
96 | them and convert the results to strings, COM dates, ticks and some | |
97 | other more esoteric values. In addition, there are several convenient | |
98 | constructors and formatters at hand to greatly simplify dealing with | |
99 | dates and times in real-world applications. | |
100 | ||
101 | In addition to providing an easy-to-use Python interface the package | |
102 | also exports a comfortable C API interface for other extensions to | |
103 | build upon. This is especially interesting for database applications | |
104 | which often have to deal with date/time values (the mxODBC package is | |
105 | one example of an extension using this interface). | |
106 | ||
f71d7ea6 JR |
107 | %description -n python-mx-DateTime -l pl.UTF-8 |
108 | mxDateTime jest pakietem modułów, które definiują trzy nowe klasy - | |
109 | DateTime, DateTimeDelta oraz RelativeDateTime. Umożliwiają one | |
ca03783b | 110 | przechowywanie oraz operowanie na dacie i czasie w bardziej naturalny |
f71d7ea6 | 111 | sposób niż za pomocą sekund od początku 1 stycznia 1970 (tak jak w |
ca03783b | 112 | module time). |
113 | ||
f71d7ea6 JR |
114 | Programista może dodawać, odejmować, mnożyć (w sensie arytmetycznym), |
115 | serializować, a także mnożyć (w sesnie rozmnażania :-) obiekty. | |
116 | Instancje w/w klas mogą być konwertowane do napisów i sekund. | |
117 | Dodatkowo moduł zawiera kilka użytecznych funkcji do tworzenia nowych | |
118 | obiektów i ich formatowania. | |
ca03783b | 119 | |
f71d7ea6 JR |
120 | Oprócz, łatwych w użyciu, klas języka Python, pakiet dostarcza także |
121 | bardzo wygodny interfejs w C, który może być wykorzystany do tworzenia | |
122 | innych rozszerzeń (np.: pakiet mxODBC). W szczególności, cecha ta jest | |
123 | interesująca w przypadku aplikacji bazodanowych, które operują na | |
ca03783b | 124 | dacie i czasie. |
2c8b38aa | 125 | |
997f4c2c | 126 | %package -n python-mx-DateTime-devel |
c9f5d351 | 127 | Summary: Header file for DateTime Python extension |
f71d7ea6 | 128 | Summary(pl.UTF-8): Plik nagłówkowy rozszerzenia DateTime dla Pythona |
38a77d59 | 129 | Group: Development/Languages/Python |
0cb8f2e1 | 130 | Requires: %{name}-devel = %{version}-%{release} |
997f4c2c MK |
131 | |
132 | %description -n python-mx-DateTime-devel | |
c9f5d351 | 133 | Header file for DateTime Python extension. |
997f4c2c | 134 | |
f71d7ea6 JR |
135 | %description -n python-mx-DateTime-devel -l pl.UTF-8 |
136 | Plik nagłówkowy rozszerzenia DateTime dla Pythona. | |
c9f5d351 JB |
137 | |
138 | %package -n python-mx-Proxy | |
139 | Summary: Support for Bastion like implementations for Python | |
f71d7ea6 | 140 | Summary(pl.UTF-8): Wsparcie dla implementacji typu Bastion dla języka Python |
c9f5d351 JB |
141 | Group: Libraries/Python |
142 | Requires: %{name} = %{version}-%{release} | |
143 | ||
144 | %description -n python-mx-Proxy | |
145 | mxProxy is an extension package that provides a new type that is | |
146 | suitable to implement Bastion like features without the need to use | |
147 | restricted execution environments. | |
148 | ||
149 | The type's main features are secure data encapsulation (the hidden | |
150 | objects are not accessible from Python since they are stored in | |
151 | internal C structures), customizable attribute lookup methods and a | |
152 | cleanup protocol that helps in breaking circular references prior to | |
153 | object deletion. | |
154 | ||
155 | The latest version adds a very interesting new feature: weak | |
156 | references which help you work with circular references in a way that | |
157 | doesn't cause memory leakage in a Python system. | |
158 | ||
f71d7ea6 JR |
159 | %description -n python-mx-Proxy -l pl.UTF-8 |
160 | Pakiet mxProxy dostarcza nowe klasy, które implementują funkcjonalność | |
161 | typu Bastion bez potrzeby ograniczania środowiska, w którym jest | |
c9f5d351 JB |
162 | wykonywana aplikacja. |
163 | ||
f71d7ea6 JR |
164 | Podstawowymi zaletami są: bezpieczne obudowywanie danych (ukryte |
165 | obiekty nie są dostępne z poziomu Pythona, ponieważ są one | |
166 | przechowywane w wewnętrznych strukturach języka C), konfigurowalne | |
167 | metody do pobierania wartości atrybutów oraz protokół, który pomaga w | |
168 | rozbijaniu zapętlonych referencji podczas usuwania obiektów. | |
c9f5d351 | 169 | |
f71d7ea6 JR |
170 | Ostatnia wersja pakietu implementuje tzw. słabe referencje, które nie |
171 | powodują wycieków pamięci w przypadku referencji zapętlonych. | |
c9f5d351 JB |
172 | |
173 | %package -n python-mx-Queue | |
174 | Summary: Queue implementation for Python | |
f71d7ea6 | 175 | Summary(pl.UTF-8): Implementacja kolejki dla języka Python |
c9f5d351 JB |
176 | Group: Libraries/Python |
177 | Requires: %{name} = %{version}-%{release} | |
178 | ||
179 | %description -n python-mx-Queue | |
180 | mxQueue is an extension package that provides a new object type called | |
181 | Queue. It works much like what you would expect from such a type, | |
182 | having .push() and .pop() methods and focusses on obtaining maximum | |
183 | speed at low memory costs. | |
184 | ||
f71d7ea6 JR |
185 | %description -n python-mx-Queue -l pl.UTF-8 |
186 | Pakiet mxQueue zawiera implementację kolejki, która zawiera typowe | |
187 | metody takie jak pop() czy push(). Mechanizm został napisany tak by, | |
188 | przy minimalnym zużyciu pamięci, był bardzo wydajny. | |
c9f5d351 JB |
189 | |
190 | %package -n python-mx-Stack | |
191 | Summary: Stack implementation for Python | |
f71d7ea6 | 192 | Summary(pl.UTF-8): Implementacja stosu dla języka Python |
c9f5d351 JB |
193 | Group: Libraries/Python |
194 | Requires: %{name} = %{version}-%{release} | |
195 | ||
196 | %description -n python-mx-Stack | |
197 | mxStack is an extension package that provides a new object type called | |
198 | Stack. It works much like what you would expect from such a type, | |
199 | having .push() and .pop() methods and focusses on obtaining maximum | |
200 | speed at low memory costs. | |
201 | ||
f71d7ea6 JR |
202 | %description -n python-mx-Stack -l pl.UTF-8 |
203 | Pakiet mxStack zawiera implementację stosu, która zawiera typowe | |
204 | metody takie jak pop() czy push(). Mechanizm został napisany tak by, | |
205 | przy minimalnym zużyciu pamięci, był bardzo wydajny. | |
997f4c2c | 206 | |
2c8b38aa | 207 | %package -n python-mx-TextTools |
208 | Summary: Efficient text manipulation extensions for Python | |
f71d7ea6 | 209 | Summary(pl.UTF-8): Wydajne manipulowanie tekstem w języku Python |
bf66b3cb | 210 | Group: Libraries/Python |
c9f5d351 | 211 | Requires: %{name} = %{version}-%{release} |
2c8b38aa | 212 | |
213 | %description -n python-mx-TextTools | |
214 | mxTextTools is an extension package for Python that provides several | |
215 | useful functions and types that implement high-performance text | |
216 | manipulation and searching algorithms in addition to a very flexible | |
217 | and extendable state machine, the Tagging Engine, that allows scanning | |
218 | and processing text based on low-level byte-code "programs" written | |
219 | using Python tuples. It gives you access to the speed of C without the | |
220 | need to do any compile and link steps every time you change the | |
221 | parsing description. | |
222 | ||
223 | Applications include parsing structured text, finding and extracting | |
224 | text (either exact or using translation tables) and recombining | |
225 | strings to form new text. | |
226 | ||
f71d7ea6 JR |
227 | %description -n python-mx-TextTools -l pl.UTF-8 |
228 | Pakiet mxTextTools dostarcza szereg użytecznych typów i funkcji, które | |
229 | implementują wysokiej jakości algorytmy do wyszukiwania i manipulacji | |
ca03783b | 230 | tekstu. Programista dostaje wydajne (na poziomie kodu napisanego w |
f71d7ea6 | 231 | języku C) narzędzie bez potrzeby kompilacji i konsolidacji, kiedy |
ca03783b | 232 | zajdzie potrzeba zmiany sposobu interpretacji tekstu. |
233 | ||
f71d7ea6 JR |
234 | Pakiet może mieć zastosowanie w aplikacjach, które muszą interpretować |
235 | tekst zadany w konkretnym formacie, a także wyszukiwać, pobierać i | |
236 | manipulować tekstem. | |
2c8b38aa | 237 | |
2c8b38aa | 238 | %package -n python-mx-Tools |
239 | Summary: Some handy functions and objects which provides new builtins for Python | |
f71d7ea6 | 240 | Summary(pl.UTF-8): Kilka użytecznych klas i funkcji w postaci wew. mechanizmów Pythona |
bf66b3cb | 241 | Group: Libraries/Python |
c9f5d351 | 242 | Requires: %{name} = %{version}-%{release} |
fd2a456e | 243 | |
2c8b38aa | 244 | %description -n python-mx-Tools |
245 | mxTools is an extension package that includes a collection of handy | |
246 | functions and objects giving additional functionality in form of new | |
247 | builtins to the Python programmer. | |
fd2a456e | 248 | |
2c8b38aa | 249 | The package auto-installs the new functions and objects as builtins |
250 | upon first import. This means that they become instantely available to | |
251 | all other modules without any further action on your part. Add the | |
252 | line import mx.Tools.NewBuiltins to your site.py script and they will | |
253 | be available to all users at your site as if they were installed in | |
254 | the Python interpreter itself. | |
fd2a456e | 255 | |
f71d7ea6 JR |
256 | %description -n python-mx-Tools -l pl.UTF-8 |
257 | Pakiet mxTools zawiera kilka użytecznych klas i funkcji, które dają | |
258 | więcej możliwości programiście, w postaci wewnętrznych mechanizmów | |
259 | języka Python. | |
260 | ||
261 | Pakiet ten instaluje, jako mechanizmy wewnętrzne Pythona, wszystkie | |
262 | funkcje i klasy po ich pierwszym dołączeniu do kodu. Oznacza to, że są | |
263 | one dostępne dla innych modułów bez jakichkolwiek dodatkowych | |
264 | zabiegów. Wystarczy dodać linię "import mx.Tools.NewBuiltins" do | |
265 | odpowiedniego skryptu (site.py) i zdefiniowane funkcje oraz klasy będą | |
266 | widoczne dla wszystkich użytkowników tak, jak by były wbudowane w | |
267 | język Python. | |
2c8b38aa | 268 | |
fd2a456e | 269 | %prep |
feae2631 | 270 | %setup -q -n %{module}-%{version} |
fd2a456e | 271 | |
272 | %build | |
2c8b38aa | 273 | env CFLAGS="%{rpmcflags}" python setup.py build |
fd2a456e | 274 | |
275 | %install | |
2c8b38aa | 276 | rm -rf $RPM_BUILD_ROOT |
38a77d59 | 277 | install -d $RPM_BUILD_ROOT%{py_incdir}/mx |
0cb8f2e1 | 278 | python setup.py install \ |
279 | --root=$RPM_BUILD_ROOT \ | |
280 | --install-purelib=%{py_sitedir} | |
281 | ||
38a77d59 | 282 | find $RPM_BUILD_ROOT%{py_sitedir} -name \*.h \ |
283 | -exec mv {} $RPM_BUILD_ROOT%{py_incdir}/mx \; | |
c9f5d351 | 284 | find $RPM_BUILD_ROOT%{py_sitedir} -name '*.py' -o -regex '.*/\(COPYRIGHT\|LICENSE\|README\|Doc\|Examples\)' | xargs rm -rf |
2c8b38aa | 285 | |
fd2a456e | 286 | %clean |
287 | rm -rf $RPM_BUILD_ROOT | |
288 | ||
2c8b38aa | 289 | %files |
290 | %defattr(644,root,root,755) | |
ee0f2d3e | 291 | %doc README mx/LICENSE mx/COPYRIGHT mx/Doc/mxLicense.html |
25fe96ed | 292 | %dir %{mxdir} |
38a77d59 | 293 | %dir %{py_incdir}/mx |
3616fa0c | 294 | %{mxdir}/*.py[co] |
a97acb99 | 295 | %dir %{mxdir}/Misc |
3616fa0c | 296 | %{mxdir}/Misc/*.py[co] |
2c8b38aa | 297 | |
38a77d59 | 298 | %files devel |
299 | %defattr(644,root,root,755) | |
300 | %{py_incdir}/mx/mxh.h | |
301 | ||
c9f5d351 JB |
302 | %files -n python-mx-BeeBase |
303 | %defattr(644,root,root,755) | |
304 | # this COPYRIGHT differs from others | |
305 | %doc mx/BeeBase/Doc/*.html mx/BeeBase/COPYRIGHT | |
306 | %dir %{mxdir}/BeeBase | |
307 | %{mxdir}/BeeBase/*.py[co] | |
308 | %dir %{mxdir}/BeeBase/mxBeeBase | |
309 | %{mxdir}/BeeBase/mxBeeBase/*.py[co] | |
310 | %attr(755,root,root) %{mxdir}/BeeBase/mxBeeBase/*.so | |
311 | ||
312 | # -devel if needed | |
313 | #%{py_incdir}/mx/btr.h | |
314 | #%{py_incdir}/mx/mxBeeBase.h | |
315 | ||
2c8b38aa | 316 | %files -n python-mx-DateTime |
317 | %defattr(644,root,root,755) | |
a97acb99 | 318 | %doc mx/DateTime/Doc/*.html |
319 | %dir %{mxdir}/DateTime | |
3616fa0c | 320 | %{mxdir}/DateTime/*.py[co] |
a97acb99 | 321 | %dir %{mxdir}/DateTime/mxDateTime |
3616fa0c | 322 | %{mxdir}/DateTime/mxDateTime/*.py[co] |
a97acb99 | 323 | %attr(755,root,root) %{mxdir}/DateTime/mxDateTime/*.so |
2c8b38aa | 324 | |
997f4c2c MK |
325 | %files -n python-mx-DateTime-devel |
326 | %defattr(644,root,root,755) | |
38a77d59 | 327 | %{py_incdir}/mx/mxDateTime.h |
997f4c2c | 328 | |
c9f5d351 | 329 | %files -n python-mx-Proxy |
2c8b38aa | 330 | %defattr(644,root,root,755) |
c9f5d351 JB |
331 | %doc mx/Proxy/Doc/*.html |
332 | %dir %{mxdir}/Proxy | |
333 | %{mxdir}/Proxy/*.py[co] | |
334 | %dir %{mxdir}/Proxy/mxProxy | |
335 | %{mxdir}/Proxy/mxProxy/*.py[co] | |
336 | %attr(755,root,root) %{mxdir}/Proxy/mxProxy/*.so | |
a97acb99 | 337 | |
c9f5d351 JB |
338 | # -devel if needed |
339 | #%{py_incdir}/mx/mxProxy.h | |
a97acb99 | 340 | |
c9f5d351 JB |
341 | %files -n python-mx-Queue |
342 | %defattr(644,root,root,755) | |
343 | %doc mx/Queue/Doc/*.html | |
344 | %dir %{mxdir}/Queue | |
345 | %{mxdir}/Queue/*.py[co] | |
346 | %dir %{mxdir}/Queue/mxQueue | |
347 | %{mxdir}/Queue/mxQueue/*.py[co] | |
348 | %attr(755,root,root) %{mxdir}/Queue/mxQueue/*.so | |
349 | ||
350 | # -devel if needed | |
351 | #%{py_incdir}/mx/mxQueue.h | |
2c8b38aa | 352 | |
353 | %files -n python-mx-Stack | |
354 | %defattr(644,root,root,755) | |
a97acb99 | 355 | %doc mx/Stack/Doc/*.html |
356 | %dir %{mxdir}/Stack | |
3616fa0c | 357 | %{mxdir}/Stack/*.py[co] |
a97acb99 | 358 | %dir %{mxdir}/Stack/mxStack |
3616fa0c | 359 | %{mxdir}/Stack/mxStack/*.py[co] |
a97acb99 | 360 | %attr(755,root,root) %{mxdir}/Stack/mxStack/*.so |
361 | ||
c9f5d351 | 362 | %files -n python-mx-TextTools |
a97acb99 | 363 | %defattr(644,root,root,755) |
c9f5d351 JB |
364 | %doc mx/TextTools/Doc/*.html |
365 | %dir %{mxdir}/TextTools | |
366 | %{mxdir}/TextTools/*.py[co] | |
367 | %dir %{mxdir}/TextTools/mxTextTools | |
368 | %{mxdir}/TextTools/mxTextTools/*.py[co] | |
369 | %attr(755,root,root) %{mxdir}/TextTools/mxTextTools/*.so | |
370 | %dir %{mxdir}/TextTools/Constants | |
371 | %{mxdir}/TextTools/Constants/*.py[co] | |
a97acb99 | 372 | |
c9f5d351 JB |
373 | # -devel if needed |
374 | #%{py_incdir}/mx/mxTextTools.h | |
375 | #%{py_incdir}/mx/mxbmse.h | |
376 | #%{py_incdir}/mx/mxte.h | |
2c8b38aa | 377 | |
378 | %files -n python-mx-Tools | |
379 | %defattr(644,root,root,755) | |
a97acb99 | 380 | %doc mx/Tools/Doc/*.html |
381 | %dir %{mxdir}/Tools | |
3616fa0c | 382 | %{mxdir}/Tools/*.py[co] |
a97acb99 | 383 | %dir %{mxdir}/Tools/mxTools |
3616fa0c | 384 | %{mxdir}/Tools/mxTools/*.py[co] |
a97acb99 | 385 | %attr(755,root,root) %{mxdir}/Tools/mxTools/*.so |
2c8b38aa | 386 | |
c9f5d351 JB |
387 | # -devel if needed |
388 | #%{py_incdir}/mx/mxTools.h |