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