From 6de9e785aa584b04818fcd60b5dc60b5ceb3cf42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ertu=C4=9Frul=20Erata?= Date: Sun, 17 May 2015 20:32:22 +0300 Subject: [PATCH] 3 --- circle_and_problems_in_core.txt | 59 ++++--- pisi-index.xml | 161 ++++++++++++++++++++ pisi-index.xml.sha1sum | 2 +- pisi-index.xml.xz | Bin 96340 -> 97072 bytes pisi-index.xml.xz.sha1sum | 2 +- system/devel/gc/actions.py | 32 ++++ system/devel/gc/files/noelision.patch | 127 +++++++++++++++ system/devel/gc/pspec.xml | 82 ++++++++++ system/devel/gc/translations.xml | 21 +++ system/devel/libatomic_ops/actions.py | 23 +++ system/devel/libatomic_ops/pspec.xml | 77 ++++++++++ system/devel/libatomic_ops/translations.xml | 13 ++ 12 files changed, 566 insertions(+), 33 deletions(-) create mode 100644 system/devel/gc/actions.py create mode 100644 system/devel/gc/files/noelision.patch create mode 100644 system/devel/gc/pspec.xml create mode 100644 system/devel/gc/translations.xml create mode 100644 system/devel/libatomic_ops/actions.py create mode 100644 system/devel/libatomic_ops/pspec.xml create mode 100644 system/devel/libatomic_ops/translations.xml diff --git a/circle_and_problems_in_core.txt b/circle_and_problems_in_core.txt index 33189867..56195213 100644 --- a/circle_and_problems_in_core.txt +++ b/circle_and_problems_in_core.txt @@ -1,34 +1,31 @@ - (0001/188) Calculating build dep of busybox (0002/188) Calculating build dep of libuser (0003/188) Calculating build dep of less (0004/188) Calculating build dep of libpipeline (0005/188) Calculating build dep of liblogging (0006/188) Calculating build dep of alternatives (0007/188) Calculating build dep of kbd (0008/188) Calculating build dep of spidermonkey ---> borks in 'check-devel' - (0009/188) Calculating build dep of sysvinit (0010/188) Calculating build dep of findutils (0011/188) Calculating build dep of rsyslog ---> borks in 'libX11-devel' - (0012/188) Calculating build dep of popt (0013/188) Calculating build dep of gdbm (0014/188) Calculating build dep of python-pyliblzma (0015/188) Calculating build dep of pisilinux-python (0016/188) Calculating build dep of mingetty (0017/188) Calculating build dep of scons (0018/188) Calculating build dep of grub2 (0019/188) Calculating build dep of snappy (0020/188) Calculating build dep of gnuconfig (0021/188) Calculating build dep of dejavu-fonts ---> borks in 'fontforge' - (0022/188) Calculating build dep of os-prober (0023/188) Calculating build dep of gmp ---> borks in 'gc-devel' - (0024/188) Calculating build dep of baselayout (0025/188) Calculating build dep of swig (0026/188) Calculating build dep of flex ---> borks in 'libX11-devel' - (0027/188) Calculating build dep of python-setuptools (0028/188) Calculating build dep of unzip (0029/188) Calculating build dep of libusb-compat (0030/188) Calculating build dep of python (0031/188) Calculating build dep of libidn (0032/188) Calculating build dep of db (0033/188) Calculating build dep of cpio (0034/188) Calculating build dep of ca-certificates (0035/188) Calculating build dep of lzo (0036/188) Calculating build dep of libseccomp (0037/188) Calculating build dep of shadow (0038/188) Calculating build dep of util-linux (0039/188) Calculating build dep of dhcpcd (0040/188) Calculating build dep of pycurl (0041/188) Calculating build dep of python-psutil (0042/188) Calculating build dep of nspr (0043/188) Calculating build dep of dbus ---> borks in 'libX11-devel' - (0044/188) Calculating build dep of numactl (0045/188) Calculating build dep of comar-api (0046/188) Calculating build dep of patch (0047/188) Calculating build dep of psmisc (0048/188) Calculating build dep of bison (0049/188) Calculating build dep of net-tools (0050/188) Calculating build dep of help2man (0051/188) Calculating build dep of man-pages (0052/188) Calculating build dep of mkinitramfs ---> borks in 'libX11-devel' - (0053/188) Calculating build dep of kernel ---> borks in 'colorgcc' - (0054/188) Calculating build dep of quilt ---> borks in 'libxslt' - (0055/188) Calculating build dep of json-c (0056/188) Calculating build dep of udev (0057/188) Calculating build dep of yacc (0058/188) Calculating build dep of util-macros (0059/188) Calculating build dep of sed (0060/188) Calculating build dep of intltool ---> borks in 'libX11-devel' - (0061/188) Calculating build dep of tcp-wrappers (0062/188) Calculating build dep of gperftools (0063/188) Calculating build dep of mdadm (0064/188) Calculating build dep of klibc (0065/188) Calculating build dep of mailcap (0066/188) Calculating build dep of kmod (0067/188) Calculating build dep of nss-mdns (0068/188) Calculating build dep of pisi (0069/188) Calculating build dep of libunistring (0070/188) Calculating build dep of glibc ---> borks in 'cython' - (0071/188) Calculating build dep of libestr (0072/188) Calculating build dep of piksemel ---> borks in 'libxslt' - (0073/188) Calculating build dep of automake (0074/188) Calculating build dep of miscfiles (0075/188) Calculating build dep of ccache ---> borks in 'libxslt' - (0076/188) Calculating build dep of linux-firmware (0077/188) Calculating build dep of run-parts (0078/188) Calculating build dep of libpng (0079/188) Calculating build dep of disktype ---> borks in 'colorgcc' - (0080/188) Calculating build dep of uClibc (0081/188) Calculating build dep of bc (0082/188) Calculating build dep of v86d (0083/188) Calculating build dep of gawk (0084/188) Calculating build dep of libgcrypt (0085/188) Calculating build dep of bash (0086/188) Calculating build dep of eudev (0087/188) Calculating build dep of docbook-xml (0088/188) Calculating build dep of pcmciautils (0089/188) Calculating build dep of openssl (0090/188) Calculating build dep of acl ---> borks in 'libX11-devel' - (0091/188) Calculating build dep of btyacc (0092/188) Calculating build dep of guile ---> borks in 'gc-devel' - (0093/188) Calculating build dep of glib2 (0094/188) Calculating build dep of binutils (0095/188) Calculating build dep of ppl ---> borks in 'libX11-devel' - (0096/188) Calculating build dep of cryptsetup (0097/188) Calculating build dep of sgml-common (0098/188) Calculating build dep of lvm2 (0099/188) Calculating build dep of perl-XML-Parser (0100/188) Calculating build dep of isl (0101/188) Calculating build dep of xz ---> borks in 'libX11-devel' - (0102/188) Calculating build dep of ntfs-3g (0103/188) Calculating build dep of unifdef (0104/188) Calculating build dep of biosdevname (0105/188) Calculating build dep of perl-Locale-gettext (0106/188) Calculating build dep of lsb-release (0107/188) Calculating build dep of mudur (0108/188) Calculating build dep of libssh2 (0109/188) Calculating build dep of zip (0110/188) Calculating build dep of pkgconfig (0111/188) Calculating build dep of perl ---> borks in 'libX11-devel' - (0112/188) Calculating build dep of m4 (0113/188) Calculating build dep of glpk (0114/188) Calculating build dep of dietlibc (0115/188) Calculating build dep of man-db ---> borks in 'libX11-devel' - (0116/188) Calculating build dep of libpcre (0117/188) Calculating build dep of groff (0118/188) Calculating build dep of xmlto ---> borks in 'libxslt' - (0119/188) Calculating build dep of libee (0120/188) Calculating build dep of cracklib (0121/188) Calculating build dep of autogen ---> borks in 'gc-devel' - (0122/188) Calculating build dep of libmpc (0123/188) Calculating build dep of ncurses (0124/188) Calculating build dep of yasm (0125/188) Calculating build dep of libunwind (0126/188) Calculating build dep of dbus-python ---> borks in 'python3' - (0127/188) Calculating build dep of sysfsutils (0128/188) Calculating build dep of pypolkit (0129/188) Calculating build dep of grep (0130/188) Calculating build dep of attr (0131/188) Calculating build dep of plyvel ---> borks in 'cython' - (0132/188) Calculating build dep of catbox ---> borks in 'libX11-devel' - (0133/188) Calculating build dep of zlib (0134/188) Calculating build dep of libgpg-error (0135/188) Calculating build dep of autoconf (0136/188) Calculating build dep of procps (0137/188) Calculating build dep of libsigsegv (0138/188) Calculating build dep of sqlite (0139/188) Calculating build dep of chrpath (0140/188) Calculating build dep of tar (0141/188) Calculating build dep of diffstat (0142/188) Calculating build dep of libxml2 (0143/188) Calculating build dep of expat (0144/188) Calculating build dep of freetype (0145/188) Calculating build dep of cloog (0146/188) Calculating build dep of file (0147/188) Calculating build dep of timezone (0148/188) Calculating build dep of curl (0149/188) Calculating build dep of libarchive (0150/188) Calculating build dep of texinfo (0151/188) Calculating build dep of dbus-glib (0152/188) Calculating build dep of bzip2 (0153/188) Calculating build dep of leveldb (0154/188) Calculating build dep of cmake ---> borks in 'libX11-devel' - (0155/188) Calculating build dep of make ---> borks in 'gc-devel' - (0156/188) Calculating build dep of gettext (0157/188) Calculating build dep of coreutils (0158/188) Calculating build dep of vixie-cron (0159/188) Calculating build dep of libcap-ng (0160/188) Calculating build dep of which (0161/188) Calculating build dep of docbook-xsl (0162/188) Calculating build dep of libcap (0163/188) Calculating build dep of pam (0164/188) Calculating build dep of wireless-tools ---> borks in 'libX11-devel' - (0165/188) Calculating build dep of xorg-util (0166/188) Calculating build dep of gperf (0167/188) Calculating build dep of time (0168/188) Calculating build dep of gcc (0169/188) Calculating build dep of polkit (0170/188) Calculating build dep of fuse ---> borks in 'libX11-devel' - (0171/188) Calculating build dep of libtool (0172/188) Calculating build dep of ncompress (0173/188) Calculating build dep of libffi (0174/188) Calculating build dep of readline (0175/188) Calculating build dep of slang (0176/188) Calculating build dep of comar (0177/188) Calculating build dep of nano ---> borks in 'libX11-devel' - (0178/188) Calculating build dep of diffutils (0179/188) Calculating build dep of urlgrabber (0180/188) Calculating build dep of usbutils (0181/188) Calculating build dep of e2fsprogs (0182/188) Calculating build dep of nettle (0183/188) Calculating build dep of libusb (0184/188) Calculating build dep of pciutils (0185/188) Calculating build dep of gzip (0186/188) Calculating build dep of nasm (0187/188) Calculating build dep of elfutils (0188/188) Calculating build dep of mpfr + (0001/190) Calculating build dep of busybox (0002/190) Calculating build dep of libuser (0003/190) Calculating build dep of less (0004/190) Calculating build dep of libpipeline (0005/190) Calculating build dep of liblogging (0006/190) Calculating build dep of alternatives (0007/190) Calculating build dep of kbd (0008/190) Calculating build dep of spidermonkey ---> borks in 'check-devel' + (0009/190) Calculating build dep of sysvinit (0010/190) Calculating build dep of gc (0011/190) Calculating build dep of findutils ---> borks in 'libX11-devel' + (0012/190) Calculating build dep of rsyslog (0013/190) Calculating build dep of popt (0014/190) Calculating build dep of gdbm (0015/190) Calculating build dep of python-pyliblzma (0016/190) Calculating build dep of pisilinux-python (0017/190) Calculating build dep of mingetty (0018/190) Calculating build dep of scons (0019/190) Calculating build dep of grub2 (0020/190) Calculating build dep of snappy (0021/190) Calculating build dep of gnuconfig (0022/190) Calculating build dep of dejavu-fonts ---> borks in 'fontforge' + (0023/190) Calculating build dep of os-prober (0024/190) Calculating build dep of gmp ---> borks in 'fontforge' + (0025/190) Calculating build dep of baselayout (0026/190) Calculating build dep of swig (0027/190) Calculating build dep of flex (0028/190) Calculating build dep of python-setuptools (0029/190) Calculating build dep of unzip (0030/190) Calculating build dep of libusb-compat ---> borks in 'libX11-devel' + (0031/190) Calculating build dep of python (0032/190) Calculating build dep of libidn (0033/190) Calculating build dep of db (0034/190) Calculating build dep of cpio (0035/190) Calculating build dep of ca-certificates (0036/190) Calculating build dep of lzo (0037/190) Calculating build dep of libseccomp (0038/190) Calculating build dep of shadow (0039/190) Calculating build dep of util-linux (0040/190) Calculating build dep of dhcpcd (0041/190) Calculating build dep of pycurl (0042/190) Calculating build dep of python-psutil (0043/190) Calculating build dep of nspr (0044/190) Calculating build dep of dbus ---> borks in 'libX11-devel' + (0045/190) Calculating build dep of numactl (0046/190) Calculating build dep of comar-api (0047/190) Calculating build dep of patch (0048/190) Calculating build dep of psmisc (0049/190) Calculating build dep of bison (0050/190) Calculating build dep of net-tools (0051/190) Calculating build dep of help2man (0052/190) Calculating build dep of man-pages ---> borks in 'libX11-devel' + (0053/190) Calculating build dep of mkinitramfs ---> borks in 'colorgcc' + (0054/190) Calculating build dep of kernel (0055/190) Calculating build dep of quilt ---> borks in 'libxslt' + (0056/190) Calculating build dep of json-c (0057/190) Calculating build dep of udev (0058/190) Calculating build dep of yacc (0059/190) Calculating build dep of util-macros (0060/190) Calculating build dep of sed (0061/190) Calculating build dep of intltool ---> borks in 'libX11-devel' + (0062/190) Calculating build dep of tcp-wrappers (0063/190) Calculating build dep of gperftools (0064/190) Calculating build dep of mdadm (0065/190) Calculating build dep of klibc (0066/190) Calculating build dep of mailcap (0067/190) Calculating build dep of kmod (0068/190) Calculating build dep of nss-mdns (0069/190) Calculating build dep of pisi (0070/190) Calculating build dep of libunistring (0071/190) Calculating build dep of glibc ---> borks in 'libxslt' + (0072/190) Calculating build dep of libestr (0073/190) Calculating build dep of piksemel ---> borks in 'cython' + (0074/190) Calculating build dep of automake (0075/190) Calculating build dep of miscfiles (0076/190) Calculating build dep of ccache (0077/190) Calculating build dep of linux-firmware (0078/190) Calculating build dep of run-parts (0079/190) Calculating build dep of libpng ---> borks in 'libxslt' + (0080/190) Calculating build dep of disktype ---> borks in 'colorgcc' + (0081/190) Calculating build dep of uClibc (0082/190) Calculating build dep of bc (0083/190) Calculating build dep of v86d (0084/190) Calculating build dep of gawk (0085/190) Calculating build dep of libgcrypt (0086/190) Calculating build dep of bash (0087/190) Calculating build dep of eudev (0088/190) Calculating build dep of docbook-xml (0089/190) Calculating build dep of pcmciautils (0090/190) Calculating build dep of openssl (0091/190) Calculating build dep of acl (0092/190) Calculating build dep of btyacc (0093/190) Calculating build dep of guile ---> borks in 'libX11-devel' + (0094/190) Calculating build dep of glib2 (0095/190) Calculating build dep of binutils (0096/190) Calculating build dep of ppl ---> borks in 'libX11-devel' + (0097/190) Calculating build dep of cryptsetup (0098/190) Calculating build dep of sgml-common (0099/190) Calculating build dep of lvm2 (0100/190) Calculating build dep of perl-XML-Parser (0101/190) Calculating build dep of libatomic_ops (0102/190) Calculating build dep of isl (0103/190) Calculating build dep of xz (0104/190) Calculating build dep of ntfs-3g ---> borks in 'libX11-devel' + (0105/190) Calculating build dep of unifdef (0106/190) Calculating build dep of biosdevname (0107/190) Calculating build dep of perl-Locale-gettext (0108/190) Calculating build dep of lsb-release (0109/190) Calculating build dep of mudur (0110/190) Calculating build dep of libssh2 (0111/190) Calculating build dep of zip (0112/190) Calculating build dep of pkgconfig ---> borks in 'libX11-devel' + (0113/190) Calculating build dep of perl (0114/190) Calculating build dep of m4 ---> borks in 'libX11-devel' + (0115/190) Calculating build dep of glpk (0116/190) Calculating build dep of dietlibc (0117/190) Calculating build dep of man-db (0118/190) Calculating build dep of libpcre (0119/190) Calculating build dep of groff (0120/190) Calculating build dep of xmlto (0121/190) Calculating build dep of libee ---> borks in 'libxslt' + (0122/190) Calculating build dep of cracklib (0123/190) Calculating build dep of autogen (0124/190) Calculating build dep of libmpc (0125/190) Calculating build dep of ncurses (0126/190) Calculating build dep of yasm (0127/190) Calculating build dep of libunwind (0128/190) Calculating build dep of dbus-python ---> borks in 'python3' + (0129/190) Calculating build dep of sysfsutils (0130/190) Calculating build dep of pypolkit (0131/190) Calculating build dep of grep (0132/190) Calculating build dep of attr (0133/190) Calculating build dep of plyvel ---> borks in 'cython' + (0134/190) Calculating build dep of catbox ---> borks in 'libX11-devel' + (0135/190) Calculating build dep of zlib (0136/190) Calculating build dep of libgpg-error (0137/190) Calculating build dep of autoconf (0138/190) Calculating build dep of procps (0139/190) Calculating build dep of libsigsegv (0140/190) Calculating build dep of sqlite (0141/190) Calculating build dep of chrpath (0142/190) Calculating build dep of tar (0143/190) Calculating build dep of diffstat (0144/190) Calculating build dep of libxml2 (0145/190) Calculating build dep of expat (0146/190) Calculating build dep of freetype (0147/190) Calculating build dep of cloog (0148/190) Calculating build dep of file (0149/190) Calculating build dep of timezone (0150/190) Calculating build dep of curl (0151/190) Calculating build dep of libarchive (0152/190) Calculating build dep of texinfo (0153/190) Calculating build dep of dbus-glib (0154/190) Calculating build dep of bzip2 (0155/190) Calculating build dep of leveldb (0156/190) Calculating build dep of cmake ---> borks in 'libX11-devel' + (0157/190) Calculating build dep of make (0158/190) Calculating build dep of gettext (0159/190) Calculating build dep of coreutils (0160/190) Calculating build dep of vixie-cron (0161/190) Calculating build dep of libcap-ng (0162/190) Calculating build dep of which (0163/190) Calculating build dep of docbook-xsl (0164/190) Calculating build dep of libcap (0165/190) Calculating build dep of pam (0166/190) Calculating build dep of wireless-tools (0167/190) Calculating build dep of xorg-util (0168/190) Calculating build dep of gperf ---> borks in 'libX11-devel' + (0169/190) Calculating build dep of time (0170/190) Calculating build dep of gcc (0171/190) Calculating build dep of polkit ---> borks in 'libX11-devel' + (0172/190) Calculating build dep of fuse (0173/190) Calculating build dep of libtool (0174/190) Calculating build dep of ncompress (0175/190) Calculating build dep of libffi (0176/190) Calculating build dep of readline (0177/190) Calculating build dep of slang (0178/190) Calculating build dep of comar (0179/190) Calculating build dep of nano (0180/190) Calculating build dep of diffutils ---> borks in 'libX11-devel' + (0181/190) Calculating build dep of urlgrabber (0182/190) Calculating build dep of usbutils (0183/190) Calculating build dep of e2fsprogs (0184/190) Calculating build dep of nettle (0185/190) Calculating build dep of libusb (0186/190) Calculating build dep of pciutils (0187/190) Calculating build dep of gzip (0188/190) Calculating build dep of nasm (0189/190) Calculating build dep of elfutils (0190/190) Calculating build dep of mpfr Encountered cycle ['kernel', 'diffutils', 'patch', 'attr', 'glibc'] Encountered cycle ['gcc', 'isl', 'gmp'] diff --git a/pisi-index.xml b/pisi-index.xml index 4af73b7e..a877a720 100644 --- a/pisi-index.xml +++ b/pisi-index.xml @@ -16772,6 +16772,82 @@ + + + libatomic_ops + https://github.com/ivmai/libatomic_ops/ + + Pisi Linux Admins + admins@pisilinux.org + + GPLv2 + MIT + library + system.devel + Atomic memory update operations library + Atomik bellek işlemleri kütüphanesi + libatomic_ops provides implementations for atomic memory update operations on a number of architectures. This allows direct use of these in reasonably portable code. + libatomic_ops, çeşitli mimarilerde atomik bellek işlemleri yapılmasını sağlayarak taşınabilir kod yazma olanağı veren bir kütüphanedir. + https://github.com/ivmai/libatomic_ops/archive/libatomic_ops-7_4_2.tar.gz + system/devel/libatomic_ops/pspec.xml + + + libatomic_ops + + /usr/lib + /usr/share/doc + + + + libatomic_ops-devel + libatomic_ops için geliştirme dosyaları + libatomic_ops için geliştirme dosyaları + + libatomic_ops + + + /usr/include + /usr/lib/pkgconfig + + + + + 2014-12-01 + 7.4.2 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-01-02 + 7.2d + Bump to usable version. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-01-01 + 1.2 + Rebuild for conflicting files. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-10-28 + 1.2 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2012-10-13 + 1.2 + First release + PisiLinux Community + admins@pisilinux.org + + + btyacc @@ -17729,6 +17805,91 @@ + + + gc + http://www.hpl.hp.com/personal/Hans_Boehm/gc + + PisiLinux Community + admins@pisilinux.org + + BSD + GPLv2 + library + system.devel + A garbage collector for C and C++ + C ve C++ için bir çöp toplama kitaplığı + Ostrożny odśmiecacz dla C i C++ + The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new. + gc, C malloc veya C++ new yerine kullanılabilecek, Boehm-Demers-Weiser çöp toplayıcısı kitaplığıdır. + Boehm's GC jest odśmiecającym alokatorem pamięci, który został zaprojektowany z zamiarem używania jako zastępcza wtyczka dla funkcji C malloc. + http://www.hboehm.info/gc/gc_source/gc-7.4.2.tar.gz + + libatomic_ops-devel + + + noelision.patch + + system/devel/gc/pspec.xml + + + gc + + /usr/lib + /usr/share/doc + + + + gc-devel + Development files for gc + gc için geliştirme dosyaları + Pliki nagłówkowe gc + + gc + + + /usr/include/ + /usr/lib/pkgconfig + + + + + 2014-12-01 + 7.4.2 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-05-24 + 7.2d + Rebuild for gcc. + PisiLinux Community + admins@pisilinux.org + + + 2014-01-02 + 7.2d + Remove libatomic_ops-devel package, we have standalone one. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-08-27 + 7.2d + Clean gc. + Serdar Soytetir + kaptan@pisilinux.org + + + 2012-11-02 + 7.2d + First release + Marcin Bojara + marcin@pisilinux.org + + + chrpath diff --git a/pisi-index.xml.sha1sum b/pisi-index.xml.sha1sum index a4c479bf..d3bff5f5 100644 --- a/pisi-index.xml.sha1sum +++ b/pisi-index.xml.sha1sum @@ -1 +1 @@ -0ca4cdfea36b833daddaf6a74b9135fd328e375e \ No newline at end of file +105044ac56664b653d160aff349df8f570ffd888 \ No newline at end of file diff --git a/pisi-index.xml.xz b/pisi-index.xml.xz index 0c09504161a70f25eae7a4a83feebc2832f770af..e64aed44497eeccbf4b94e739bda1799481955bb 100644 GIT binary patch delta 20867 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 delta 20130 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 VL7s39KCC`44T}N*00001Sz0NRBjNx6 diff --git a/pisi-index.xml.xz.sha1sum b/pisi-index.xml.xz.sha1sum index 53f9b18f..0df8f441 100644 --- a/pisi-index.xml.xz.sha1sum +++ b/pisi-index.xml.xz.sha1sum @@ -1 +1 @@ -d28c2f9f323d2b5367fc765dde97642215a3384f \ No newline at end of file +721ba29f63b8b92536452b91b72c75324de5f6b6 \ No newline at end of file diff --git a/system/devel/gc/actions.py b/system/devel/gc/actions.py new file mode 100644 index 00000000..717ddcae --- /dev/null +++ b/system/devel/gc/actions.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def setup(): + pisitools.flags.add("-DUSE_GET_STACKBASE_FOR_MAIN") + shelltools.system ("rm -rf libtool libtool.m4") + autotools.autoreconf("-fi") + autotools.configure("--disable-static \ + --enable-cplusplus \ + --enable-large-config \ + --enable-threads=posix") + +def build(): + autotools.make() + +def check(): + autotools.make("check") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("ChangeLog", "doc/README.linux", "doc/*.html") + + pisitools.removeDir("/usr/share/gc") \ No newline at end of file diff --git a/system/devel/gc/files/noelision.patch b/system/devel/gc/files/noelision.patch new file mode 100644 index 00000000..0e1515ea --- /dev/null +++ b/system/devel/gc/files/noelision.patch @@ -0,0 +1,127 @@ +diff --git c/include/private/gc_priv.h w/include/private/gc_priv.h +index 0ad92fc..b877fac 100644 +--- c/include/private/gc_priv.h ++++ w/include/private/gc_priv.h +@@ -2368,6 +2368,7 @@ GC_INNER ptr_t GC_store_debug_info(ptr_t p, word sz, const char *str, + /* GC_notify_all_builder() is called when GC_fl_builder_count */ + /* reaches 0. */ + ++ GC_INNER void GC_setup_mark_lock(void); + GC_INNER void GC_acquire_mark_lock(void); + GC_INNER void GC_release_mark_lock(void); + GC_INNER void GC_notify_all_builder(void); +diff --git c/include/private/gcconfig.h w/include/private/gcconfig.h +index c753cc2..b5ed075 100644 +--- c/include/private/gcconfig.h ++++ w/include/private/gcconfig.h +@@ -1357,6 +1357,11 @@ + # define PREFETCH_FOR_WRITE(x) \ + __asm__ __volatile__ ("prefetchw %0" : : "m"(*(char *)(x))) + # endif ++# if defined(__GLIBC__) ++ /* Workaround lock elision implementation for some glibc. */ ++# define GLIBC_2_19_TSX_BUG ++# include /* for gnu_get_libc_version() */ ++# endif + # endif + # ifdef CYGWIN32 + # define OS_TYPE "CYGWIN32" +@@ -2257,6 +2262,11 @@ + /* FIXME: This seems to be fixed in GLibc v2.14. */ + # define GETCONTEXT_FPU_EXCMASK_BUG + # endif ++# if defined(__GLIBC__) ++ /* Workaround lock elision implementation for some glibc. */ ++# define GLIBC_2_19_TSX_BUG ++# include /* for gnu_get_libc_version() */ ++# endif + # endif + # ifdef DARWIN + # define OS_TYPE "DARWIN" +diff --git c/include/private/pthread_support.h w/include/private/pthread_support.h +index 525a9aa..017f194 100644 +--- c/include/private/pthread_support.h ++++ w/include/private/pthread_support.h +@@ -148,6 +148,8 @@ GC_INNER_PTHRSTART GC_thread GC_start_rtn_prepare_thread( + struct GC_stack_base *sb, void *arg); + GC_INNER_PTHRSTART void GC_thread_exit_proc(void *); + ++GC_INNER void GC_setup_mark_lock(void); ++ + #endif /* GC_PTHREADS && !GC_WIN32_THREADS */ + + #endif /* GC_PTHREAD_SUPPORT_H */ +diff --git c/misc.c w/misc.c +index df434a1..3aca41d 100644 +--- c/misc.c ++++ w/misc.c +@@ -875,6 +875,9 @@ GC_API void GC_CALL GC_init(void) + /* else */ InitializeCriticalSection (&GC_allocate_ml); + } + # endif /* GC_WIN32_THREADS */ ++# if defined(GC_PTHREADS) && !defined(GC_WIN32_THREADS) ++ GC_setup_mark_lock(); ++# endif /* GC_PTHREADS */ + # if (defined(MSWIN32) || defined(MSWINCE)) && defined(THREADS) + InitializeCriticalSection(&GC_write_cs); + # endif +diff --git c/pthread_support.c w/pthread_support.c +index c00b93d..8a7c50b 100644 +--- c/pthread_support.c ++++ w/pthread_support.c +@@ -1979,6 +1979,55 @@ GC_INNER void GC_lock(void) + + static pthread_cond_t builder_cv = PTHREAD_COND_INITIALIZER; + ++#ifdef GLIBC_2_19_TSX_BUG ++ /* Parse string like [.[]] and return major value. */ ++ static int parse_version(int *pminor, const char *pverstr) { ++ char *endp; ++ unsigned long value = strtoul(pverstr, &endp, 10); ++ int major = (int)value; ++ ++ if (major < 0 || (char *)pverstr == endp || (unsigned)major != value) { ++ /* Parse error */ ++ return -1; ++ } ++ if (*endp != '.') { ++ /* No minor part. */ ++ *pminor = -1; ++ } else { ++ value = strtoul(endp + 1, &endp, 10); ++ *pminor = (int)value; ++ if (*pminor < 0 || (unsigned)(*pminor) != value) { ++ return -1; ++ } ++ } ++ return major; ++ } ++#endif /* GLIBC_2_19_TSX_BUG */ ++ ++GC_INNER void GC_setup_mark_lock(void) ++{ ++# ifdef GLIBC_2_19_TSX_BUG ++ pthread_mutexattr_t mattr; ++ int glibc_minor = -1; ++ int glibc_major = parse_version(&glibc_minor, gnu_get_libc_version()); ++ ++ if (glibc_major > 2 || (glibc_major == 2 && glibc_minor >= 19)) { ++ /* TODO: disable this workaround for glibc with fixed TSX */ ++ /* This disables lock elision to workaround a bug in glibc 2.19+ */ ++ if (0 != pthread_mutexattr_init(&mattr)) { ++ ABORT("pthread_mutexattr_init failed"); ++ } ++ if (0 != pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_NORMAL)) { ++ ABORT("pthread_mutexattr_settype failed"); ++ } ++ if (0 != pthread_mutex_init(&mark_mutex, &mattr)) { ++ ABORT("pthread_mutex_init failed"); ++ } ++ pthread_mutexattr_destroy(&mattr); ++ } ++# endif ++} ++ + GC_INNER void GC_acquire_mark_lock(void) + { + GC_ASSERT(GC_mark_lock_holder != NUMERIC_THREAD_ID(pthread_self())); diff --git a/system/devel/gc/pspec.xml b/system/devel/gc/pspec.xml new file mode 100644 index 00000000..4e58ffe4 --- /dev/null +++ b/system/devel/gc/pspec.xml @@ -0,0 +1,82 @@ + + + + + gc + http://www.hpl.hp.com/personal/Hans_Boehm/gc + + PisiLinux Community + admins@pisilinux.org + + BSD + GPLv2 + library + A garbage collector for C and C++ + The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new. + http://www.hboehm.info/gc/gc_source/gc-7.4.2.tar.gz + + libatomic_ops-devel + + + noelision.patch + + + + + gc + + /usr/lib + /usr/share/doc + + + + + gc-devel + Development files for gc + + gc + + + /usr/include/ + /usr/lib/pkgconfig + + + + + + 2014-12-01 + 7.4.2 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-05-24 + 7.2d + Rebuild for gcc. + PisiLinux Community + admins@pisilinux.org + + + 2014-01-02 + 7.2d + Remove libatomic_ops-devel package, we have standalone one. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-08-27 + 7.2d + Clean gc. + Serdar Soytetir + kaptan@pisilinux.org + + + 2012-11-02 + 7.2d + First release + Marcin Bojara + marcin@pisilinux.org + + + diff --git a/system/devel/gc/translations.xml b/system/devel/gc/translations.xml new file mode 100644 index 00000000..bd40612b --- /dev/null +++ b/system/devel/gc/translations.xml @@ -0,0 +1,21 @@ + + + + gc + C ve C++ için bir çöp toplama kitaplığı + Ostrożny odśmiecacz dla C i C++ + gc, C malloc veya C++ new yerine kullanılabilecek, Boehm-Demers-Weiser çöp toplayıcısı kitaplığıdır. + Boehm's GC jest odśmiecającym alokatorem pamięci, który został zaprojektowany z zamiarem używania jako zastępcza wtyczka dla funkcji C malloc. + + + + gc-devel + gc için geliştirme dosyaları + Pliki nagłówkowe gc + + + + libatomic_ops-devel + Atomik bellek güncelleme işlemleri kitaplığı + + diff --git a/system/devel/libatomic_ops/actions.py b/system/devel/libatomic_ops/actions.py new file mode 100644 index 00000000..8e095785 --- /dev/null +++ b/system/devel/libatomic_ops/actions.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt. + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def setup(): + shelltools.system("./autogen.sh") + autotools.configure("--prefix=/usr") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + # move docs into proper place + pisitools.domove("/usr/share/libatomic_ops/", "/usr/share/doc/%s" % get.srcNAME()) diff --git a/system/devel/libatomic_ops/pspec.xml b/system/devel/libatomic_ops/pspec.xml new file mode 100644 index 00000000..251f3089 --- /dev/null +++ b/system/devel/libatomic_ops/pspec.xml @@ -0,0 +1,77 @@ + + + + + libatomic_ops + https://github.com/ivmai/libatomic_ops/ + + Pisi Linux Admins + admins@pisilinux.org + + GPLv2 + MIT + library + Atomic memory update operations library + libatomic_ops provides implementations for atomic memory update operations on a number of architectures. This allows direct use of these in reasonably portable code. + https://github.com/ivmai/libatomic_ops/archive/libatomic_ops-7_4_2.tar.gz + + + + + libatomic_ops + + /usr/lib + /usr/share/doc + + + + + libatomic_ops-devel + libatomic_ops için geliştirme dosyaları + + libatomic_ops + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-12-01 + 7.4.2 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-01-02 + 7.2d + Bump to usable version. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-01-01 + 1.2 + Rebuild for conflicting files. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-10-28 + 1.2 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2012-10-13 + 1.2 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/system/devel/libatomic_ops/translations.xml b/system/devel/libatomic_ops/translations.xml new file mode 100644 index 00000000..bc8396cb --- /dev/null +++ b/system/devel/libatomic_ops/translations.xml @@ -0,0 +1,13 @@ + + + + libatomic_ops + Atomik bellek işlemleri kütüphanesi + libatomic_ops, çeşitli mimarilerde atomik bellek işlemleri yapılmasını sağlayarak taşınabilir kod yazma olanağı veren bir kütüphanedir. + + + + libatomic_ops-devel + libatomic_ops için geliştirme dosyaları + +