]> git.pld-linux.org Git - packages/dev.git/blob - dev.spec
2e6ef9a4d8ed11ed306136712e2dfbdf46e56524
[packages/dev.git] / dev.spec
1 Summary:        /dev entries
2 Summary(de):    /dev-Einträge
3 Summary(fr):    Entrées de /dev
4 Summary(pl):    Pliki specjalne /dev/*
5 Summary(tr):    /dev dizini
6 Name:           dev
7 Version:        2.8.0
8 Release:        13
9 License:        public domain
10 Group:          Base
11 Group(cs):      Základ
12 Group(da):      Basal
13 Group(de):      Basis
14 Group(es):      Base
15 Group(fr):      Base
16 Group(is):      Grunnforrit
17 Group(it):      Base
18 Group(ja):      ¥Ù¡¼¥¹
19 Group(no):      Basis
20 Group(pl):      Podstawowe
21 Group(pt):      Base
22 Group(pt_BR):   Base
23 Group(ru):      âÁÚÁ
24 Group(sl):      Osnova
25 Group(sv):      Bas
26 Group(uk):      âÁÚÁ
27 Source0:        %{name}-%{version}.tar.gz
28 BuildRequires:  setup
29 BuildRequires:  shadow
30 PreReq:         setup >= 2.4.1-2
31 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
32 Autoreqprov:    no
33
34 %define         perm_cdrom      660,root,disk
35
36 %description
37 Unix and unix like systems (including Linux) use file system entries
38 to represent devices attached to the machine. All of these entries are
39 in the /dev tree (though they don't have to be), and this package
40 contains the most commonly used /dev entries. These files are
41 essential for a system to function properly.
42
43 %description -l de
44 Unix und Unix-ähnliche Systeme (inkl. Linux) verwenden Dateisystem-
45 Einträge zum Darstellen angeschlossener Geräte. Diese Einträge
46 befinden sich (nicht notwendigerweise) im Verzeichnis /dev. Dieses
47 Paket enthält die üblichsten /dev-Einträge. Diese Dateien sind für das
48 Funktionieren eines Systems unbedingt erforderlich.
49
50 %description -l fr
51 Unix et les systèmes apparentés (dont Linux) utilise des fichiers pour
52 représenter les périphériques reliés à la machine. Toutes ces entrées
53 sont dans l'arborescence /dev (ce n'est pas obligatoire). Ce paquetage
54 contient les entrées /dev les plus courantes. Elles sont essentielles
55 pour qu'un système fonctionne correctement.
56
57 %description -l pl
58 Wszystkie systemy klasy unices, w tym Linux, u¿ywaj± plików do
59 przedstawiania urz±dzeñ pod³±czonych do komputera. Wszystkie te pliki
60 znajduj± siê zwykle w katalogu /dev. Pakiet ten zawiera wiêkszo¶æ
61 popularnych plików specjalnych, s± one jedn± z wa¿niejszych czê¶ci
62 prawid³owo dzia³aj±cego systemu operacyjnego.
63
64 %description -l tr
65 Unix ve Unix benzeri sistemler (Linux da dahil olmak üzere), makinaya
66 baðlý aygýtlarý göstermek için özel dosyalar kullanýrlar. Bu özel
67 dosyalarýn tümü /dev dizin yapýsý altýndadýr. Bu paket en çok
68 kullanýlan /dev dosyalarýný içerir. Bu dosyalar, bir sistemin düzgün
69 olarak iþleyebilmesi için temel gereksinimlerdendir.
70
71 %prep
72 %setup -q -c -T
73
74 %install
75 rm -rf $RPM_BUILD_ROOT
76
77 mknode() {
78 # [ -e $1 ] || mknod $1 $2 $3 $4
79         rm -f $1
80         mknod $1 $2 $3 $4
81 }
82
83 install -d $RPM_BUILD_ROOT
84
85 # add group for floppy and console
86 # if setup contains this group then remove next 4 lines
87 #grep '^floppy:' /etc/group >/dev/null \
88 #       || groupadd -g 19 -r -f floppy >/dev/null
89 #grep '^console:' /etc/group >/dev/null \
90 #       || groupadd -g 20 -f -r console >/dev/null
91
92 # do some cleanup in build root
93 cd $RPM_BUILD_ROOT
94 tar xpSzf $RPM_SOURCE_DIR/%{name}-%{version}.tar.gz
95
96 cd dev
97
98 # tar doesn't save some permissions unless the p option is used
99 # this code protects against dev package updaters forgetting to
100 # use the p option when unpacking the souce tarball.
101 for dev in zero null tty ttyp0; do
102         if [ ! $(ls -l $dev | awk '{print $1}') = crw-rw-rw- ]; then
103                 echo bad permissions on device $dev 1>&2
104                 exit 1
105         fi
106 done
107
108 %ifarch sparc
109 # SPARC specific devices
110 ln -sf sunmouse mouse
111 mknode openprom c 10 139
112 %endif
113
114 %ifarch m68k
115 # m68k specific devices
116 mknode amigamouse c 10 4
117 mknode atarimouse c 10 5
118 mknode apollomouse c 10 7
119 ln -sf amigamouse mouse
120 mknode fdhd0 b 2 4
121 mknode fdhd1 b 2 5
122 %endif
123
124 %ifarch sparc m68k
125 # common sparc & m68k specific devices
126 mknode kbd c 11 0
127 chmod 666 fb*
128 # remove devices that will *never* exist on a SPARC or m68k
129 rm -f aztcd mcd sbpcd* cm206cd cdu31a cdu535 sonycd sjcd gscd
130 rm -f hd* atibm inportbm logibm psaux
131 %endif
132
133 # Coda support
134 mknode cfs0 c 67 0
135
136 # PPP support
137 mknode ppp c 108 0
138
139 for i in 0 1 2 3 4 5 6 7; do
140         ln -sf fb$i fb${i}current
141 done
142
143 # watchdog support
144 mknode watchdog c 10 130
145 mknod temperature c 10 131
146
147
148 # agpgart
149 mknode agpgart c 10 175
150
151 %ifarch %{ix86}
152 # toshiba support
153 mknode toshiba c 10 181
154 %endif
155
156 # route
157 mknode route c 36 0
158
159 # ALSA support
160 rm -f mixer*
161 mknode mixer0 c 14 0
162 mknode mixer1 c 14 16
163 mknode mixer2 c 14 32
164 mknode mixer3 c 14 48
165 ln -sf mixer0 mixer
166
167 ln -sf midi00 midi
168
169 rm -f dsp*
170 mknode dsp0 c 14 3
171 mknode dsp1 c 14 19
172 mknode dsp2 c 14 35
173 mknode dsp3 c 14 51
174 ln -sf dsp0 dsp
175
176 rm -f audio*
177 mknode audio0 c 14 4
178 mknode audio1 c 14 20
179 mknode audio2 c 14 36
180 mknode audio3 c 14 52
181 ln -sf audio0 audio
182
183 mknode adsp0 c 14 12
184 mknode adsp1 c 14 28
185 mknode adsp2 c 14 44
186 mknode adsp3 c 14 60
187 ln -sf adsp0 adsp
188
189 mknode dmfm0 c 14 10
190 mknode dmfm1 c 14 26
191 mknode dmfm2 c 14 42
192 mknode dmfm3 c 14 58
193
194 mknode dmmidi0 c 14 9
195 mknode dmmidi1 c 14 25
196 mknode dmmidi2 c 14 41
197 mknode dmmidi3 c 14 57
198
199 mknode music c 14 8
200
201 mknode admmidi0 c 14 14
202 mknode admmidi1 c 14 30
203 mknode admmidi2 c 14 46
204 mknode admmidi3 c 14 62
205
206 mknode amidi0 c 14 13
207 mknode amidi1 c 14 29
208 mknode amidi2 c 14 45
209 mknode amidi3 c 14 61
210 ln -sf amidi0 amidi
211
212 ln -sf music sequencer2
213
214 mknode aloadC0 c 116 0
215 mknode aloadC1 c 116 32
216 mknode aloadC2 c 116 64
217 mknode aloadC3 c 116 96
218 mknode aloadSEQ c 116 1
219
220 mknode amixer0 c 14 11
221 mknode amixer1 c 14 27
222 mknode amixer2 c 14 43
223 mknode amixer3 c 14 59
224
225 # video4linux support
226 mknode video0 c 81 0
227 mknode radio0 c 81 64
228 mknode vtx0 c 81 192
229 mknode vbi0 c 81 224
230 ln -sf video0 video
231 ln -sf radio0 radio
232 ln -sf vtx0 vtx
233 ln -sf vbi0 vbi
234
235 # raid
236 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
237         mknode md$i b 9 $i
238 done
239
240 # ataraid
241 mkdir ataraid
242 for d in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
243     mknod ataraid/d$d b 114 $(( $d * 16 ))
244     for p in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
245         mknod ataraid/d${d}p${p} b 114 $(( $d * 16 + $p ))
246     done
247 done
248
249 # netfilter
250 mknode ipstate c 95 2
251
252 # arpd
253 mknod arpd c 36 8
254
255 # temporary
256 install -d $RPM_BUILD_ROOT/proc/asound
257 > $RPM_BUILD_ROOT/proc/asound/dev
258
259 ln -sf ../proc/asound/dev snd
260
261 # prepared for SysVinit
262 mknode initctl p
263
264 # prepared for Log Daemon
265 mkfifo --mode=666 syslog
266
267 # libsvga char dev helpers
268 mknode svga c 209 0
269 mknode svga1 c 209 1
270 mknode svga2 c 209 2
271 mknode svga3 c 209 3
272 mknode svga4 c 209 4
273
274 # ipsec character device
275 mknode ipsec c 36 10
276
277 # raw io devices
278 mknode rawctl c 162 0
279 mkdir $RPM_BUILD_ROOT/dev/raw
280 minor=1
281 while [ "$minor" -ne 256 ]; do
282         mknode "raw/raw$minor" c 162 $minor
283         minor=$(($minor +1))
284 done
285
286 # ltmodem
287 mknode ttyLT0 c 62 64
288
289 # XFree86-nvidia-kernel a.k.a. kernel(-smp)-video-nvidia
290 for i in 0 1 2 3; do
291         mknode nvidia$i c 195 $i
292 done
293 mknode nvidiactl c 195 255
294
295 # kernel 2.4 requires /dev/js* with major 13
296 for f in 0 1 2 3; do
297         mv -f js$f oldjs$f
298         mknode js$f c 13 $f
299 done
300
301 # irda-utils
302 mknode ircomm0 c 161 0
303 mknode ircomm1 c 161 1
304 mknode irlpt0 c 161 16
305 mknode irlpt1 c 161 17
306
307 # lirc
308 mknode lirc c 61 0
309 mknode lircm p
310
311 # usb
312 mkdir $RPM_BUILD_ROOT/dev/input
313 mkdir $RPM_BUILD_ROOT/dev/usb
314 for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
315         mknode input/js$i c 13 $i
316         mknode input/mouse$i c 13 $(( $i + 32 ))
317         mknode input/event$i c 13 $(( $i + 64 ))
318         mknode usb/ttyACM$i c 166 $i
319         mknode usb/lp$i c 180 $i
320         mknode usb/scanner$i c 180 $(( $i + 48 ))
321         mknode usb/ez$i c 180 $(( $i + 64 ))
322         mknode usb/ttyUSB$i c 188 $i
323         mknode usb/ttyUB$i c 216 $i
324 done
325 mknode input/mice c 13 63
326 mknode usb/rio500 c 180 64
327
328 %clean
329 rm -rf $RPM_BUILD_ROOT
330
331 %files
332 %defattr(644,root,root,755)
333
334 #a#
335 %dir /dev/ataraid
336 %attr(660,root,disk) /dev/ataraid/*
337 %attr(660,root,audio) /dev/admmidi*
338
339 %config(noreplace) %verify(not link) %attr(660,root,audio) /dev/adsp
340 %attr(660,root,audio) /dev/adsp?*
341
342 %config(noreplace) %verify(not link) %attr(660,root,audio) /dev/amidi
343 %attr(660,root,audio) /dev/amidi?*
344
345 %attr(644,root,root) /dev/agpgart
346 %attr(660,daemon,root) /dev/arpd
347
348 %config(noreplace) %verify(not link) %attr(660,root,audio) /dev/audio
349 %attr(660,root,audio) /dev/audio?*
350
351 #b#
352 %attr(%{perm_cdrom}) /dev/bpcd
353
354 #c#
355 %attr(600,root,root) /dev/capi*
356 %attr(600,root,root) /dev/cfs0
357 %attr(660,root,console) /dev/console
358 %attr(664,root,root) /dev/cui*
359 %attr(600,root,root) /dev/cum*
360
361 #d#
362 %attr(600,root,root) /dev/dcbri*
363 %attr(660,root,sys) /dev/dcxx*
364 %attr(660,root,audio) /dev/dmfm*
365 %attr(660,root,audio) /dev/dmmidi*
366 %config(noreplace) %verify(not link) %attr(660,root,audio) /dev/dsp
367 %attr(660,root,audio) /dev/dsp?*
368
369 #e#
370 %attr(600,root,root) /dev/enskip
371
372 #f#
373 %config(noreplace) %verify(not link) %attr(644,root,root) /dev/fb
374 %attr(664,root,video) /dev/fb?*
375 %attr(660,root,floppy) /dev/fd*
376 %config(noreplace) %verify(not link) %attr(666,root,root) /dev/ftape
377 %attr(644,root,root) /dev/full
378
379 #g#
380
381 #h#
382 %attr(660,root,disk) /dev/ht0
383
384 #i#
385 %attr(600,root,root) /dev/i2c*
386 %dir /dev/ida
387 %attr(660,root,disk) /dev/ida/*
388 %attr(600,root,root) /dev/initctl
389 %dir /dev/input
390 %attr(660,root,root) /dev/input/event*
391 %attr(660,root,sys) /dev/input/js*
392 %attr(660,root,root) /dev/input/mice
393 %attr(660,root,root) /dev/input/mouse*
394 %attr(600,root,root) /dev/ipauth
395 %attr(600,root,root) /dev/ipl
396 %attr(600,root,root) /dev/ipnat
397 %attr(600,root,root) /dev/ipstate
398 %attr(600,root,root) /dev/ippp*
399 %attr(664,root,ttyS) /dev/ircomm0
400 %attr(664,root,ttyS) /dev/ircomm1
401 %attr(664,root,ttyS) /dev/irlpt0
402 %attr(664,root,ttyS) /dev/irlpt1
403 %attr(660,root,sys) /dev/iscc*
404 %attr(600,root,root) /dev/isctl
405 %attr(600,root,root) /dev/isdn?
406 %attr(600,root,root) /dev/isdn??
407 %config(noreplace) %verify(not link) %attr(600,root,root) /dev/isdnctrl
408 %attr(600,root,root) /dev/isdnctrl?*
409 %attr(444,root,root) /dev/isdninfo
410
411 #j#
412 %attr(660,root,sys) /dev/js*
413
414 #k#
415 %attr(640,root,kmem) /dev/kmem
416
417 #l#
418 %attr(660,root,root) /dev/lirc
419 %attr(660,root,root) /dev/lircm
420 %attr(660,root,disk) /dev/loop*
421 %attr(660,root,lp) /dev/lp*
422
423 #m#
424 %attr(640,root,kmem) /dev/mem
425 %config(noreplace) %verify(not link) %attr(660,root,audio) /dev/midi
426 %attr(660,root,audio) /dev/midi?*
427 %config(noreplace) %verify(not link) %attr(660,root,audio) /dev/mixer
428 %attr(660,root,audio) /dev/mixer?*
429 %attr(660,root,sys) /dev/mmetfgrab
430 %attr(600,root,root) /dev/mpu401*
431 %attr(660,root,audio) /dev/music
432 %attr(660,root,disk) /dev/md*
433
434 #n#
435 %attr(660,root,disk) /dev/nb*
436 %config(noreplace) %verify(not link) %attr(666,root,root) /dev/nftape
437 %attr(660,root,disk) /dev/nht*
438 %attr(660,root,disk) /dev/nqft*
439 %attr(660,root,disk) /dev/nrawqft*
440 %attr(660,root,disk) /dev/nrft*
441 %attr(660,root,disk) /dev/nst*
442 %attr(660,root,disk) /dev/ntpqic*
443 %attr(666,root,root) /dev/null
444 %attr(666,root,root) /dev/nvidia*
445 %attr(660,root,disk) /dev/nzqft*
446
447 #o#
448 %attr(%{perm_cdrom}) /dev/optcd
449 %attr(660,root,sys) /dev/oldjs*
450
451 #p#
452 %attr(660,root,lp) /dev/par?
453 %attr(660,root,lp) /dev/parport*
454
455 %attr(%{perm_cdrom}) /dev/pcd*
456 %attr(660,root,disk) /dev/pd*
457 %attr(660,root,disk) /dev/pf*
458 %attr(600,root,root) /dev/pg*
459
460 %attr(640,root,kmem) /dev/port
461 %attr(644,root,root) /dev/ppp
462 %attr(600,root,root) /dev/printer
463
464 %attr(660,root,disk) /dev/pt0
465 %attr(660,root,disk) /dev/pt1
466 %attr(660,root,disk) /dev/pt2
467 %attr(660,root,disk) /dev/pt3
468
469 %attr(666,root,tty) /dev/ptmx
470 %attr(666,root,tty) /dev/pty*
471 %dir /dev/pts
472
473 #r#
474 %attr(640,root,disk) /dev/ram
475 %attr(660,root,disk) /dev/ram0
476 %attr(660,root,disk) /dev/ram1*
477 %attr(660,root,disk) /dev/ram2
478 %attr(660,root,disk) /dev/ram3
479 %attr(660,root,disk) /dev/ram4
480 %attr(660,root,disk) /dev/ram5
481 %attr(660,root,disk) /dev/ram6
482 %attr(660,root,disk) /dev/ram7
483 %attr(660,root,disk) /dev/ram8
484 %attr(660,root,disk) /dev/ram9
485
486 %config(noreplace) %verify(not link) %attr(660,root,disk) /dev/ramdisk
487
488 %attr(644,root,root) /dev/random
489 %attr(660,root,disk) /dev/rawqft*
490 %attr(660,root,disk) /dev/rft*
491 %attr(660,root,audio) /dev/rmidi*
492 %attr(660,root,disk) /dev/rmt*
493 %attr(644,root,root) /dev/route
494 %attr(664,root,root) /dev/rtc
495 %dir /dev/rd
496 %attr(660,root,disk) /dev/rd/*
497 %attr(600,root,root) /dev/rawctl
498 %dir /dev/raw
499 %attr(660,root,disk) /dev/raw/*
500
501 %attr(660,root,video) /dev/radio0
502 %attr(660,root,video) /dev/radio
503
504 #s#
505 %attr(%{perm_cdrom}) /dev/scd*
506 %attr(660,root,disk) /dev/sd*
507
508 %attr(660,root,audio) /dev/sequencer
509 %attr(660,root,audio) /dev/sequencer2
510
511 %attr(600,root,root) /dev/sg*
512 %attr(600,root,root) /dev/smtpe*
513
514 %attr(444,root,root) /dev/snd
515 %attr(666,root,root) /dev/sndstat
516
517 %attr(600,root,root) /dev/srnd*
518
519 %attr(660,root,disk) /dev/st?
520 %attr(600,root,root) /dev/staliomem*
521 %attr(666,root,root) /dev/std*
522
523 %attr(664,root,root) /dev/svga*
524 %attr(666,root,root) /dev/syslog
525 %attr(600,root,root) /dev/systty
526
527 #t#
528 %attr(660,root,disk) /dev/tape*
529 %attr(600,root,root) /dev/tlk*
530 %ifarch %{ix86}
531 %attr(666,root,root) /dev/toshiba
532 %endif
533 %attr(660,root,disk) /dev/tpqic*
534
535 %attr(666,root,root) /dev/tty
536
537 %attr(600,root,root) /dev/tty0
538 %attr(600,root,root) /dev/tty1*
539 %attr(600,root,root) /dev/tty2
540 %attr(600,root,root) /dev/tty3
541 %attr(600,root,root) /dev/tty4
542 %attr(600,root,root) /dev/tty5
543 %attr(600,root,root) /dev/tty6
544 %attr(600,root,root) /dev/tty7
545 %attr(600,root,root) /dev/tty8
546 %attr(600,root,root) /dev/tty9
547
548 %attr(600,root,root) /dev/ttyC*
549 %attr(600,root,root) /dev/ttyD*
550 %attr(600,root,root) /dev/ttyE*
551 %attr(600,root,root) /dev/ttyI*
552 %attr(600,root,root) /dev/ttyM*
553 %attr(600,root,root) /dev/ttyP*
554 %attr(600,root,root) /dev/ttyR*
555
556 %attr(664,root,ttyS) /dev/ttyS*
557 %attr(664,root,ttyS) /dev/ttyLT*
558
559 %attr(666,root,tty) /dev/ttya*
560 %attr(666,root,tty) /dev/ttyb*
561 %attr(666,root,tty) /dev/ttyc*
562 %attr(666,root,tty) /dev/ttyd*
563 %attr(666,root,tty) /dev/ttye*
564 %attr(666,root,tty) /dev/ttyp*
565 %attr(666,root,tty) /dev/ttyq*
566 %attr(666,root,tty) /dev/ttyr*
567 %attr(666,root,tty) /dev/ttys*
568 %attr(666,root,tty) /dev/ttyt*
569 %attr(666,root,tty) /dev/ttyu*
570 %attr(666,root,tty) /dev/ttyv*
571 %attr(666,root,tty) /dev/ttyw*
572 %attr(666,root,tty) /dev/ttyx*
573 %attr(666,root,tty) /dev/ttyy*
574 %attr(666,root,tty) /dev/ttyz*
575
576 #u#
577 %attr(644,root,root) /dev/urandom
578 %dir /dev/usb
579 %attr(660,root,root) /dev/usb/ez*
580 %attr(660,root,lp) /dev/usb/lp*
581 %attr(660,root,root) /dev/usb/scanner*
582 %attr(664,root,ttyS) /dev/usb/rio500
583 %attr(664,root,ttyS) /dev/usb/ttyACM*
584 %attr(664,root,ttyS) /dev/usb/ttyUB*
585 %attr(664,root,ttyS) /dev/usb/ttyUSB*
586
587 #v#
588 %attr(620,root,tty) %verify(not user) /dev/vcs*
589
590 %attr(660,root,video) /dev/video0
591 %attr(660,root,video) /dev/video
592 %attr(660,root,video) /dev/vtx0
593 %attr(660,root,video) /dev/vtx
594 %attr(660,root,video) /dev/vbi0
595 %attr(660,root,video) /dev/vbi
596
597 #w#
598 %attr(600,root,root) /dev/watchdog
599 %attr(660,root,sys) /dev/wvisfgrab
600
601 #x#
602 %attr(660,root,disk) /dev/xd*
603
604 #y#
605
606 #z#
607 %attr(666,root,root) /dev/zero
608 %attr(660,root,disk) /dev/zqft*
609
610 # only on sparc or m68k
611 %ifarch sparc m68k
612 # XXX: which permissions???
613 %attr(600,root,root) /dev/kbd
614 %endif
615
616 # only on m68k
617 %ifarch m68k
618 # XXX: which permissions???
619 %attr(664,root,root) /dev/amigamouse
620 %attr(664,root,root) /dev/atarimouse
621 %attr(664,root,root) /dev/apollomouse
622 %endif
623
624 # only on sparc
625 %ifarch sparc
626 # XXX: which permissions ???
627 %attr(600,root,root) /dev/openprom
628 %attr(664,root,root) /dev/sunmouse
629 %endif
630
631 # not on sparc or m68k
632 %ifnarch sparc m68k
633 %attr(664,root,root) /dev/atibm
634 %attr(%{perm_cdrom}) /dev/aztcd
635 %attr(%{perm_cdrom}) /dev/cdu31a
636 %attr(%{perm_cdrom}) /dev/cdu535
637 %attr(%{perm_cdrom}) /dev/cm206cd
638 %attr(%{perm_cdrom}) /dev/gscd
639 %attr(660,root,disk) /dev/hd*
640 %attr(664,root,root) /dev/inportbm
641 %attr(664,root,root) /dev/logibm
642 %attr(%{perm_cdrom}) /dev/mcd
643 %attr(664,root,root) /dev/psaux
644 %attr(%{perm_cdrom}) /dev/sbpcd*
645 %attr(%{perm_cdrom}) /dev/sjcd
646 %attr(%{perm_cdrom}) /dev/sonycd
647 %endif
This page took 0.115635 seconds and 2 git commands to generate.