libpar2 needs oudated libsigc++-2.0

Bug #1931290 reported by Maarten
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libpar2
Undecided
Unassigned

Bug Description

libpar2 uses the oudated libsigc++ 2.0, of which the 3.x series is current.

Using the patch below, this can be fixed:

```patch
--- configure.ac
+++ configure.ac
@@ -40,7 +40,7 @@
 AC_PROG_LIBTOOL
 AM_PROG_LIBTOOL
 AC_CHECK_LIB(stdc++, main,,AC_MSG_ERROR(You need libstdc++))
-AC_CHECK_LIB(sigc-2.0, main,,AC_MSG_ERROR(You need libsigc++))
+AC_CHECK_LIB(sigc-3.0, main,,AC_MSG_ERROR(You need libsigc++))

 dnl Checks for header files.
 AC_HEADER_DIRENT
@@ -48,7 +48,7 @@
 AC_HEADER_STDC
 AC_CHECK_HEADERS([stdio.h] [endian.h])
 AC_CHECK_HEADERS([getopt.h])
-PKG_CHECK_MODULES([SIGC], [sigc++-2.0] )
+PKG_CHECK_MODULES([SIGC], [sigc++-3.0] )
 dnl AC_CHECK_HEADERS([sigc++-2.0/sigc++/sigc++.h],[],AC_MSG_ERROR(You need libsigc++ headers))

 dnl Checks for typedefs, structures, and compiler characteristics.
--- libpar2.h
+++ libpar2.h
@@ -31,10 +31,10 @@ class LibPar2

   Result PreProcess();
   Result Process(bool dorepair);
- sigc::signal<void, std::string> sig_filename;
- sigc::signal<void, double> sig_progress;
- sigc::signal<void, ParHeaders*> sig_headers;
- sigc::signal<void, std::string, int, int> sig_done;
+ sigc::signal<void(std::string)> sig_filename;
+ sigc::signal<void(double)> sig_progress;
+ sigc::signal<void(ParHeaders*)> sig_headers;
+ sigc::signal<void(std::string, int, int)> sig_done;

  protected:
   void signal_filename(std::string str);
--- par2repairer.h
+++ par2repairer.h
@@ -31,10 +31,10 @@ public:

   Result PreProcess(const CommandLine &commandline);
   Result Process(const CommandLine &commandline, bool dorepair);
- sigc::signal<void, std::string> sig_filename;
- sigc::signal<void, double> sig_progress;
- sigc::signal<void, ParHeaders*> sig_headers;
- sigc::signal<void, std::string, int, int> sig_done;
+ sigc::signal<void(std::string)> sig_filename;
+ sigc::signal<void(double)> sig_progress;
+ sigc::signal<void(ParHeaders*)> sig_headers;
+ sigc::signal<void(std::string, int, int)> sig_done;

   // This method allows to determine whether libpar2 includes the patches
   // ("libpar2-0.2-bugfixes.patch") submitted to libpar2 project.
```

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers