Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package doxygen for openSUSE:Factory checked 
in at 2023-09-17 19:28:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/doxygen (Old)
 and      /work/SRC/openSUSE:Factory/.doxygen.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "doxygen"

Sun Sep 17 19:28:41 2023 rev:96 rq:1111060 version:1.9.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/doxygen/doxygen.changes  2023-09-05 
11:54:49.809324088 +0200
+++ /work/SRC/openSUSE:Factory/.doxygen.new.1766/doxygen.changes        
2023-09-17 19:28:44.800401426 +0200
@@ -1,0 +2,5 @@
+Mon Jul 17 17:14:00 UTC 2023 - Bernhard Wiedemann <[email protected]>
+
+- Add reproducible.patch to make doxytags output reproducible (boo#1201579)
+
+-------------------------------------------------------------------

New:
----
  reproducible.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ doxygen.spec ++++++
--- /var/tmp/diff_new_pack.eQl7ww/_old  2023-09-17 19:28:46.820473422 +0200
+++ /var/tmp/diff_new_pack.eQl7ww/_new  2023-09-17 19:28:46.824473565 +0200
@@ -39,6 +39,7 @@
 Patch21:        
https://github.com/doxygen/doxygen/commit/7b2a6027775b.patch#/Fix-boundingbox-parsing_part2.patch
 Patch22:        
https://github.com/doxygen/doxygen/commit/f3514d578633.patch#/Fix-boundingbox-parsing_part3.patch
 Patch23:        
https://github.com/doxygen/doxygen/commit/8129939c312e.patch#/Fix-boundingbox-parsing_part4.patch
+Patch24:        reproducible.patch
 BuildRequires:  bison
 BuildRequires:  cmake >= 2.8.12
 BuildRequires:  flex
@@ -77,6 +78,7 @@
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
+%patch24 -p1
 
 %build
 %cmake \

++++++ reproducible.patch ++++++
Index: doxygen-1.9.6/filesystem/filesystem.hpp
===================================================================
--- doxygen-1.9.6.orig/filesystem/filesystem.hpp
+++ doxygen-1.9.6/filesystem/filesystem.hpp
@@ -5548,12 +5548,13 @@ public:
     impl(const path& path, directory_options options)
         : _base(path)
         , _options(options)
-        , _dir(nullptr)
+        , _namelist(nullptr)
+        , _namelisti(-1)
         , _entry(nullptr)
     {
         if (!path.empty()) {
-            _dir = ::opendir(path.native().c_str());
-            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) {
@@ -5568,19 +5569,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;
-                _entry = ::readdir(_dir);
-                if (_entry) {
+                if (_namelisti > 0 ) {
+                    _entry = _namelist[--_namelisti];
                     _dir_entry._path = _base;
                     _dir_entry._path.append_name(_entry->d_name);
                     copyToDirEntry();
@@ -5590,8 +5595,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) {
                         ec = detail::make_system_error();
@@ -5634,7 +5642,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;

Reply via email to