diff --git a/make-4.1-fix_null_returns_from_ttyname.patch b/make-4.1-fix_null_returns_from_ttyname.patch new file mode 100644 index 0000000..82cc7d8 --- /dev/null +++ b/make-4.1-fix_null_returns_from_ttyname.patch @@ -0,0 +1,53 @@ +From 292da6f6867b75a5af7ddbb639a1feae022f438f Mon Sep 17 00:00:00 2001 +From: Paul Smith +Date: Mon, 20 Oct 2014 05:54:56 +0000 +Subject: * main.c (main): [SV 43434] Handle NULL returns from ttyname(). + +--- +diff --git a/main.c b/main.c +index b2d169c..0cdb8a8 100644 +--- a/main.c ++++ b/main.c +@@ -1429,13 +1429,18 @@ main (int argc, char **argv, char **envp) + #ifdef HAVE_ISATTY + if (isatty (fileno (stdout))) + if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMOUT"))) +- define_variable_cname ("MAKE_TERMOUT", TTYNAME (fileno (stdout)), +- o_default, 0)->export = v_export; +- ++ { ++ const char *tty = TTYNAME (fileno (stdout)); ++ define_variable_cname ("MAKE_TERMOUT", tty ? tty : DEFAULT_TTYNAME, ++ o_default, 0)->export = v_export; ++ } + if (isatty (fileno (stderr))) + if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMERR"))) +- define_variable_cname ("MAKE_TERMERR", TTYNAME (fileno (stderr)), +- o_default, 0)->export = v_export; ++ { ++ const char *tty = TTYNAME (fileno (stderr)); ++ define_variable_cname ("MAKE_TERMERR", tty ? tty : DEFAULT_TTYNAME, ++ o_default, 0)->export = v_export; ++ } + #endif + + /* Reset in case the switches changed our minds. */ +diff --git a/makeint.h b/makeint.h +index 6223936..2009f41 100644 +--- a/makeint.h ++++ b/makeint.h +@@ -436,10 +436,11 @@ extern struct rlimit stack_limit; + /* The number of bytes needed to represent the largest integer as a string. */ + #define INTSTR_LENGTH CSTRLEN ("18446744073709551616") + ++#define DEFAULT_TTYNAME "true" + #ifdef HAVE_TTYNAME + # define TTYNAME(_f) ttyname (_f) + #else +-# define TTYNAME(_f) "true" ++# define TTYNAME(_f) DEFAULT_TTYNAME + #endif + + +-- +cgit v0.9.0.2 diff --git a/make.changes b/make.changes index 6b9ddd2..5d2dbfc 100644 --- a/make.changes +++ b/make.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Mon Nov 17 12:08:11 UTC 2014 - tchvatal@suse.com + +- Cleanup a bit with spec-cleaner +- Split lang stuff into subpackage and add recommends +- Add patch to work with non-mounted pts: + * make-4.1-fix_null_returns_from_ttyname.patch + ------------------------------------------------------------------- Wed Oct 15 22:21:06 UTC 2014 - andreas.stieger@gmx.de diff --git a/make.spec b/make.spec index 9073c38..c0afdc4 100644 --- a/make.spec +++ b/make.spec @@ -17,58 +17,62 @@ Name: make -Url: http://www.gnu.org/software/make/make.html -Provides: gmake -PreReq: %install_info_prereq Version: 4.1 Release: 0 Summary: GNU make License: GPL-2.0+ Group: Development/Tools/Building -Source: http://ftp.gnu.org/gnu/make/make-%version.tar.bz2 -Source1: http://ftp.gnu.org/gnu/make/make-%version.tar.bz2.sig +Url: http://www.gnu.org/software/make/make.html +Source: http://ftp.gnu.org/gnu/make/make-%{version}.tar.bz2 +Source1: http://ftp.gnu.org/gnu/make/make-%{version}.tar.bz2.sig # keyring downloaded from http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=make -Source2: %name.keyring +Source2: %{name}.keyring Patch1: make-testcases_timeout.diff +Patch2: make-4.1-fix_null_returns_from_ttyname.patch Patch64: make-library-search-path.diff -#BuildRequires: gpg-offline +Requires(post): %{install_info_prereq} +Recommends: %{name}-lang +Provides: gmake BuildRoot: %{_tmppath}/%{name}-%{version}-build %description The GNU make command with extensive documentation. +%lang_package + %prep %setup -q %patch1 -p1 -if [ %_lib == lib64 ]; then +%patch2 -p1 +if [ %{_lib} == lib64 ]; then %patch64 -p1 fi %build -CFLAGS=$RPM_OPT_FLAGS \ -./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info +export CFLAGS="%{optflags}" +%configure make %{?_smp_mflags} %check -make check +make %{?_smp_mflags} check %install -make DESTDIR=$RPM_BUILD_ROOT install -ln -s make $RPM_BUILD_ROOT/usr/bin/gmake -%find_lang %name +make DESTDIR=%{buildroot} install %{?_smp_mflags} +ln -s make %{buildroot}%{_bindir}/gmake +%find_lang %{name} # gnumake.h was introduced in 4.0, looks useless -rm $RPM_BUILD_ROOT/usr/include/gnumake.h +rm %{buildroot}%{_includedir}/gnumake.h -%files -f %name.lang +%files %defattr(-,root,root) -/usr/bin/make -/usr/bin/gmake -%doc /usr/share/info/make.info-*.gz -%doc /usr/share/info/make.info.gz -%doc /usr/share/man/man1/make.1.gz +%{_bindir}/make +%{_bindir}/gmake +%doc %{_infodir}/make.info-*.gz +%doc %{_infodir}/make.info.gz +%doc %{_mandir}/man1/make.1.gz -%clean -rm -rf $RPM_BUILD_ROOT +%files lang -f %{name}.lang +%defattr(-,root,root) %post %install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz