- reintroduce useful reproducible.patch

- modified patches
  % doxygen-no-lowercase-man-names.patch (refreshed)
- added patches
  + reproducible.patch

OBS-URL: https://build.opensuse.org/package/show/devel:tools/doxygen?expand=0&rev=203
This commit is contained in:
Petr Gajdos 2024-01-22 11:18:09 +00:00 committed by Git OBS Bridge
parent d3e2c14830
commit d0305f5e09
5 changed files with 94 additions and 8 deletions

View File

@ -1,8 +1,8 @@
Index: doxygen-1.9.2/src/fortranscanner.l
Index: doxygen-1.10.0/src/fortranscanner.l
===================================================================
--- doxygen-1.9.2.orig/src/fortranscanner.l
+++ doxygen-1.9.2/src/fortranscanner.l
@@ -2314,7 +2314,6 @@ static void initEntry(yyscan_t yyscanner
--- doxygen-1.10.0.orig/src/fortranscanner.l
+++ doxygen-1.10.0/src/fortranscanner.l
@@ -2697,7 +2697,6 @@ static void initEntry(yyscan_t yyscanner
static void addCurrentEntry(yyscan_t yyscanner,bool case_insens)
{
struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
Mon Jan 22 11:06:03 UTC 2024 - pgajdos@suse.com
- reintroduce useful reproducible.patch
- modified patches
% doxygen-no-lowercase-man-names.patch (refreshed)
- added patches
+ reproducible.patch
-------------------------------------------------------------------
Mon Dec 25 20:11:52 UTC 2023 - Christoph G <foss@grueninger.de>

View File

@ -1,7 +1,7 @@
#
# spec file for package doxygen
#
# 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
@ -33,7 +33,8 @@ Source0: https://www.doxygen.nl/files/doxygen-%{version}.src.tar.gz
# suse specific
Patch1: %{name}-no-lowercase-man-names.patch
# The unified libclang-cpp library doesn't exist on older Leap / SLE
Patch10: doxygen-no-libclang-cpp.patch
Patch2: doxygen-no-libclang-cpp.patch
Patch3: reproducible.patch
BuildRequires: bison
BuildRequires: cmake >= 3.14
BuildRequires: flex
@ -65,9 +66,10 @@ language VHDL.
%patch1 -p1
%if %{with libclang}
%if 0%{?sle_version} == 150100 || (0%{?sle_version} == 150200 && !0%{?is_opensuse})
%patch10 -p1
%patch2 -p1
%endif
%endif
%patch3 -p1
%build
%cmake \

View File

@ -1,7 +1,7 @@
#
# spec file for package doxywizard
#
# 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

75
reproducible.patch Normal file
View File

@ -0,0 +1,75 @@
Index: doxygen-1.10.0/deps/filesystem/filesystem.hpp
===================================================================
--- doxygen-1.10.0.orig/deps/filesystem/filesystem.hpp
+++ doxygen-1.10.0/deps/filesystem/filesystem.hpp
@@ -5700,12 +5700,13 @@ public:
impl(const path& path, directory_options options)
: _base(path)
, _options(options)
- , _dir(nullptr)
+ , _namelist(nullptr)
+ , _namelisti(-1)
, _entry(nullptr)
{
if (!path.empty()) {
- do { _dir = ::opendir(path.native().c_str()); } while(errno == EINTR);
- if (!_dir) {
+ _namelisti = _namelistn = ::scandir(path.native().c_str(), &_namelist, NULL, alphasort);
+ if (_namelistn == -1) {
auto error = errno;
_base = filesystem::path();
if ((error != EACCES && error != EPERM) || (options & directory_options::skip_permission_denied) == directory_options::none) {
@@ -5720,19 +5721,23 @@ public:
impl(const impl& other) = delete;
~impl()
{
- if (_dir) {
- ::closedir(_dir);
+ if (_namelist) {
+ for (int i=_namelistn-1; i>=0; i--) {
+ free(_namelist[i]);
+ }
+ free(_namelist);
+ _namelist = nullptr;
}
}
void increment(std::error_code& ec)
{
- if (_dir) {
+ if (_namelist) {
bool skip;
do {
skip = false;
errno = 0;
- do { _entry = ::readdir(_dir); } while(errno == EINTR);
- if (_entry) {
+ if (_namelisti > 0 ) {
+ _entry = _namelist[--_namelisti];
_dir_entry._path = _base;
_dir_entry._path.append_name(_entry->d_name);
copyToDirEntry();
@@ -5742,8 +5747,11 @@ public:
}
}
else {
- ::closedir(_dir);
- _dir = nullptr;
+ for (int i=_namelistn-1; i>=0; i--) {
+ free(_namelist[i]);
+ }
+ free(_namelist);
+ _namelist = nullptr;
_dir_entry._path.clear();
if (errno && errno != EINTR) {
ec = detail::make_system_error();
@@ -5772,7 +5780,9 @@ public:
}
path _base;
directory_options _options;
- DIR* _dir;
+ int _namelisti;
+ int _namelistn;
+ struct dirent **_namelist;
struct ::dirent* _entry;
directory_entry _dir_entry;
std::error_code _ec;