media-video/makemkv: Launch executables from the PATH
authorJames Le Cuirot <chewi@gentoo.org>
Sun, 8 May 2016 13:15:29 +0000 (14:15 +0100)
committerJames Le Cuirot <chewi@gentoo.org>
Sun, 8 May 2016 16:26:49 +0000 (17:26 +0100)
Upstream launches wget as /usr/bin/wget and uses a hardcoded set of
paths to search for other executables. All the required executables
should be in the PATH anyway and this will fix prefixed systems.

Also add missing dependency on wget. It's in @system but it's one of
the less obvious entries.

Package-Manager: portage-2.2.28

media-video/makemkv/files/makemkv-path.patch
media-video/makemkv/makemkv-1.9.10.ebuild

index 88f44a9d4ceb226adddd2263957e0cd0f20da1ca..7c66849b32341d3937fd03688006860285506b5a 100644 (file)
@@ -1,13 +1,59 @@
---- makemkv-oss-1.8.10/makemkvgui/src/api_linux.cpp.orig       2014-04-13 14:01:36.000000000 +0100
-+++ makemkv-oss-1.8.10/makemkvgui/src/api_linux.cpp    2014-05-08 00:09:52.863784998 +0100
-@@ -36,9 +36,7 @@
- }
- static const char* const app_locations[]={
--    "/bin",
--    "/usr/bin",
--    "/usr/local/bin",
-+    "/opt/bin",
-     NULL };
- const char* const* ApGetAppLocations()
+diff -Naur makemkv-oss-1.9.10.orig/libabi/src/httplinux.cpp makemkv-oss-1.9.10/libabi/src/httplinux.cpp
+--- makemkv-oss-1.9.10.orig/libabi/src/httplinux.cpp   2016-04-15 21:35:36.000000000 +0100
++++ makemkv-oss-1.9.10/libabi/src/httplinux.cpp        2016-05-08 10:52:42.481501963 +0100
+@@ -45,7 +45,7 @@
+     lurl = (char*)alloca(strlen(Url)+1);
+     strcpy(lurl,Url);
+-    strcpy(argv0,"/usr/bin/wget"); argv[0]=argv0;
++    strcpy(argv0,"wget"); argv[0]=argv0;
+     strcpy(argv1,"-q"); argv[1]=argv1;
+     strcpy(argv2,"-O"); argv[2]=argv2;
+     strcpy(argv3,"-"); argv[3]=argv3;
+diff -Naur makemkv-oss-1.9.10.orig/makemkvgui/src/api_posix.cpp makemkv-oss-1.9.10/makemkvgui/src/api_posix.cpp
+--- makemkv-oss-1.9.10.orig/makemkvgui/src/api_posix.cpp       2016-04-15 21:35:36.000000000 +0100
++++ makemkv-oss-1.9.10/makemkvgui/src/api_posix.cpp    2016-05-08 13:51:48.761885862 +0100
+@@ -54,8 +54,6 @@
+     if (AppName[0]==':')
+     {
+-        bool app_found = false;
+-        const char* const* app_locations = ApGetAppLocations();
+         const char* p_env = getenv("MAKEMKVCON");
+         AppName++;
+@@ -63,6 +61,13 @@
+         if (p_env!=NULL)
+         {
+             strcpy(app_path,p_env);
++        } else {
++            strcpy(app_path,AppName);
++        }
++    } else {
++        strcpy(app_path,AppName);
++    }
++/*
+             app_found = true;
+         } else {
+             for (size_t i=0;app_locations[i]!=NULL;i++)
+@@ -105,7 +110,7 @@
+         }
+         strcpy(p,AppName);
+     }
+-
++*/
+     strcpy(str_guiserver,"guiserver");
+     strcpy(str_apver,verstr);
+diff -Naur makemkv-oss-1.9.10.orig/makemkvgui/src/spawn_posix.cpp makemkv-oss-1.9.10/makemkvgui/src/spawn_posix.cpp
+--- makemkv-oss-1.9.10.orig/makemkvgui/src/spawn_posix.cpp     2016-04-15 21:35:36.000000000 +0100
++++ makemkv-oss-1.9.10/makemkvgui/src/spawn_posix.cpp  2016-05-08 10:52:37.137598384 +0100
+@@ -70,7 +70,7 @@
+         }
+     }
+-    err = posix_spawn(&pid,argv[0],&spawn_actions,&spawn_attr,argv,envp);
++    err = posix_spawnp(&pid,argv[0],&spawn_actions,&spawn_attr,argv,envp);
+     posix_spawn_file_actions_destroy(&spawn_actions);
+     posix_spawnattr_destroy(&spawn_attr);
index bafbae6b2c7278723028b0bc57a85e8ec85a8be2..57fd31dec8e6c4c10f1176c90ca7c40dada02d11 100644 (file)
@@ -22,7 +22,7 @@ REQUIRED_USE="?? ( qt4 qt5 )"
 
 QA_PREBUILT="opt/bin/makemkvcon opt/bin/mmdtsdec"
 
-RDEPEND="
+DEPEND="
        sys-libs/glibc[multilib?]
        dev-libs/expat
        dev-libs/openssl:0
@@ -41,7 +41,8 @@ RDEPEND="
        !libav? ( >=media-video/ffmpeg-1.0.0:0= )
        libav? ( >=media-video/libav-0.8.9:0= )
 "
-DEPEND="${RDEPEND}"
+RDEPEND="${DEPEND}
+       net-misc/wget"
 
 # Upstream uses non-standard locale names so map them with this
 # associative array and perform some tricks below.