Compare commits

..

8 commits

Author SHA1 Message Date
Denis Fateyev
d187631e7e ustl: 2.8 release 2019-01-02 01:33:41 +06:00
Denis Fateyev
53d4937501 ustl: 2.5 release 2017-01-08 01:44:05 +06:00
Denis Fateyev
d04f623322 ustl: 2.4 release 2016-05-22 02:53:24 +06:00
Denis Fateyev
e3adb4f9d6 ustl: epel7 full relro support 2016-02-29 23:45:01 +06:00
Denis Fateyev
13c8516b5d ustl: 2.3 epel release 2016-02-29 23:22:15 +06:00
Denis Fateyev
6484c5e119 ustl: 2.3 epel release 2016-02-29 23:03:52 +06:00
Christopher Meng
e6476df6bc Merge branch 'master' into f20
Conflicts:
	ustl.spec
2014-08-08 16:57:55 +08:00
Christopher Meng
c19880725d Revert back. 2014-08-05 16:33:41 +08:00
4 changed files with 145 additions and 2 deletions

5
.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
/ustl-2.1.tar.gz
/ustl-2.3.tar.gz
/ustl-2.4.tar.gz
/ustl-2.5.tar.gz
/ustl-2.8.tar.gz

View file

@ -1,2 +0,0 @@
The library "ustl" is obsolete, as announced by the author.
https://github.com/msharov/ustl

1
sources Normal file
View file

@ -0,0 +1 @@
SHA512 (ustl-2.8.tar.gz) = 323515163080d1888202d16c3bc34312c689ea212f6d33da6ee47664c6ea2e8fcb0e64bb52cbe5896875ecd68acc3575236301691e110ed226b57a5d601b6c25

139
ustl.spec Normal file
View file

@ -0,0 +1,139 @@
Name: ustl
Version: 2.8
Release: 1%{?dist}
Summary: A size-optimized STL implementation
License: MIT
URL: http://msharov.github.io/ustl/
Source0: https://github.com/msharov/ustl/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: coreutils
BuildRequires: gcc-c++
BuildRequires: libstdc++-static
BuildRequires: pkgconfig
BuildRequires: make
BuildRequires: sed
%description
The C++ standard template library (STL) is a collection of common containers
and algorithms in template form. Unfortunately its standard incarnation
shipped with gcc is implemented without much concern for code size. Not only
is the library itself large, the current version being over a megabyte in
size, but with all the code you instantiate by using a vector for each of
your containers, it is easy to become fearful and opt for using static
arrays instead or, worse yet, abandon C++ altogether for C. This is
especially painful to former DOS assembly programmers like myself, who fret
endlessly when the size of the executable crosses the magic 64k boundary,
forgetting that nobody cares about memory anymore.
Of course, these days everyone has gigabytes of RAM and has no compunction
about loading up OpenOffice, whose source tree is over a gigabyte in size.
Why then bother with saving a kilobyte of code here and there? I can't really
say. Maybe it's that warm fuzzy knowledge that you are making maximum possible
use of your computer's resources. Maybe it's that thrill you get after
expressing your program's functionality in the fewest possible instructions
and the minimum imaginable overhead. Or maybe it really is of no importance
and any code bloat will be easily overcome by faster processors in some near
future. I just know what I like, and it's the sight of clean, concise, and
fast code. Therefore this library.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
This package contains libraries and header files for
developing applications that use %{name}.
%prep
%setup -q
# No silent build.
sed -i -e 's|\t@|\t|g' Makefile
# Don't strip the symbols, substituted with correct ldflags.
sed -i -e 's|/usr/lib|%{_libdir}|g' \
-i -e 's|-s |-Wl,-z,relro |g' \
-e 's|CXXFLAGS :=|override CXXFLAGS +=|g' \
Config.mk.in
# Do not interfere with optflags, hardened build flags.
sed -i -e 's|-march=native||g' \
-i -e 's|-shared |-shared -Wl,-z,now |g' \
configure
# Fix pkgconfig file
sed -i '/^prefix=/d' ustl.pc.in
sed -i -e 's|${prefix}/lib|%{_libdir}|g' ustl.pc.in
sed -i -e 's|${prefix}/include|%{_includedir}|g' ustl.pc.in
%build
./configure \
--prefix=%{buildroot}%{_prefix} \
%ifarch %{ix86}
--without-mmx \
%endif
--with-libstdc++ --force-inline
%make_build CXXFLAGS+="%{optflags}"
%install
%make_install LIBDIR="%{buildroot}%{_libdir}" PKGCONFIGDIR="%{buildroot}%{_libdir}/pkgconfig"
chmod 755 -v %{buildroot}%{_libdir}/*
%check
make check
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license LICENSE
%doc README
%{_libdir}/libustl.so.*
%files devel
%doc docs/*
%{_includedir}/ustl.h
%{_includedir}/ustl/
%{_libdir}/libustl.so
%{_libdir}/pkgconfig/ustl.pc
%changelog
* Sun Dec 30 2018 Denis Fateyev <denis@fateyev.com> - 2.8-1
- Update to 2.8 version
- Dropping obsolete patches
* Fri Jan 06 2017 Denis Fateyev <denis@fateyev.com> - 2.5-1
- Update to 2.5 version
- Adding epel7 gcc compatibility patch
* Fri May 20 2016 Denis Fateyev <denis@fateyev.com> - 2.4-1
- Update to 2.4 version
- Dropping obsolete patches
* Mon Feb 29 2016 Denis Fateyev <denis@fateyev.com> - 2.3-2
- Fix epel7 full relro support
* Mon Feb 29 2016 Denis Fateyev <denis@fateyev.com> - 2.3-1
- Update to 2.3 version (including patches)
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Fri Aug 08 2014 Yaakov Selkowitz <yselkowi@redhat.com> - 2.1-3
- Remove -march=native
- Disable SSE on ix86 (not supported by default optflags)
* Tue Jul 29 2014 Christopher Meng <rpm@cicku.me> - 2.1-2
- Fix library location on lib64 system.
* Tue Jan 21 2014 Christopher Meng <rpm@cicku.me> - 2.1-1
- Initial Package.