source: spec/trunk/SPECS/git.spec@ 1088

Last change on this file since 1088 was 1088, checked in by dmik, 8 years ago

spec: git: Release version 2.11.0-2.

File size: 19.0 KB
Line 
1# Note: this .spec is borrowed from http://pkgs.fedoraproject.org/cgit/rpms/git.git
2
3# Pass --without docs to rpmbuild if you don't want the documentation (force it for now)
4%define _without_docs 1
5
6%global gitcoredir %{_libexecdir}/git-core
7%global noarch_sub 1
8%global libcurl_devel libcurl-devel
9%global docbook_suppress_sp 0
10%global enable_ipv6 0
11%global use_prebuilt_docs 0
12
13%global bashcompdir %{_sysconfdir}/bash_completion.d
14%global bashcomproot %{bashcompdir}
15%global use_systemd 0
16
17Name: git
18Version: 2.11.0
19Release: 2%{?dist}
20Summary: Fast Version Control System
21License: GPLv2
22Group: Development/Tools
23URL: https://git-scm.com/
24
25%scm_source svn http://svn.netlabs.org/repos/ports/git/trunk 2163
26
27BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
28
29%if ! %{use_prebuilt_docs} && ! 0%{?_without_docs}
30BuildRequires: asciidoc >= 8.4.1
31BuildRequires: xmlto
32%endif
33#BuildRequires: emacs
34BuildRequires: expat-devel
35BuildRequires: gettext
36BuildRequires: %{libcurl_devel}
37#BuildRequires: pcre-devel
38#BuildRequires: perl-generators
39#BuildRequires: perl(Test)
40BuildRequires: openssl-devel
41BuildRequires: zlib-devel >= 1.2
42%if %{use_systemd}
43# For macros
44BuildRequires: systemd
45%endif
46
47Requires: git-core = %{version}-%{release}
48Requires: git-core-doc = %{version}-%{release}
49#Requires: perl(Error)
50%if ! %{defined perl_bootstrap}
51# TODO Doesn't exist on OS/2 yet.
52#Requires: perl(Term::ReadKey)
53%endif
54Requires: perl-Git = %{version}-%{release}
55
56# Obsolete git-arch
57Obsoletes: git-arch < %{version}-%{release}
58
59%description
60Git is a fast, scalable, distributed revision control system with an
61unusually rich command set that provides both high-level operations
62and full access to internals.
63
64The git rpm installs common set of tools which are usually using with
65small amount of dependencies. To install all git packages, including
66tools for integrating with other SCMs, install the git-all meta-package.
67
68%package all
69Summary: Meta-package to pull in all git tools
70Group: Development/Tools
71%if %{noarch_sub}
72BuildArch: noarch
73%endif
74Requires: git = %{version}-%{release}
75Requires: git-cvs = %{version}-%{release}
76Requires: git-email = %{version}-%{release}
77Requires: git-gui = %{version}-%{release}
78Requires: git-svn = %{version}-%{release}
79Requires: git-p4 = %{version}-%{release}
80Requires: gitk = %{version}-%{release}
81Requires: perl-Git = %{version}-%{release}
82%if ! %{defined perl_bootstrap}
83# TODO Doesn't exist on OS/2 yet.
84#Requires: perl(Term::ReadKey)
85%endif
86#Requires: emacs-git = %{version}-%{release}
87Obsoletes: git <= 1.5.4.3
88
89%description all
90Git is a fast, scalable, distributed revision control system with an
91unusually rich command set that provides both high-level operations
92and full access to internals.
93
94This is a dummy package which brings in all subpackages.
95
96%package core
97Summary: Core package of git with minimal funcionality
98Group: Development/Tools
99Requires: less
100#Requires: openssh-clients
101#Requires: rsync
102Requires: zlib >= 1.2
103%description core
104Git is a fast, scalable, distributed revision control system with an
105unusually rich command set that provides both high-level operations
106and full access to internals.
107
108The git-core rpm installs really the core tools with minimal
109dependencies. Install git package for common set of tools.
110To install all git packages, including tools for integrating with
111other SCMs, install the git-all meta-package.
112
113%package core-doc
114Summary: Documentation files for git-core
115Group: Development/Tools
116Requires: git-core = %{version}-%{release}
117
118%description core-doc
119Documentation files for git-core package including man pages.
120
121%package daemon
122Summary: Git protocol dÊmon
123Group: Development/Tools
124Requires: git = %{version}-%{release}
125%if %{use_systemd}
126Requires: systemd
127Requires(post): systemd
128Requires(preun): systemd
129Requires(postun): systemd
130%else
131#Requires: xinetd
132%endif
133%description daemon
134The git dÊmon for supporting git:// access to git repositories
135
136%if 0
137%package -n gitweb
138Summary: Simple web interface to git repositories
139Group: Development/Tools
140%if %{noarch_sub}
141BuildArch: noarch
142%endif
143Requires: git = %{version}-%{release}
144
145%description -n gitweb
146Simple web interface to track changes in git repositories
147%endif
148
149%package p4
150Summary: Git tools for working with Perforce depots
151Group: Development/Tools
152%if %{noarch_sub}
153BuildArch: noarch
154%endif
155BuildRequires: python
156Requires: git = %{version}-%{release}
157%description p4
158%{summary}.
159
160%package svn
161Summary: Git tools for importing Subversion repositories
162Group: Development/Tools
163Requires: git = %{version}-%{release}, subversion
164Requires: perl(Digest::MD5)
165%if ! %{defined perl_bootstrap}
166# TODO Doesn't exist on OS/2 yet.
167#Requires: perl(Term::ReadKey)
168%endif
169%description svn
170Git tools for importing Subversion repositories.
171
172%package cvs
173Summary: Git tools for importing CVS repositories
174Group: Development/Tools
175%if %{noarch_sub}
176BuildArch: noarch
177%endif
178Requires: git = %{version}-%{release}, cvs
179Requires: cvsps
180Requires: perl(DBD::SQLite)
181%description cvs
182Git tools for importing CVS repositories.
183
184%package email
185Summary: Git tools for sending email
186Group: Development/Tools
187%if %{noarch_sub}
188BuildArch: noarch
189%endif
190Requires: git = %{version}-%{release}, perl-Git = %{version}-%{release}
191Requires: perl(Authen::SASL)
192Requires: perl(Net::SMTP::SSL)
193%description email
194Git tools for sending email.
195
196%if 0
197
198%package gui
199Summary: Git GUI tool
200Group: Development/Tools
201%if %{noarch_sub}
202BuildArch: noarch
203%endif
204Requires: git = %{version}-%{release}, tk >= 8.4
205Requires: gitk = %{version}-%{release}
206%description gui
207Git GUI tool.
208
209%package -n gitk
210Summary: Git revision tree visualiser
211Group: Development/Tools
212%if %{noarch_sub}
213BuildArch: noarch
214%endif
215Requires: git = %{version}-%{release}, tk >= 8.4
216%description -n gitk
217Git revision tree visualiser.
218
219%endif
220
221%package -n perl-Git
222Summary: Perl interface to Git
223Group: Development/Libraries
224%if %{noarch_sub}
225BuildArch: noarch
226%endif
227Requires: git = %{version}-%{release}
228#BuildRequires: perl(Error)
229BuildRequires: perl(ExtUtils::MakeMaker)
230#Requires: perl(Error)
231#Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
232
233%description -n perl-Git
234Perl interface to Git.
235
236%package -n perl-Git-SVN
237Summary: Perl interface to Git::SVN
238Group: Development/Libraries
239%if %{noarch_sub}
240BuildArch: noarch
241%endif
242Requires: git = %{version}-%{release}
243Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
244
245%description -n perl-Git-SVN
246Perl interface to Git.
247
248%if 0
249
250%package -n emacs-git
251Summary: Git version control system support for Emacs
252Group: Applications/Editors
253Requires: git = %{version}-%{release}
254%if %{noarch_sub}
255BuildArch: noarch
256Requires: emacs(bin) >= %{_emacs_version}
257%else
258Requires: emacs-common
259%endif
260
261%description -n emacs-git
262%{summary}.
263
264%package -n emacs-git-el
265Summary: Elisp source files for git version control system support for Emacs
266Group: Applications/Editors
267%if %{noarch_sub}
268BuildArch: noarch
269%endif
270Requires: emacs-git = %{version}-%{release}
271
272%description -n emacs-git-el
273%{summary}.
274
275%endif
276
277%debug_package
278
279%prep
280%scm_setup
281
282# Use these same options for every invocation of 'make'.
283# Otherwise it will rebuild in %%install due to flags changes.
284cat << \EOF > config.mak
285V = 1
286CFLAGS = %{optflags}
287#LDFLAGS = %{__global_ldflags}
288#BLK_SHA1 = 1
289#NEEDS_CRYPTO_WITH_SSL = 1
290#USE_LIBPCRE = 1
291ETC_GITCONFIG = %{_sysconfdir}/gitconfig
292DESTDIR = %{buildroot}
293INSTALL = %{_bindir}/install -p
294GITWEB_PROJECTROOT = %{_var}/lib/git
295GNU_ROFF = 1
296htmldir = %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
297prefix = %{_prefix}
298gitwebdir = %{_var}/www/git
299EOF
300
301%if "%{gitcoredir}" == "%{_bindir}"
302echo gitexecdir = %{_bindir} >> config.mak
303%endif
304
305%if %{docbook_suppress_sp}
306# This is needed for 1.69.1-1.71.0
307echo DOCBOOK_SUPPRESS_SP = 1 >> config.mak
308%endif
309
310# Filter bogus perl requires
311# packed-refs comes from a comment in contrib/hooks/update-paranoid
312%{?perl_default_filter}
313%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(packed-refs\\)
314%if ! %{defined perl_bootstrap}
315%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(Term::ReadKey\\)
316%endif
317
318%build
319make %{?_smp_mflags} all
320%if ! %{use_prebuilt_docs} && ! 0%{?_without_docs}
321make %{?_smp_mflags} doc
322%endif
323
324%if 0
325make -C contrib/emacs
326%endif
327
328make -C contrib/subtree/
329
330# Remove shebang from bash-completion script
331sed -i '/^#!bash/,+1 d' contrib/completion/git-completion.bash
332
333%install
334rm -rf %{buildroot}
335make %{?_smp_mflags} INSTALLDIRS=vendor install
336%if ! %{use_prebuilt_docs} && ! 0%{?_without_docs}
337make %{?_smp_mflags} INSTALLDIRS=vendor install-doc
338%else
339%if %{use_prebuilt_docs}
340cp -a prebuilt_docs/man/* %{buildroot}%{_mandir}
341cp -a prebuilt_docs/html/* Documentation/
342%endif
343%endif
344
345%if 0
346
347%global elispdir %{_emacs_sitelispdir}/git
348make -C contrib/emacs install \
349 emacsdir=%{buildroot}%{elispdir}
350for elc in %{buildroot}%{elispdir}/*.elc ; do
351 install -pm 644 contrib/emacs/$(basename $elc .elc).el \
352 %{buildroot}%{elispdir}
353done
354install -Dpm 644 %{SOURCE10} \
355 %{buildroot}%{_emacs_sitestartdir}/git-init.el
356
357%endif
358
359make -C contrib/subtree install
360%if ! %{use_prebuilt_docs} && ! 0%{?_without_docs}
361make -C contrib/subtree install-doc
362%endif
363# it's ugly hack, but this file don't need to be copied to this directory
364# it's already part of git-core-doc and it's alone here
365rm -f %{buildroot}%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}/git-subtree.html
366
367%if 0
368mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d
369install -pm 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/httpd/conf.d/git.conf
370sed "s|@PROJECTROOT@|%{_var}/lib/git|g" \
371 %{SOURCE14} > %{buildroot}%{_sysconfdir}/gitweb.conf
372%else
373rm -rf %{buildroot}%{_var}/www/git/
374%endif
375
376find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
377find %{buildroot} -type f -name '*.bs' -empty -exec rm -f {} ';'
378find %{buildroot} -type f -name perllocal.pod -exec rm -f {} ';'
379
380# git-archimport is not supported
381find %{buildroot} Documentation -type f -name 'git-archimport*' -exec rm -f {} ';'
382
383exclude_re="archimport|email|git-citool|git-cvs|git-daemon|git-gui|git-remote-bzr|git-remote-hg|gitk|p4|svn"
384(find %{buildroot}%{_bindir} %{buildroot}%{_libexecdir} -type f | grep -vE "$exclude_re" | sed -e s@^%{buildroot}@@) > bin-man-doc-files
385(find %{buildroot}%{_bindir} %{buildroot}%{_libexecdir} -mindepth 1 -type d | grep -vE "$exclude_re" | sed -e 's@^%{buildroot}@%dir @') >> bin-man-doc-files
386(find %{buildroot}%{perl_vendorlib} -type f | sed -e s@^%{buildroot}@@) > perl-git-files
387(find %{buildroot}%{perl_vendorlib} -mindepth 1 -type d | sed -e 's@^%{buildroot}@%dir @') >> perl-git-files
388# Split out Git::SVN files
389grep Git/SVN perl-git-files > perl-git-svn-files
390sed -i "/Git\/SVN/ d" perl-git-files
391%if %{!?_without_docs:1}0
392(find %{buildroot}%{_mandir} -type f | grep -vE "$exclude_re|Git" | sed -e s@^%{buildroot}@@ -e 's/$/*/' ) >> bin-man-doc-files
393%else
394rm -rf %{buildroot}%{_mandir}
395%endif
396
397mkdir -p %{buildroot}%{_var}/lib/git
398%if %{use_systemd}
399mkdir -p %{buildroot}%{_unitdir}
400cp -a %{SOURCE15} %{SOURCE16} %{buildroot}%{_unitdir}
401%else
402%if 0
403mkdir -p %{buildroot}%{_sysconfdir}/xinetd.d
404# On EL <= 5, xinetd does not enable IPv6 by default
405enable_ipv6=" # xinetd does not enable IPv6 by default
406 flags = IPv6"
407perl -p \
408 -e "s|\@GITCOREDIR\@|%{gitcoredir}|g;" \
409 -e "s|\@BASE_PATH\@|%{_var}/lib/git|g;" \
410%if %{enable_ipv6}
411 -e "s|^}|$enable_ipv6\n$&|;" \
412%endif
413 %{SOURCE11} > %{buildroot}%{_sysconfdir}/xinetd.d/git
414%endif
415%endif
416
417# Setup bash completion
418install -Dpm 644 contrib/completion/git-completion.bash %{buildroot}%{bashcompdir}/git
419ln -s git %{buildroot}%{bashcompdir}/gitk
420
421# Install tcsh completion
422mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion
423install -pm 644 contrib/completion/git-completion.tcsh \
424 %{buildroot}%{_datadir}/git-core/contrib/completion/
425
426# Move contrib/hooks out of %%docdir and make them executable
427mkdir -p %{buildroot}%{_datadir}/git-core/contrib
428mv contrib/hooks %{buildroot}%{_datadir}/git-core/contrib
429chmod +x %{buildroot}%{_datadir}/git-core/contrib/hooks/*
430ln -s %{buildroot}%{_datadir}/git-core/contrib/hooks contrib/
431
432# Install git-prompt.sh
433mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion
434install -pm 644 contrib/completion/git-prompt.sh \
435 %{buildroot}%{_datadir}/git-core/contrib/completion/
436
437%if 0
438# install git-gui .desktop file
439desktop-file-install \
440%if %{desktop_vendor_tag}
441 --vendor fedora \
442%endif
443 --dir=%{buildroot}%{_datadir}/applications %{SOURCE13}
444%endif
445
446# find translations
447%find_lang %{name} %{name}.lang
448cat %{name}.lang >> bin-man-doc-files
449
450# quiet some rpmlint complaints
451chmod -R g-w %{buildroot}
452find %{buildroot} -name git-mergetool--lib | xargs chmod a-x
453# rm -f {Documentation/technical,contrib/emacs,contrib/credential/gnome-keyring}/.gitignore
454# These files probably are not needed
455find . -name .gitignore -delete
456chmod a-x Documentation/technical/api-index.sh
457find contrib -type f | xargs chmod -x
458
459# Split core files
460not_core_re="git-(add--interactive|am|credential-netrc|difftool|instaweb|relink|request-pull|send-mail|submodule)|gitweb|prepare-commit-msg|pre-rebase"
461grep -vE "$not_core_re|\/man\/" bin-man-doc-files > bin-files-core
462%if %{use_prebuilt_docs} || ! 0%{?_without_docs}
463grep -vE "$not_core_re" bin-man-doc-files | grep "\/man\/" > man-doc-files-core
464%endif
465grep -E "$not_core_re" bin-man-doc-files > bin-man-doc-git-files
466
467
468%clean
469rm -rf %{buildroot}
470
471%if %{use_systemd}
472%post daemon
473%systemd_post git@.service
474
475%preun daemon
476%systemd_preun git@.service
477
478%postun daemon
479%systemd_postun_with_restart git@.service
480%endif
481
482%files -f bin-man-doc-git-files
483%defattr(-,root,root)
484%if 0
485%{elispdir}
486%{_emacs_sitestartdir}/git-init.el
487%endif
488%{_datadir}/git-core/contrib/hooks/update-paranoid
489%{_datadir}/git-core/contrib/hooks/setgitperms.perl
490#%{_datadir}/git-core/*
491#%doc Documentation/*.txt
492#%{!?_without_docs: %doc Documentation/*.html}
493#%{!?_without_docs: %doc Documentation/howto/* Documentation/technical/*}
494
495%files core -f bin-files-core
496%defattr(-,root,root)
497%{!?_licensedir:%global license %doc}
498%license COPYING
499# exlude is best way here because of troubels with symlinks inside git-core/
500%exclude %{_datadir}/git-core/contrib/hooks/update-paranoid
501%exclude %{_datadir}/git-core/contrib/hooks/setgitperms.perl
502%{bashcomproot}
503%{_datadir}/git-core/
504
505%if %{use_prebuilt_docs} || ! 0%{?_without_docs}
506%files core-doc -f man-doc-files-core
507%else
508%files core-doc
509%endif
510%defattr(-,root,root)
511%doc README.md Documentation/*.txt Documentation/RelNotes contrib/
512%{!?_without_docs: %doc Documentation/*.html Documentation/docbook-xsl.css}
513%{!?_without_docs: %doc Documentation/howto Documentation/technical}
514%if ! %{use_prebuilt_docs}
515%{!?_without_docs: %doc contrib/subtree/git-subtree.html}
516%endif
517
518%files p4
519%defattr(-,root,root)
520%{gitcoredir}/*p4*
521%{gitcoredir}/mergetools/p4merge
522%doc Documentation/*p4*.txt
523%{!?_without_docs: %{_mandir}/man1/*p4*.1*}
524%{!?_without_docs: %doc Documentation/*p4*.html }
525
526%files svn
527%defattr(-,root,root)
528%{gitcoredir}/*svn*
529%doc Documentation/*svn*.txt
530%{!?_without_docs: %{_mandir}/man1/*svn*.1*}
531%{!?_without_docs: %doc Documentation/*svn*.html }
532
533%files cvs
534%defattr(-,root,root)
535%doc Documentation/*git-cvs*.txt
536%if "%{gitcoredir}" != "%{_bindir}"
537%{_bindir}/git-cvsserver
538%endif
539%{gitcoredir}/*cvs*
540%{!?_without_docs: %{_mandir}/man1/*cvs*.1*}
541%{!?_without_docs: %doc Documentation/*git-cvs*.html }
542
543%files email
544%defattr(-,root,root)
545%doc Documentation/*email*.txt
546%{gitcoredir}/*email*
547%{!?_without_docs: %{_mandir}/man1/*email*.1*}
548%{!?_without_docs: %doc Documentation/*email*.html }
549
550%if 0
551
552%files gui
553%defattr(-,root,root)
554%{gitcoredir}/git-gui*
555%{gitcoredir}/git-citool
556%{_datadir}/applications/*git-gui.desktop
557%{_datadir}/git-gui/
558%{!?_without_docs: %{_mandir}/man1/git-gui.1*}
559%{!?_without_docs: %doc Documentation/git-gui.html}
560%{!?_without_docs: %{_mandir}/man1/git-citool.1*}
561%{!?_without_docs: %doc Documentation/git-citool.html}
562
563%files -n gitk
564%defattr(-,root,root)
565%doc Documentation/*gitk*.txt
566%{_bindir}/*gitk*
567%{_datadir}/gitk
568%{!?_without_docs: %{_mandir}/man1/*gitk*.1*}
569%{!?_without_docs: %doc Documentation/*gitk*.html }
570
571%endif
572
573%files -n perl-Git -f perl-git-files
574%defattr(-,root,root)
575%{!?_without_docs: %exclude %{_mandir}/man3/*Git*SVN*.3pm*}
576%{!?_without_docs: %{_mandir}/man3/*Git*.3pm*}
577
578%files -n perl-Git-SVN -f perl-git-svn-files
579%defattr(-,root,root)
580%{!?_without_docs: %{_mandir}/man3/*Git*SVN*.3pm*}
581
582%if 0
583
584%files -n emacs-git
585%defattr(-,root,root)
586%doc contrib/emacs/README
587%dir %{elispdir}
588%{elispdir}/*.elc
589%{_emacs_sitestartdir}/git-init.el
590
591%files -n emacs-git-el
592%defattr(-,root,root)
593%{elispdir}/*.el
594
595%endif
596
597%files daemon
598%defattr(-,root,root)
599%doc Documentation/*daemon*.txt
600%if %{use_systemd}
601%{_unitdir}/git.socket
602%{_unitdir}/git@.service
603%else
604%if 0
605%config(noreplace)%{_sysconfdir}/xinetd.d/git
606%endif
607%endif
608%{gitcoredir}/git-daemon*
609%{_var}/lib/git
610%{!?_without_docs: %{_mandir}/man1/*daemon*.1*}
611%{!?_without_docs: %doc Documentation/*daemon*.html}
612
613%if 0
614%files -n gitweb
615%defattr(-,root,root)
616%doc gitweb/INSTALL gitweb/README
617%config(noreplace)%{_sysconfdir}/gitweb.conf
618%config(noreplace)%{_sysconfdir}/httpd/conf.d/git.conf
619%{_var}/www/git/
620%endif
621
622%files all
623# No files for you!
624
625%changelog
626* Thu Apr 6 2017 Dmitriy Kuminov <coding@dmik.org> 2.11.0-2
627- Make git add --interactive output use CRLFs on DOS-like platforms.
628- Remove a lot of outdated OS/2-specific code.
629- Make the .git directory truly hidden on OS/2.
630- Enable mmap support on OS/2.
631- Change vendor to bww bitwise works GmbH.
632
633* Tue Dec 13 2016 Dmitriy Kuminov <coding@dmik.org> 2.11.0-1
634- Update git to version 2.11.0.
635- Increase stack size to 8 MB to fix crashes when cloning huge repos.
636- Link against LIBCx 0.4 (this brings EXCEPTQ TRP report generator).
637- Rebuild against LIBC 0.6.6 and GCC 4.9.2.
638- Enable %lang definitions.
639
640* Wed Sep 10 2014 yd
641- added debug package with symbolic info for exceptq.
642
643* Wed Sep 10 2014 Dmitriy Kuminov <coding@dmik.org> 2.0.0-1
644- Update git to version 2.0.0.
645- Fix cloning and pushing over HTTP(S).
646- Remove many old unneeded patches to have less OS/2-dependent code.
647
648* Sat Dec 17 2011 yd
649- rebuild due to gcc 4.4.6 bug.
650
651* Sun Nov 27 2011 yd
652- use /@unixroot/usr/bin shell.
653
654* Wed Sep 28 2011 yd
655- fixed build patches.
656- fixed expat support.
657
658* Sat Sep 24 2011 yd
659- symlink script files to exe, so execvp can find them.
660- ignore CR while reading CRLF terminated text files.
661
662* Tue Sep 20 2011 yd
663- disable broken_path_fix macro.
664
665* Mon Sep 19 2011 yd
666- use bigger stack for threads; use socketpair instead of pipes.
Note: See TracBrowser for help on using the repository browser.