From cc759ccb3704f4d2307c61f72ccb4a78a50bf9706b4a6f649e98d816eb6078bd Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 15 Jan 2007 23:15:52 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gsl?expand=0&rev=1 --- .gitattributes | 23 ++++ .gitignore | 1 + gsl-1.6-deps.dif | 18 +++ gsl-1.6-initvars.diff | 15 +++ gsl-1.8.tar.bz2 | 3 + gsl-check-prec.diff | 15 +++ gsl.changes | 144 ++++++++++++++++++++++++ gsl.spec | 241 ++++++++++++++++++++++++++++++++++++++++ ieee-div-by-zero | 29 +++++ log1p-no-fast-math.diff | 29 +++++ ready | 0 11 files changed, 518 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 gsl-1.6-deps.dif create mode 100644 gsl-1.6-initvars.diff create mode 100644 gsl-1.8.tar.bz2 create mode 100644 gsl-check-prec.diff create mode 100644 gsl.changes create mode 100644 gsl.spec create mode 100644 ieee-div-by-zero create mode 100644 log1p-no-fast-math.diff create mode 100644 ready diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/gsl-1.6-deps.dif b/gsl-1.6-deps.dif new file mode 100644 index 0000000..01bfbbe --- /dev/null +++ b/gsl-1.6-deps.dif @@ -0,0 +1,18 @@ +Index: Makefile.am +=================================================================== +--- Makefile.am.orig ++++ Makefile.am +@@ -16,10 +16,10 @@ pkgconfig_DATA= gsl.pc + EXTRA_DIST = autogen.sh gsl-config.in gsl.pc.in configure.ac THANKS BUGS SUPPORT gsl.spec.in gsl.m4 test_gsl_histogram.sh + + lib_LTLIBRARIES = libgsl.la + libgsl_la_SOURCES = version.c +-libgsl_la_LIBADD = $(SUBLIBS) +-libgsl_la_LDFLAGS = -version-info $(GSL_LT_VERSION) ++libgsl_la_LIBADD = $(SUBLIBS) cblas/libgslcblas.la ++libgsl_la_LDFLAGS = -no-undefined -version-info $(GSL_LT_VERSION) + noinst_HEADERS = templates_on.h templates_off.h + + m4datadir = $(datadir)/aclocal + m4data_DATA = gsl.m4 + diff --git a/gsl-1.6-initvars.diff b/gsl-1.6-initvars.diff new file mode 100644 index 0000000..b50b14c --- /dev/null +++ b/gsl-1.6-initvars.diff @@ -0,0 +1,15 @@ +Index: gsl-1.8/specfunc/coulomb.c +=================================================================== +--- gsl-1.8.orig/specfunc/coulomb.c ++++ gsl-1.8/specfunc/coulomb.c +@@ -941,9 +941,9 @@ gsl_sf_coulomb_wave_FG_e(const double et + const int N = (int)(lam_F + 0.5); + const int span = GSL_MAX(k_lam_G, N); + const double lam_min = lam_F - N; /* -1/2 <= lam_min < 1/2 */ + double F_lam_F, Fp_lam_F; +- double G_lam_G, Gp_lam_G; ++ double G_lam_G = 0.0, Gp_lam_G = 0.0; + double F_lam_F_err, Fp_lam_F_err; + double Fp_over_F_lam_F; + double F_sign_lam_F; + double F_lam_min_unnorm, Fp_lam_min_unnorm; diff --git a/gsl-1.8.tar.bz2 b/gsl-1.8.tar.bz2 new file mode 100644 index 0000000..9961764 --- /dev/null +++ b/gsl-1.8.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:961569011f404f2d7e9fac920333917c8a0d5e33c297f8def13648898c4862f0 +size 1870063 diff --git a/gsl-check-prec.diff b/gsl-check-prec.diff new file mode 100644 index 0000000..92136df --- /dev/null +++ b/gsl-check-prec.diff @@ -0,0 +1,15 @@ +Index: eigen/test.c +=================================================================== +--- eigen/test.c.orig ++++ eigen/test.c +@@ -144,9 +144,9 @@ test_eigenvalues (size_t N, const gsl_ve + for (i = 0; i < N; i++) + { + double ei = gsl_vector_get (eval, i); + double e2i = gsl_vector_get (eval2, i); +- gsl_test_rel(ei, e2i, 10*GSL_DBL_EPSILON, ++ gsl_test_rel(ei, e2i, 20*GSL_DBL_EPSILON, + "%s, direct eigenvalue(%d), %s", + desc, i, desc2); + } + } diff --git a/gsl.changes b/gsl.changes new file mode 100644 index 0000000..0ba4e81 --- /dev/null +++ b/gsl.changes @@ -0,0 +1,144 @@ +------------------------------------------------------------------- +Fri Nov 24 00:39:14 CET 2006 - garloff@suse.de + +- -momit-leaf-frame-pointer was only enabled on x86_64 and i386; + however, it should have been enabled on all ix86. Fixed. + +------------------------------------------------------------------- +Mon Oct 16 14:57:00 CEST 2006 - garloff@suse.de + +- Don't use -ffast-math any more (-ffast-math was enabled on x86, + x86-64) as otherwise we get inexact (8e-8) results with latest + compiler for log1p(1e-10), div by zero, SVD. + +------------------------------------------------------------------- +Fri Aug 25 09:22:13 CEST 2006 - garloff@suse.de + +- Update to gsl-1.8. +- Enable make check in build process. + +------------------------------------------------------------------- +Mon Feb 20 12:35:06 CET 2006 - stbinner@suse.de + +- make gsl-devel depend on gsl + +------------------------------------------------------------------- +Wed Jan 25 21:36:21 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Mon Dec 19 17:37:38 CET 2005 - garloff@suse.de + +- Split package into gsl and gsl-devel. +- Update to gsl-1.7: + * Various speedups, accuracy improvements and fixes. + +------------------------------------------------------------------- +Mon Apr 25 15:23:01 CEST 2005 - coolo@suse.de + +- fix library dependencies - at least needed for prelink + +------------------------------------------------------------------- +Mon Jan 31 15:32:11 CET 2005 - ro@suse.de + +- adapted to texi2html changes + +------------------------------------------------------------------- +Thu Jan 20 17:51:06 CET 2005 - garloff@suse.de + +- Remove -momit-frame-pointer from most archs, the compiler does + not support it there. + +------------------------------------------------------------------- +Wed Jan 19 16:20:37 CET 2005 - garloff@suse.de + +- Avoid uninitialized variables, and fix a size_t vs. unsigned + int issue. +- Update to gsl-1.6: + * Wavelet functions + * LQ decomposition + * Various bugfixes and minor improvements (SYRK, HERK, + swap_vectors, cheb_eval_n_err, sf_gamma_inc, cspline, + akima, ode-initval, sf_psi_1, sf_expint_Ei_e, cdf_beta_X, + eigen_jacobi, error stream flushes prior to abort). + +------------------------------------------------------------------- +Sat Aug 21 00:35:29 CEST 2004 - garloff@suse.de + +- Fix build on non-x86/x86-64 (no -monit-leaf-frame-pointer). +- Allow parallel build. + +------------------------------------------------------------------- +Sun Aug 15 01:10:10 CEST 2004 - garloff@suse.de + +- Update to version 1.5. +- More aggressive compiler optimization flags. + +------------------------------------------------------------------- +Tue May 18 02:18:06 CEST 2004 - ro@suse.de + +- use -fno-strict-aliasing + +------------------------------------------------------------------- +Wed Feb 25 15:17:21 CET 2004 - stepan@suse.de + +- update to version 1.4 + +------------------------------------------------------------------- +Sat Jan 10 11:11:14 CET 2004 - adrian@suse.de + +- add %defattr + +------------------------------------------------------------------- +Tue May 27 14:30:02 CEST 2003 - ro@suse.de + +- add pkgconfig file to filelist + +------------------------------------------------------------------- +Wed Jan 15 23:16:40 CET 2003 - garloff@suse.de + +- bzip2 sources + +------------------------------------------------------------------- +Wed Jan 15 22:36:27 CET 2003 - garloff@suse.de + +- Update to gsl-1.3: + * Fixed gsl_sf_coupling + * exponential integral exp(-x)*Ei(x) + * many bugfixes +- Update to gsl-1.2: + * new functions for combining permutations etc. + * multiroot functions + * dflt error handler outputs message before aborting + * gsl_linalg_SV_decomp handles exact zeros now + * unsymmetric tridiagonal solvers added + * bugfixes +- Update to gsl-1.1.1: + * bugfixes +- Update to gsl-1.1: + * permutation copy function + * gsl_sf_gamma_inc improved + * IEEE handling of FP numbers tested in configure + * gsl_histogram_sum + * More physical constants (r_B, eps_0) + * Knuth's random number generators + * bugfixes + +------------------------------------------------------------------- +Fri Jul 5 10:25:04 CEST 2002 - kukuk@suse.de + +- Use %ix86 macro + +------------------------------------------------------------------- +Wed May 8 15:51:29 MEST 2002 - garloff@suse.de + +- Fix %lib64 issues +- Remove -freduce-all-givs from compiler flags. + +------------------------------------------------------------------- +Mon Dec 10 02:53:25 MET 2001 - garloff@suse.de + +- Creation of gsl-1.0 +- Produce and install HTML docu + diff --git a/gsl.spec b/gsl.spec new file mode 100644 index 0000000..2413888 --- /dev/null +++ b/gsl.spec @@ -0,0 +1,241 @@ +# +# spec file for package gsl (Version 1.8) +# +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: gsl +BuildRequires: blas +Version: 1.8 +Release: 21 +License: GNU General Public License (GPL), Other License(s), see package +Group: Development/Libraries/C and C++ +#Provides: +Autoreqprov: on +Summary: GNU Scientific Library +Source: ftp://ftp.gnu.org/pub/gnu/gsl/gsl-%{version}.tar.bz2 +Patch: gsl-1.6-initvars.diff +Patch3: gsl-1.6-deps.dif +Patch4: gsl-check-prec.diff +Patch5: log1p-no-fast-math.diff +Patch6: ieee-div-by-zero +URL: http://sources.redhat.com/gsl/ +Prefix: /usr +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +The GNU Scientific Library (GSL) is a collection of routines for +numerical computing. The routines are written from scratch by the GSL +team in ANSI C and present a modern Applications Programming Interface +(API) for C programmers, while allowing wrappers to be written for very +high level languages. + +The library covers the following areas: + +Complex Numbers Roots of Polynomials Special Functions +Vectors and Matrices Permutations Sorting BLAS Support + Linear Algebra Eigensystems Fast Fourier Transforms + Quadrature Random Numbers Quasi-Random Sequences Random +Distributions Statistics Histograms N-Tuples + Monte Carlo Integration Simulated Annealing Differential +Equations Interpolation Numerical Differentiation Chebyshev + Series Acceleration Approximation Discrete Hankel +Root-Finding Minimization Transforms Least-Squares Fitting + Physical Constants IEEE Floating-Point + + + +Authors: +-------- + Mark Galassi + Jim Davies + James Theiler + Brian Gough + Reid Priedhorsky + Gerard Jungman + Michael Booth + Fabrice Rossi + +%package devel +Summary: GNU Scientific Library - development files +Group: Development/Libraries/C and C++ +Requires: gsl + +%description devel +This package contains the headers, static libraries and some +documentation for GSL. + +The GNU Scientific Library (GSL) is a collection of routines for +numerical computing. The routines are written from scratch by the GSL +team in ANSI C, and present a modern Applications Programming Interface +(API) for C programmers, while allowing wrappers to be written for very +high level languages. + +The library covers the following areas, + +Complex Numbers Roots of Polynomials Special Functions +Vectors and Matrices Permutations Sorting BLAS Support + Linear Algebra Eigensystems Fast Fourier Transforms + Quadrature Random Numbers Quasi-Random Sequences Random +Distributions Statistics Histograms N-Tuples + Monte Carlo Integration Simulated Annealing Differential +Equations Interpolation Numerical Differentiation Chebyshev + Series Acceleration Approximation Discrete Hankel +Root-Finding Minimization Transforms Least-Squares Fitting + Physical Constants IEEE Floating-Point + + + +Authors: +-------- + Mark Galassi + Jim Davies + James Theiler + Brian Gough + Reid Priedhorsky + Gerard Jungman + Michael Booth + Fabrice Rossi + +%prep +%setup +%patch -p1 +%patch3 -p0 +%patch4 -p0 +#%patch5 -p1 +#%patch6 -p1 + +%build +%ifarch %ix86 x86_64 +# We could add -msse2 -mpfmath=sse here ... +CFLAGS="$RPM_OPT_FLAGS -O3 -finline-limit=720 --param max-inline-insns-auto=160 -funroll-loops -fno-strict-aliasing -funit-at-a-time -ftree-vectorize -momit-leaf-frame-pointer" \ + ./configure --enable-shared --with-gnu-ld \ + --prefix=/usr --mandir=%{_mandir} --infodir=%{_infodir} --libdir=%{_libdir} +%else +CFLAGS="$RPM_OPT_FLAGS -O3 -finline-limit=720 --param max-inline-insns-auto=160 -funroll-loops -fno-strict-aliasing -funit-at-a-time -ftree-vectorize" \ + ./configure --enable-shared --with-gnu-ld \ + --prefix=/usr --mandir=%{_mandir} --infodir=%{_infodir} --libdir=%{_libdir} +%endif +make %{?jobs:-j%jobs} +make check +cd doc +texi2html -menu -split_chapter -glossary gsl-ref.texi + +%install +make install DESTDIR=$RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +%{_libdir}/libgsl*.so.* +/usr/bin/gsl-histogram +/usr/bin/gsl-randist +%doc %{_mandir}/man1/gsl-histogram.1.gz +%doc %{_mandir}/man1/gsl-randist.1.gz +%doc AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README THANKS TODO + +%files devel +%defattr(-,root,root) +/usr/include/gsl +%{_libdir}/libgsl*.la +%{_libdir}/libgsl*.so +%{_libdir}/libgsl*.a +%{_libdir}/pkgconfig/gsl.pc +/usr/bin/gsl-config +%doc doc/gsl-ref/gsl-ref*.html +/usr/share/aclocal/gsl.m4 +%doc %{_infodir}/gsl-ref* +%doc %{_mandir}/man1/gsl-config.1.gz +%doc %{_mandir}/man3/gsl.3.gz + +%clean +rm -rf $RPM_BUILD_ROOT +rm -rf $RPM_BUILD_DIR/gsl-%{version} + +%changelog -n gsl +* Fri Nov 24 2006 - garloff@suse.de +- -momit-leaf-frame-pointer was only enabled on x86_64 and i386; + however, it should have been enabled on all ix86. Fixed. +* Mon Oct 16 2006 - garloff@suse.de +- Don't use -ffast-math any more (-ffast-math was enabled on x86, + x86-64) as otherwise we get inexact (8e-8) results with latest + compiler for log1p(1e-10), div by zero, SVD. +* Fri Aug 25 2006 - garloff@suse.de +- Update to gsl-1.8. +- Enable make check in build process. +* Mon Feb 20 2006 - stbinner@suse.de +- make gsl-devel depend on gsl +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Mon Dec 19 2005 - garloff@suse.de +- Split package into gsl and gsl-devel. +- Update to gsl-1.7: + * Various speedups, accuracy improvements and fixes. +* Mon Apr 25 2005 - coolo@suse.de +- fix library dependencies - at least needed for prelink +* Mon Jan 31 2005 - ro@suse.de +- adapted to texi2html changes +* Thu Jan 20 2005 - garloff@suse.de +- Remove -momit-frame-pointer from most archs, the compiler does + not support it there. +* Wed Jan 19 2005 - garloff@suse.de +- Avoid uninitialized variables, and fix a size_t vs. unsigned + int issue. +- Update to gsl-1.6: + * Wavelet functions + * LQ decomposition + * Various bugfixes and minor improvements (SYRK, HERK, + swap_vectors, cheb_eval_n_err, sf_gamma_inc, cspline, + akima, ode-initval, sf_psi_1, sf_expint_Ei_e, cdf_beta_X, + eigen_jacobi, error stream flushes prior to abort). +* Sat Aug 21 2004 - garloff@suse.de +- Fix build on non-x86/x86-64 (no -monit-leaf-frame-pointer). +- Allow parallel build. +* Sun Aug 15 2004 - garloff@suse.de +- Update to version 1.5. +- More aggressive compiler optimization flags. +* Tue May 18 2004 - ro@suse.de +- use -fno-strict-aliasing +* Wed Feb 25 2004 - stepan@suse.de +- update to version 1.4 +* Sat Jan 10 2004 - adrian@suse.de +- add %%defattr +* Tue May 27 2003 - ro@suse.de +- add pkgconfig file to filelist +* Wed Jan 15 2003 - garloff@suse.de +- bzip2 sources +* Wed Jan 15 2003 - garloff@suse.de +- Update to gsl-1.3: + * Fixed gsl_sf_coupling + * exponential integral exp(-x)*Ei(x) + * many bugfixes +- Update to gsl-1.2: + * new functions for combining permutations etc. + * multiroot functions + * dflt error handler outputs message before aborting + * gsl_linalg_SV_decomp handles exact zeros now + * unsymmetric tridiagonal solvers added + * bugfixes +- Update to gsl-1.1.1: + * bugfixes +- Update to gsl-1.1: + * permutation copy function + * gsl_sf_gamma_inc improved + * IEEE handling of FP numbers tested in configure + * gsl_histogram_sum + * More physical constants (r_B, eps_0) + * Knuth's random number generators + * bugfixes +* Fri Jul 05 2002 - kukuk@suse.de +- Use %%ix86 macro +* Wed May 08 2002 - garloff@suse.de +- Fix %%lib64 issues +- Remove -freduce-all-givs from compiler flags. +* Mon Dec 10 2001 - garloff@suse.de +- Creation of gsl-1.0 +- Produce and install HTML docu diff --git a/ieee-div-by-zero b/ieee-div-by-zero new file mode 100644 index 0000000..d6b4784 --- /dev/null +++ b/ieee-div-by-zero @@ -0,0 +1,29 @@ +Index: gsl-1.8/ieee-utils/Makefile.in +=================================================================== +--- gsl-1.8.orig/ieee-utils/Makefile.in ++++ gsl-1.8/ieee-utils/Makefile.in +@@ -60,12 +60,12 @@ test_DEPENDENCIES = libgslieeeutils.la . + DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) + depcomp = + am__depfiles_maybe = + COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ +- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_$@) + LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ +- $(AM_CFLAGS) $(CFLAGS) ++ $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_$@) + CCLD = $(CC) + LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ + SOURCES = $(libgslieeeutils_la_SOURCES) $(test_SOURCES) +@@ -90,8 +90,9 @@ AUTOHEADER = @AUTOHEADER@ + AUTOMAKE = @AUTOMAKE@ + AWK = @AWK@ + CC = @CC@ + CFLAGS = @CFLAGS@ ++CFLAGS_test.o = -fno-fast-math + CPP = @CPP@ + CPPFLAGS = @CPPFLAGS@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ diff --git a/log1p-no-fast-math.diff b/log1p-no-fast-math.diff new file mode 100644 index 0000000..516189a --- /dev/null +++ b/log1p-no-fast-math.diff @@ -0,0 +1,29 @@ +Index: gsl-1.8/sys/Makefile.in +=================================================================== +--- gsl-1.8.orig/sys/Makefile.in ++++ gsl-1.8/sys/Makefile.in +@@ -62,12 +62,12 @@ test_DEPENDENCIES = libgslsys.la ../ieee + DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) + depcomp = + am__depfiles_maybe = + COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ +- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_$@) + LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ +- $(AM_CFLAGS) $(CFLAGS) ++ $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_$@) + CCLD = $(CC) + LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ + SOURCES = $(libgslsys_la_SOURCES) $(test_SOURCES) +@@ -92,8 +92,9 @@ AUTOHEADER = @AUTOHEADER@ + AUTOMAKE = @AUTOMAKE@ + AWK = @AWK@ + CC = @CC@ + CFLAGS = @CFLAGS@ ++CFLAGS_log1p.lo = -fno-fast-math + CPP = @CPP@ + CPPFLAGS = @CPPFLAGS@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4