Package: leocad
Version: 0.80-1
Severity: important
Tags: patch

The latest version of leocad fail to build on hurd and kfreebsd-*.  The
missing kfreebsd builds block the package from entering testing.  The
build problem is the same on all architectures:

qt/qtmain.cpp: In function 'int main(int, char**)':
qt/qtmain.cpp:166:37: error: 'libPath' was not declared in this scope
  if (!g_App->Initialize(argc, argv, libPath, cachePath.toLocal8Bit().data()))
                                     ^
make[1]: *** [build/release/.obj/qtmain.o] Error 1
make[1]: Leaving directory `/«PKGBUILDDIR»'
dh_auto_build: make -j1 returned exit code 2
make: *** [build-arch] Error 25

The problem is that the libPath variable is only defined for Windows,
MacOSX and Linux, but not for Hurd and FreeBSD.  I suggest to
restructure the logic to define the Linux values for every build that
isn't Windows or MacOSX, like the following patch:

--- leocad-0.80.orig/qt/qtmain.cpp
+++ leocad-0.80/qt/qtmain.cpp
@@ -134,7 +134,7 @@ int main(int argc, char *argv[])
        g_App = new lcApplication();
        gMainWindow = new lcMainWindow();
 
-#ifdef Q_OS_WIN
+#if defined(Q_OS_WIN)
        char libPath[LC_MAXPATH], *ptr;
        strcpy(libPath, argv[0]);
        ptr = strrchr(libPath,'\\');
@@ -143,19 +143,15 @@ int main(int argc, char *argv[])
 
        lcRegisterShellFileTypes();
        lcSehInit();
-#endif
-
-#ifdef Q_OS_LINUX
-       const char* libPath = LC_INSTALL_PREFIX"/share/leocad/";
-#endif
-
-#ifdef Q_OS_MAC
+#elif defined(Q_OS_MAC)
        QDir bundlePath = QDir(QCoreApplication::applicationDirPath());
        bundlePath.cdUp();
        bundlePath.cdUp();
        bundlePath = QDir::cleanPath(bundlePath.absolutePath() + 
"/Contents/Resources/");
        QByteArray pathArray = bundlePath.absolutePath().toLocal8Bit();
        const char* libPath = pathArray.data();
+#else /* Q_OS_LINUX, Hurd and FreeBSD */
+       const char* libPath = LC_INSTALL_PREFIX"/share/leocad/";
 #endif
 
        QString cachePath = 
QDesktopServices::storageLocation(QDesktopServices::CacheLocation);

It should fix the problem for both Hurd and kFreeBSD.

-- 
Happy hacking
Petter Reinholdtsen


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to