diff --git a/0002-fix-GTK3-build-error.patch b/0002-fix-GTK3-build-error.patch deleted file mode 100644 index 6414f4f..0000000 --- a/0002-fix-GTK3-build-error.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/lazarus/lcl/interfaces/gtk3/gtk3boxes.pas 2022-09-25 12:37:18.000000000 +0200 -+++ b/lcl/interfaces/gtk3/gtk3boxes.pas 2022-12-21 18:46:07.163316917 +0100 -@@ -1,11 +1,13 @@ - unit gtk3boxes; - -+{$MODE OBJFPC} {$LONGSTRINGS ON} -+ - interface - - uses - // LazUtils -- UITypes, -+ System.UITypes, - // LCL - LCLType, LCLStrConsts,LCLProc, InterfaceBase, - LazGtk3, LazGLib2, LazGObject2, LazGdk3, gtk3objects; diff --git a/lazarus-2.2.6-0.tar.gz b/lazarus-2.2.6-0.tar.gz deleted file mode 100644 index 9d58b64..0000000 --- a/lazarus-2.2.6-0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39f4cf98c0a94b39a058e733baa62f1c1d5dcfa6599dc57bc5efc4c0d08c485c -size 78351752 diff --git a/lazarus-3.0-0.tar.gz b/lazarus-3.0-0.tar.gz new file mode 100644 index 0000000..1517787 --- /dev/null +++ b/lazarus-3.0-0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4b8ba89a344ab7d8d8d2ecb9bf9e82e737101049866170e8c9618c13d491fbf +size 87513233 diff --git a/lazarus-Makefile_patch.diff b/lazarus-Makefile_patch.diff index 81c7767..ab6a2c1 100644 --- a/lazarus-Makefile_patch.diff +++ b/lazarus-Makefile_patch.diff @@ -20,7 +20,7 @@ Index: lazarus/Makefile.fpc INSTALL_MAN_DIR=$(INSTALL_PREFIX)/share/man ifneq ($(findstring $(OS_TARGET),win32 win64),) LAZARUS_INSTALL_DIR=C:\lazarus -@@ -287,8 +287,8 @@ installbase: +@@ -249,8 +249,8 @@ installbase: ifneq ($(findstring $(OS_TARGET),win32 win64),) else diff --git a/lazarus.changes b/lazarus.changes index ab70b14..7cb2147 100644 --- a/lazarus.changes +++ b/lazarus.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Jan 15 18:58:22 UTC 2024 - PragmaticLinux + +- Update to 3.0 + * For a complete list of changes see: + https://wiki.freepascal.org/Lazarus_3.0_release_notes +- Removed 0002-fix-GTK3-build-error.patch because this is fixed in Lazarus 3.0. +- Spec-file improvements to fix several RPM lint errors and warnings. + ------------------------------------------------------------------- Tue Aug 29 12:39:22 UTC 2023 - Paolo Stivanin diff --git a/lazarus.spec b/lazarus.spec index 4a669f2..8fac6da 100644 --- a/lazarus.spec +++ b/lazarus.spec @@ -1,7 +1,7 @@ # # spec file for package lazarus # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %define sover 1 Name: lazarus -Version: 2.2.6 +Version: 3.0 Release: 0 # Please note that the LGPL is modified and this is not multi-licensed, but each component has a separate license chosen. Summary: FreePascal RAD IDE and Component Library @@ -33,8 +33,6 @@ Source90: %{name}-rpmlintrc Patch0: %{name}-Makefile_patch.diff # PATCH-FIX-OPENSUSE lazarus.desktop.patch -- Fix desktop file Patch1: lazarus.desktop.patch -# Fix build errors for GTK3 widgetset -Patch2: 0002-fix-GTK3-build-error.patch BuildRequires: dos2unix BuildRequires: fdupes BuildRequires: fpc >= 3.0.0 @@ -192,6 +190,30 @@ developing applications that use qt5pas. %prep %autosetup -p1 -n %{name} +# remove unneeded files +rm -rf tools/install/cross_unix/debian_crosswin32/ +rm -f tools/install/cross_unix/*deb.* +rm -rf tools/install/debian_* +rm -rf tools/install/freebsd_* +rm -rf tools/install/macosx/ +rm -rf tools/install/slacktgz/ +rm -rf tools/install/win/ +rm -f tools/install/*slacktgz.* + +# fix shebang +find . \( -name "*.sh" -o -name "*.pl" \) -exec sed -i '1s|#!%{_bindir}/env |#!%{_bindir}/|' {} + + +# set executable bit to fix rpmlint error "non-executable-script" +chmod +x components/datetimectrls/docs/clean-files.sh +chmod +x components/datetimectrls/docs/make-archive.sh +chmod +x components/datetimectrls/docs/make-docs.sh +chmod +x components/lazcontrols/docs/make-docs.sh +chmod +x components/rtticontrols/fpdoc/clean-files.sh +chmod +x components/rtticontrols/fpdoc/make-docs.sh + +# remove git ignore files to prevent them from being installed to fix rpmlint error "version-control-internal-file" +find . \( -name ".gitignore" \) -delete + %build # Remove the files for building other packages rm -rf debian @@ -207,20 +229,34 @@ fpcmake -Tall popd # Compile some basic targets required by everything else -make registration lazutils codetools %{fpmakeopt} +make registration %{fpmakeopt} -# Compile LCL base (Lazarus Component Library) for the "nogui" widgetset -make lcl basecomponents %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +# Compile tools (lazbuild, etc.). Requires the nogui widgetset. +make lazbuild %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +make tools %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui -# Compile tools (lazbuild, etc.) -make tools %{fpmakeopt} OPT='%{fpcopt}' +# Compile LCL base (Lazarus Component Library) for the "nogui" widgetset. Note that +# starting with Lazarus 3.0, the "basecomponents" build target changed to the point that +# it can no longer be build for the "nogui" widgetset. Manually build the targets of +# the original "basecomponents", prior to Lazarus 3.0. This outputs the files needed for +# subpackage lcl-nogui. Eventually subpackage lcl-nogui should be removed, because it +# is not officially supported nor tested according to: +# https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/40683 +make -C lcl/interfaces/nogui/ %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +make -C components/buildintf %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +make -C components/debuggerintf %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +make -C components/lazcontrols %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +make -C components/ideintf %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +make -C components/synedit %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +make -C components/lazdebuggergdbmi %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui +make -C components/lazcontrols/design %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=nogui # Compile the LCL base + extra components for GUI widgetsets for WIDGETSET in gtk2 gtk3 qt5; do make lcl basecomponents bigidecomponents %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM="${WIDGETSET}" done -# Compile the IDE itself +# Compile the IDE itself. Default to using the gkt2 widget set. make bigide %{fpmakeopt} OPT='%{fpcopt}' LCL_PLATFORM=gtk2 # build libQt5Pas @@ -257,9 +293,11 @@ for FILEPATH in %{buildroot}%{_libdir}/%{name}/lcl/interfaces/qt5/cbindings/libQ ln -sf "%{_libdir}/${FILENAME}" "${FILEPATH}" done -rm -rf %{buildroot}%{_libdir}/%{name}/lcl/interfaces/qt5/cbindings/tmp/ +# Remove hidden files to fix rpmlint warning "hidden-file-or-dir" +rm -f %{buildroot}%{_libdir}/%{name}/lcl/interfaces/qt5/cbindings/.qmake.stash -%fdupes %{buildroot}%{_libdir}/%{name} +# Remove duplicate files +%fdupes -s %{buildroot} %post -n libQt5Pas%{sover} -p /sbin/ldconfig %postun -n libQt5Pas%{sover} -p /sbin/ldconfig @@ -348,7 +386,7 @@ rm -rf %{buildroot}%{_libdir}/%{name}/lcl/interfaces/qt5/cbindings/tmp/ %dir %{_libdir}/%{name} %{_libdir}/%{name}/components/ %{_libdir}/%{name}/lcl/ -%lcl_base_files -n nogui %exclude +%lcl_base_files -n nogui %exclude %lcl_base_files -n gtk2 %exclude %lcl_extra_files -n gtk2 %exclude %lcl_base_files -n gtk3 %exclude