diff --git a/.gitignore b/.gitignore index 05a5325..31544f3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,9 @@ ucblogo-6.0.tar.gz logo-mode.tar.gz +/version_6.1.tar.gz +/ucblogo-6.2.tar.gz +/ucblogo-6.2.1.tar.gz +/ucblogo-6.2.2.tar.gz +/ucblogo-6.2.3.tar.gz +/ucblogo-6.2.4.tar.gz +/ucblogo-6.2.5.tar.gz diff --git a/compile-flags.patch b/compile-flags.patch new file mode 100644 index 0000000..6d53b0e --- /dev/null +++ b/compile-flags.patch @@ -0,0 +1,21 @@ +diff -ruN ucblogo-code-version_6.2.4/configure.ac ucblogo-code-version_6.2.4-mod/configure.ac +--- ucblogo-code-version_6.2.4/configure.ac 2023-03-28 04:05:59.000000000 +0300 ++++ ucblogo-code-version_6.2.4-mod/configure.ac 2024-11-30 18:24:29.793856326 +0300 +@@ -72,17 +72,6 @@ + AC_MSG_RESULT([$enable_docs]) + AM_CONDITIONAL([DOCS], [test x${enable_docs} = xyes]) + +-dnl Enable Compiler Warnings +-AX_CFLAGS_WARN_ALL +-dnl Disable a warning with many false positives; perhaps rethink later +-AX_CHECK_COMPILE_FLAG([-Wno-write-strings], +-[CFLAGS="$CFLAGS -Wno-write-strings" +-CXXFLAGS="$CXXFLAGS -Wno-write-strings"]) +-dnl Disable voluminous cloud of rather harmless warnings +-AX_CHECK_COMPILE_FLAG([-Wno-unused-variable], +-[CFLAGS="$CFLAGS -Wno-unused-variable" +-CXXFLAGS="$CXXFLAGS -Wno-unused-variable"]) +- + dnl Checks for libraries. + AC_SEARCH_LIBS(sqrt,[m]) + AC_SEARCH_LIBS(atan,[m]) diff --git a/sources b/sources index 458b4ea..3eb6b8b 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -36a56765b18136c817880c5381af196b ucblogo-6.0.tar.gz -6dc3d37f7dfc885f0dc0d52b4f27f042 logo-mode.tar.gz +SHA512 (ucblogo-6.2.5.tar.gz) = 4b77faeeed696b08488ae34f2f4d774f58a701f9b31473b35fdb228d45e9f6e9e253662c1d552320759efb4b6054030de1c869902fe3b71a98b6dedba807d230 diff --git a/termios.patch b/termios.patch new file mode 100644 index 0000000..beefc8c --- /dev/null +++ b/termios.patch @@ -0,0 +1,79 @@ +diff --git a/configure.ac b/configure.ac +index 749bf6f..e233b53 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -104,9 +104,7 @@ AM_COND_IF([X11], + [AC_SEARCH_LIBS(XOpenDisplay, [X11])]) + + dnl Checks for header files. +-AC_CHECK_HEADERS([unistd.h string.h]) +-AM_COND_IF([WX],, +- [AC_CHECK_HEADERS([sgtty.h termio.h termcap.h termlib.h curses.h])]) ++AC_CHECK_HEADERS([termios.h termio.h termcap.h termlib.h curses.h sys/ioctl.h unistd.h string.h]) + + dnl Checks for typedefs, structures, and compiler characteristics. + AC_TYPE_SIZE_T +diff --git a/term.c b/term.c +index c1f596e..e81c0b5 100644 +--- a/term.c ++++ b/term.c +@@ -33,16 +33,14 @@ + #include + #endif + +-#ifdef HAVE_TERMIO_H +-#ifdef HAVE_WX ++#ifdef HAVE_TERMIOS_H + #include +-#else ++#elif defined(HAVE_TERMIO_H) + #include + #endif +-#else +-#ifdef HAVE_SGTTY_H +-#include +-#endif ++ ++#ifdef HAVE_SYS_IOCTL_H ++#include + #endif + + #undef TRUE +@@ -81,7 +79,9 @@ char cm_arr[40]; + char so_arr[40]; + char se_arr[40]; + +-#ifdef HAVE_TERMIO_H ++#if defined(HAVE_TERMIOS_H) ++struct termios tty_cooked, tty_cbreak; ++#elif defined(HAVE_TERMIO_H) + struct termio tty_cooked, tty_cbreak; + #else + #ifdef HAVE_SGTTY_H +@@ -137,7 +137,7 @@ void term_init(void) { + #endif /* WIN32 */ + #else + if (interactive) { +-#ifdef HAVE_TERMIO_H ++#if defined(HAVE_TERMIO_H) || defined(HAVE_TERMIOS_H) + ioctl(0,TCGETA,(char *)(&tty_cooked)); + tty_cbreak = tty_cooked; + tty_cbreak.c_cc[VMIN] = '\01'; +@@ -200,7 +200,7 @@ void term_init(void) { + void charmode_on() { + #ifdef unix + if ((readstream == stdin) && interactive && !tty_charmode) { +-#ifdef HAVE_TERMIO_H ++#if defined(HAVE_TERMIO_H) || defined(HAVE_TERMIOS_H) + ioctl(0,TCSETA,(char *)(&tty_cbreak)); + #else /* !HAVE_TERMIO_H */ + ioctl(0,TIOCSETP,(char *)(&tty_cbreak)); +@@ -216,7 +216,7 @@ void charmode_on() { + void charmode_off() { + #ifdef unix + if (tty_charmode) { +-#ifdef HAVE_TERMIO_H ++#if defined(HAVE_TERMIO_H) || defined(HAVE_TERMIOS_H) + ioctl(0,TCSETA,(char *)(&tty_cooked)); + #else /* !HAVE_TERMIO_H */ + ioctl(0,TIOCSETP,(char *)(&tty_cooked)); diff --git a/ucblogo.desktop b/ucblogo.desktop deleted file mode 100644 index 5d0ed1f..0000000 --- a/ucblogo.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=UCBLogo -GenericName=Logo Programming Language -Exec=logo-wx -Icon=ucblogo -Terminal=false -Type=Application -Categories=Education diff --git a/ucblogo.spec b/ucblogo.spec index 224fa61..4136697 100644 --- a/ucblogo.spec +++ b/ucblogo.spec @@ -1,12 +1,17 @@ Name: ucblogo -Version: 6.1 -Release: 1%{?dist} +Version: 6.2.5 +Release: 5%{?dist} Summary: An interpreter for the Logo programming language -License: GPLv3+ -Source: https://github.com/jrincayc/ucblogo-code/archive/version_6.1.tar.gz -Source1: %{name}.desktop +License: GPL-3.0-or-later +Source: https://github.com/jrincayc/ucblogo-code/archive/version_%{version}/ucblogo-%{version}.tar.gz +Patch1: compile-flags.patch +Patch2: termios.patch + URL: https://people.eecs.berkeley.edu/~bh/logo.html +BuildRequires: make +BuildRequires: autoconf +BuildRequires: automake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: texinfo @@ -20,7 +25,7 @@ BuildRequires: libXt-devel BuildRequires: libSM-devel BuildRequires: libICE-devel BuildRequires: ncurses-devel -BuildRequires: wxGTK3-devel +BuildRequires: wxGTK-devel BuildRequires: ghostscript-tools-dvipdf BuildRequires: desktop-file-utils Requires(post): /sbin/install-info @@ -45,49 +50,45 @@ BuildArch: noarch This package includes HTML and PDF documentation for ucblogo and the Program Logic Manual (plm) +%package x11 +Summary: X11 version for ucblogo +Requires: %{name} = %{version}-%{release} + +%description x11 +This package contains the x11 binary for ucblogo. + %prep -%setup -q -n ucblogo-code-version_6.1 - - -# correct directories /usr/lib -> /usr/share and /usr/local -> /usr -sed -i 's|/local/lib/logo|/share/logo|g' *.c README.md -sed -i 's|/lib/logo|/share/logo|g' *.c makefile* -sed -i "s|/usr/local/bin/logo|%{_bindir}/logo|g" docs/usermanual.texi -sed -i "s|/usr/local/bin/logo|%{_bindir}/logo|g" README.md -sed -i "s|/usr/local/info|%{_datadir}/info|g" README.md - -find -name 'CVS' | xargs rm -rf -find -name '.svn' | xargs rm -rf +%autosetup -p1 -n %{name}-%{version} %build -# build WX version -%configure --with-wx-config=/usr/bin/wx-config-3.0 -make %{_smp_mflags} logo -mv logo logo-wx +autoreconf -fi +autoconf # build traditional version +%configure --x-includes=%{_includedir} --x-libraries=%{_libdir} --enable-x11 --with-wx-config=no +%make_build ucblogo +mv ucblogo ucblogo-x11 +# build wx version make clean -%configure --x-includes=%{_includedir} --x-libraries=%{_libdir} --with-x --with-wx-config=no -make %{_smp_mflags} -# build docs -make make-docs +%configure --with-wx-config=/usr/bin/wx-config-3.2 +%make_build +# build html docs +make html %install -#Note: makefile does not support DESTDIR -%makeinstall +%make_install -install -m0755 logo-wx ${RPM_BUILD_ROOT}%{_bindir} +install -m0755 ucblogo-x11 ${RPM_BUILD_ROOT}%{_bindir} mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/info -mv -f ${RPM_BUILD_ROOT}%{_prefix}/info/* ${RPM_BUILD_ROOT}%{_datadir}/info -rm -fr ${RPM_BUILD_ROOT}%{_prefix}/info -rm -fr ${RPM_BUILD_ROOT}%{_datadir}/logo/docs -desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications %{SOURCE1} +desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications %{name}.desktop mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/256x256/apps install -p -m 644 ucblogo.png \ $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/256x256/apps +install -p -m 644 plm $RPM_BUILD_ROOT%{_datadir}/doc/ucblogo rm -f ${RPM_BUILD_ROOT}%{_bindir}/install-logo-mode +rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir %post /sbin/install-info %{_infodir}/ucblogo.info --entry="* UCBLogo: (ucblogo). Berkeley Logo User Manual." --section="Programming Languages" %{_infodir}/dir 2>/dev/null || : @@ -100,17 +101,101 @@ fi %files %doc README.md changes.txt %license LICENSE -%{_bindir}/* -%{_datadir}/logo -%{_infodir}/* -%{_mandir}/man1/logo* +%{_bindir}/ucblogo +%{_infodir}/*.info* +%{_mandir}/man1/ucblogo* %{_datadir}/applications/%{name}.desktop %{_datadir}/icons/hicolor/256x256/apps/%{name}.png +%{_datadir}/ucblogo/csls/* +%{_datadir}/ucblogo/helpfiles/* +%{_datadir}/ucblogo/logolib/* +%{_datadir}/pixmaps/ucblogo.xpm %files doc -%doc docs/html docs/usermanual.pdf plm +%{_datadir}/doc/ucblogo/ucblogo.pdf +%{_datadir}/doc/ucblogo/ucblogo.html +%{_datadir}/doc/ucblogo/plm + +%files x11 +%{_bindir}/ucblogo-x11 %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 6.2.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jan 17 2026 Fedora Release Engineering - 6.2.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Mon Aug 25 2025 Joshua Cogliati - 6.2.5-3 +- Fix failure to build errors + +* Fri Jul 25 2025 Fedora Release Engineering - 6.2.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Feb 13 2025 Joshua Cogliati - 6.2.5-1 +- Update to release 6.2.5 + +* Fri Jan 24 2025 Benson Muite 6.2.4-1 +- Update to release 6.2.4 +- Fix failure to build errors + +* Sun Jan 19 2025 Fedora Release Engineering - 6.2.3-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Jul 25 2024 Miroslav Suchý - 6.2.3-8 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 6.2.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 6.2.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Florian Weimer - 6.2.3-5 +- Backport upstream patches for GCC 14 compatibility + +* Sat Jul 22 2023 Fedora Release Engineering - 6.2.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Feb 07 2023 Florian Weimer - 6.2.3-3 +- Fix some C99 compatibility issues + +* Sat Jan 21 2023 Fedora Release Engineering - 6.2.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 17 2023 Joshua Cogliati - 6.2.3-1 +- Updating to 6.2.3 release + +* Thu Aug 04 2022 Scott Talbert - 6.2.2-4 +- Rebuild with wxWidgets 3.2 + +* Sat Jul 23 2022 Fedora Release Engineering - 6.2.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 6.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Dec 29 2021 Joshua Cogliati - 6.2.2-1 +- Updating to 6.2.2 release + +* Fri Jul 23 2021 Fedora Release Engineering - 6.2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 6.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Dec 31 2020 Joshua Cogliati - 6.2.1-1 +- Updating to 6.2.1 release + +* Wed Dec 30 2020 Joshua Cogliati - 6.2-1 +- Updating to 6.2 release and splitting x11 binary to separate package + +* Wed Jul 29 2020 Fedora Release Engineering - 6.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jan 31 2020 Fedora Release Engineering - 6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Thu Dec 26 2019 Joshua Cogliati - 6.1-1 - new release 6.1