libpar2 needs oudated libsigc++-2.0

Bug #1931290 reported by Maarten
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libpar2
New
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.