Skip to content

Instantly share code, notes, and snippets.

Created November 20, 2015 16:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/72678b4073df456e76ad to your computer and use it in GitHub Desktop.
Save anonymous/72678b4073df456e76ad to your computer and use it in GitHub Desktop.
Patches for making the bombono-dvd 1.2.2-4 AUR package compilable
--- bombono-dvd-1.2.2/src/mlib/regex.h 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mlib/regex.h 2015-11-20 18:37:26.167057488 +0330
@@ -185,7 +185,7 @@
#define RG_EW "\\>" // конец слова
#define RG_SPS "[[:space:]]*" // пробелы
#define RG_NUM "([0-9]+)" // число
-#define RG_FLT RG_NUM"([\\.,]"RG_NUM")" // вещ. число, в паре с ExtractDouble()
+#define RG_FLT RG_NUM "([\\.,]" RG_NUM ")" // вещ. число, в паре с ExtractDouble()
#define RG_CMD_BEG RG_BW // "^"RG_SPS // начало команды
bool ExtractDouble(double& val, const re::match_results& what, int idx = 1);
--- bombono-dvd-1.2.2/src/mgui/author/burn.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/author/burn.cpp 2015-11-20 18:44:47.940364110 +0330
@@ -85,7 +85,7 @@
return bd;
}
-re::pattern WriteSpeed_RE("Write Speed #"RG_NUM":"RG_SPS RG_NUM"\\."RG_NUM "x1385");
+re::pattern WriteSpeed_RE("Write Speed #" RG_NUM ":" RG_SPS RG_NUM "\\." RG_NUM "x1385");
RefPtr<Gtk::ListStore> sp_store;
@@ -253,7 +253,7 @@
}
else
{
- static re::pattern media_type_re("Mounted Media:"RG_SPS"[0-9A-F]+h, ([^ \n]+)");
+ static re::pattern media_type_re("Mounted Media:" RG_SPS "[0-9A-F]+h, ([^ \n]+)");
re::match_results what;
bool is_found = re::search(out_info, what, media_type_re);
@@ -277,7 +277,7 @@
// isBlank
if( res != dvdOTHER )
{
- static re::pattern media_status_re("Disc status:"RG_SPS"([a-z]+)\n");
+ static re::pattern media_status_re("Disc status:" RG_SPS "([a-z]+)\n");
bool is_found = re::search(out_info, what, media_status_re);
ASSERT_RTL( is_found );
--- bombono-dvd-1.2.2/src/mgui/author/execute.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/author/execute.cpp 2015-11-20 18:47:25.260354601 +0330
@@ -64,9 +64,9 @@
tag->property_foreground() = "darkgreen";
}
-re::pattern DVDAuthorRE(RG_CMD_BEG"dvdauthor"RG_EW ".*-x"RG_EW RG_SPS RG_BW"DVDAuthor\\.xml"RG_EW);
-re::pattern MkIsoFsRE(RG_CMD_BEG MK_ISO_CMD RG_EW ".*-dvd-video"RG_EW ".*>.*"RG_BW"dvd.iso"RG_EW);
-re::pattern GrowIsoFsRE(RG_CMD_BEG"growisofs"RG_EW ".*-dvd-compat"RG_EW ".*-dvd-video"RG_EW);
+re::pattern DVDAuthorRE(RG_CMD_BEG"dvdauthor" RG_EW ".*-x" RG_EW RG_SPS RG_BW "DVDAuthor\\.xml" RG_EW);
+re::pattern MkIsoFsRE(RG_CMD_BEG MK_ISO_CMD RG_EW ".*-dvd-video" RG_EW ".*>.*" RG_BW "dvd.iso" RG_EW);
+re::pattern GrowIsoFsRE(RG_CMD_BEG"growisofs" RG_EW ".*-dvd-compat" RG_EW ".*-dvd-video" RG_EW);
//static void PrintMatchResults(const re::match_results& what)
//{
@@ -94,7 +94,7 @@
virtual void Filter(const std::string& line);
};
-re::pattern MkIsoFsPercent_RE( RG_FLT"?% done");
+re::pattern MkIsoFsPercent_RE( RG_FLT "?% done");
void MkIsoFsPP::Filter(const std::string& line)
{
@@ -126,8 +126,8 @@
bool fixStage;
};
-re::pattern DVDAuthorVOB_RE( "^STAT: VOBU "RG_NUM" at "RG_NUM"MB");
-re::pattern DVDAuthorFix_RE( "^STAT: fixing VOBU at "RG_NUM"MB \\("RG_NUM"/"RG_NUM", "RG_NUM"%\\)");
+re::pattern DVDAuthorVOB_RE( "^STAT: VOBU " RG_NUM " at " RG_NUM "MB");
+re::pattern DVDAuthorFix_RE( "^STAT: fixing VOBU at " RG_NUM "MB \\(" RG_NUM "/" RG_NUM ", " RG_NUM "%\\)");
void DVDAuthorPP::Filter(const std::string& line)
{
@@ -157,7 +157,7 @@
if( p )
of.SetProgress(p);
- static re::pattern ch_error_re("ERR:.*Cannot jump to chapter "RG_NUM" of title "RG_NUM", only "RG_NUM" exist");
+ static re::pattern ch_error_re("ERR:.*Cannot jump to chapter " RG_NUM " of title " RG_NUM ", only " RG_NUM " exist");
if( re::search(line, what, ch_error_re) )
{
std::string& err_str = of.firstError;
--- bombono-dvd-1.2.2/src/mgui/author/render.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/author/render.cpp 2015-11-20 18:50:40.550342794 +0330
@@ -866,7 +866,7 @@
//
// :KLUDGE: (только) в ffmpeg, avformat 53.13.0, поменяли . на : => надо
// самим открывать файл и узнавать индекс!
- static re::pattern audio_idx("Stream #"RG_NUM"[\\.|:]"RG_NUM".*Audio:");
+ static re::pattern audio_idx("Stream #" RG_NUM "[\\.|:]" RG_NUM ".*Audio:");
re::match_results what;
// флаг означает, что перевод строки не может быть точкой
@@ -1221,17 +1221,17 @@
{
CheckNoCodecs(CheckForCodecList(conts));
- static re::pattern dvd_format("^ .E dvd"RG_EW);
+ static re::pattern dvd_format("^ .E dvd" RG_EW);
CheckStrippedFFmpeg(dvd_format, conts, "dvd format");
// :TRICKY: с версии libavcodec 54 при выводе начальный пробел не ставят => поэтому ?
// ("спасибо" Anton Khirnov за очередное "улучшение")
#define _CPP_ "^ ?"
- static re::pattern mpeg2video_codec(_CPP_".EV... mpeg2video"RG_EW);
+ static re::pattern mpeg2video_codec(_CPP_ ".EV... mpeg2video" RG_EW);
CheckStrippedFFmpeg(mpeg2video_codec, conts, "mpeg2 video encoder");
// по факту ffmpeg всегда использует ac3, однако mp2 тоже возможен
- static re::pattern ac3_codec(_CPP_".EA... ac3"RG_EW);
+ static re::pattern ac3_codec(_CPP_ ".EA... ac3" RG_EW);
CheckStrippedFFmpeg(ac3_codec, conts, "ac3 audio encoder");
#undef _CPP_
}
@@ -1241,7 +1241,7 @@
// * ищем версию libavfilter
// пример: " libavfilter 0. 4. 0 / "
#define RG_PADNUM RG_SPS RG_NUM
- std::string reg_str = boost::format(RG_BW"%1%"RG_PADNUM"\\."RG_PADNUM"\\."RG_PADNUM" / ")
+ std::string reg_str = boost::format(RG_BW "%1%" RG_PADNUM "\\." RG_PADNUM "\\." RG_PADNUM " / ")
% avlib_name % bf::stop;
re::pattern avfilter_version(reg_str.c_str());
return FindVersion(conts, avfilter_version, AVCnvBin(), avlib_name);
--- bombono-dvd-1.2.2/src/mgui/author/script.cpp 2015-11-20 18:40:35.770379359 +0330
+++ new/src/mgui/author/script.cpp 2015-11-20 19:02:42.020299175 +0330
@@ -755,9 +755,9 @@
// ffmpeg выводит статистику первого создаваемого файла каждые полсекунды,
// см. print_report() (при verbose=1, по умолчанию)
// Формат размера: "size=%8.0fkB"
-re::pattern FFmpegSizePat( "size= *"RG_NUM"kB");
+re::pattern FFmpegSizePat( "size= *" RG_NUM "kB");
// Формат длительности: "time=%0.2f"
-re::pattern FFmpegDurPat( "time="RG_FLT);
+re::pattern FFmpegDurPat( "time=" RG_FLT);
static void OnTranscodePrintParse(const char* dat, int sz, const PercentFunctor& fnr)
{
@@ -787,7 +787,7 @@
// Формат длительности для ffmpeg c коммита dd471070: "time=%02d:%02d:%02d.%02d"
// Образец: frame= 208 fps= 58 q=2.0 size= 476kB time=00:00:08.44 bitrate= 461.9kbits/s dup=1 drop=0
-re::pattern FFmpegNewDurPat( "time="RG_NUM":"RG_NUM":"RG_FLT);
+re::pattern FFmpegNewDurPat( "time=" RG_NUM ":" RG_NUM ":" RG_FLT);
static void OnTranscodeHMSParse(const char* dat, int sz, const PercentFunctor& fnr)
{
@@ -1136,7 +1136,7 @@
// 2) парсер dvdauthor не любит незнакомые ему атрибуты => spumux < 0.7 не работает
std::string help_str;
PipeOutput("spumux -h", help_str);
- static re::pattern spumux_version("DVDAuthor::spumux, version "RG_NUM"\\."RG_NUM"\\."RG_NUM"\\.\n");
+ static re::pattern spumux_version("DVDAuthor::spumux, version " RG_NUM "\\." RG_NUM "\\." RG_NUM "\\.\n");
if( IsVersionGE(FindVersion(help_str, spumux_version, "spumux"), TripleVersion(0, 7, 0)) )
AddFormatAttr(sp);
--- bombono-dvd-1.2.2/src/mgui/project/browser.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/project/browser.cpp 2015-11-20 19:03:52.983628220 +0330
@@ -328,7 +328,7 @@
return hb;
}
-std::string MediaItemDnDTVType() { return "DnDTreeView<"DND_MI_NAME">"; }
+std::string MediaItemDnDTVType() { return "DnDTreeView<" DND_MI_NAME ">"; }
void SetupBrowser(ObjectBrowser& brw, int dnd_column, bool is_media_brw)
{
--- bombono-dvd-1.2.2/src/mgui/project/menu-actions.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/project/menu-actions.cpp 2015-11-20 19:17:23.516912549 +0330
@@ -187,7 +187,7 @@
txt.MediaItem().ClearLink();
}
-void UpdateMenuRegionObject(Comp::Object* obj, const Point& menu_sz, RectListRgn& lst)
+void UpdateMenuRegionObject(Comp::Object* obj, Point menu_sz, RectListRgn& lst)
{
MenuRegionEraserVis vis(obj, menu_sz, lst);
//PrimaryRegionEraserVis vis(obj, false);
@@ -198,7 +198,7 @@
{
CanvasBuf& cb = mp.thRgn.GetCanvasBuf();
ForeachLinked(mp.Owner(), bb::bind(&UpdateMenuRegionObject,
- _1, boost::cref(cb.Size()),
+ _1, cb.Size(),
boost::ref(cb.RenderList())));
}
--- bombono-dvd-1.2.2/src/mgui/dvdimport.cpp 2015-11-20 18:22:23.123778752 +0330
+++ new/src/mgui/dvdimport.cpp 2015-11-20 18:22:11.813779436 +0330
@@ -275,7 +275,7 @@
id.errLbl.hide();
id.reader = rd;
- SetCurPageComplete(id.ast, id.reader);
+ SetCurPageComplete(id.ast, id.reader != nullptr);
return rd;
}
--- bombono-dvd-1.2.2/src/mgui/author/script.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/author/script.cpp 2015-11-20 18:29:40.877085620 +0330
@@ -279,7 +279,7 @@
ASSERT_RTL( vi || mn );
// VTS domain
- bool is_video = vi;
+ bool is_video = vi != nullptr;
const PostAction& pa = is_video ? vi->PAction() : mn->MtnData().pAct ;
std::string jnt_cmd;
--- bombono-dvd-1.2.2/src/mgui/project/add.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/project/add.cpp 2015-11-20 18:40:01.493714764 +0330
@@ -415,7 +415,7 @@
{
std::string err_str;
Gtk::TreePath pth;
- bool res = TryAddMedia(fname.c_str(), pth, err_str);
+ bool res = TryAddMedia(fname.c_str(), pth, err_str) != nullptr;
if( !res )
{
LOG_ERR << "TryAddMediaQuiet error (" << desc << "): " << err_str << io::endl;
@@ -538,7 +538,7 @@
continue;
}
- bool res = TryAddMedia(fpath.c_str(), brw_pth, err_str, insert_after);
+ bool res = TryAddMedia(fpath.c_str(), brw_pth, err_str, insert_after) != nullptr;
if( res )
{
insert_after = true; // вставляем друг за другом
--- bombono-dvd-1.2.2/src/mgui/project/media-browser.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/project/media-browser.cpp 2015-11-20 19:06:49.926950853 +0330
@@ -854,7 +854,7 @@
Gtk::MenuItem& ea_itm = AppendMI(mn, NewManaged<Gtk::MenuItem>(_("End Action")));
// только видео
VideoItem vi = IsVideo(mi);
- if( SetEnabled(ea_itm, vi) )
+ if( SetEnabled(ea_itm, vi != nullptr) )
ea_itm.set_submenu(EndActionMenuBld(vi->PAction(), boost::function_identity,
VideoAddConstantChoice).Create());
@@ -863,10 +863,10 @@
// калькулятор
AddDialogItem(mn, DialogParams(_("Bitrate Calculator"), bb::bind(&RunBitrateCalc, vi, _1, b::ref(brw)),
350, &brw), tr_enabled);
- AddEnabledItem(mn, _("Reason For Transcoding"), bb::bind(&ShowDVDCompliantStatus, vi), vi);
+ AddEnabledItem(mn, _("Reason For Transcoding"), bb::bind(&ShowDVDCompliantStatus, vi), vi != nullptr);
AppendSeparator(mn);
- AddDialogItem(mn, SubtitlesDialog(vi, &brw), vi);
+ AddDialogItem(mn, SubtitlesDialog(vi, &brw), vi != nullptr);
Popup(mn, event, true);
}
--- bombono-dvd-1.2.2/src/mgui/project/thumbnail.cpp 2013-03-08 00:50:45.000000000 +0330
+++ new/src/mgui/project/thumbnail.cpp 2015-11-20 19:22:23.963561051 +0330
@@ -410,7 +410,7 @@
{
if( AData().FirstPlayItem() != mi )
return;
- bool is_menu = IsMenu(mi);
+ bool is_menu = IsMenu(mi) != nullptr;
RefPtr<Gdk::Pixbuf> emblem = GetCheckEmblem(pix, is_menu
? "copy-n-paste/HelixPlayer_Activity-watch-listen/28.png"
: "copy-n-paste/HelixPlayer_Activity-watch-listen/16.png");
# $Id: PKGBUILD
# 2015.03.13 one more patch from gentoo
pkgname=bombono-dvd
pkgver=1.2.2
pkgrel=4
pkgdesc="DVD authoring program with nice and clean GUI"
arch=('i686' 'x86_64')
url="http://www.bombono.org"
license=('GPL')
depends=('gtk2' 'gtkmm' 'mjpegtools' 'ffmpeg' 'libdvdread' 'dvdauthor' \
'dvd+rw-tools' 'twolame' 'libxml++' 'boost' 'enca' 'cdrkit')
makedepends=('scons')
optdepends=('gvfs: web browser integration')
conflicts=('bombono-dvd-git')
source=(http://downloads.sourceforge.net/bombono/$pkgname-$pkgver.tar.bz2
fix_ffmpeg_codecid.patch bombono-dvd-1.2.2-ffmpeg26.patch
fix_ptr2bool_cast.patch fix_c++11_literal_warnings.patch fix_crefoftemp_bug.patch)
install=bombono-dvd.install
sha256sums=('3ffaadc803dc2526d2805629ee928800ce150cb2e6a40b6724d898c76366f68b'
'decc8f9261b0fcd18780080438c9fc4297d56a281355f195a5dee9a92abf474a'
'ee89adeff7bd19d731eac96c180d5d59766bb3a68f3b21b898199e1cb6c5639e'
'9471454c97d8b91b4234085f1eabc625d9e23e76a91266b205dc3f79553322b9'
'31dfc5400d450490a53bbd386bafb59d68a9a2d6f9036755419d3be035aa87be'
'0ea8ad5ccf64d30d0463e9bde5b07abdedd00e2da2fa7f3f72de99aa3915a64c')
prepare() {
cd "${pkgname}-${pkgver}"
patch -Np1 -i "${srcdir}/fix_ffmpeg_codecid.patch"
patch -Np1 -i "${srcdir}/bombono-dvd-1.2.2-ffmpeg26.patch"
patch -Np1 -i "${srcdir}/fix_ptr2bool_cast.patch"
patch -Np1 -i "${srcdir}/fix_c++11_literal_warnings.patch"
patch -Np1 -i "${srcdir}/fix_crefoftemp_bug.patch"
# python2 fix
for file in $(find . -name '*.py' -print); do
sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file
sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
done
for file in $(find . -name 'SConscript*' -print); do
sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file
sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
done
for file in $(find . -name 'menu_SConscript*' -print); do
sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file
sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
done
sed -i -e 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' Autoconfig
for file in $(find . -name 'SConstruct*' -print); do
sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file
sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
done
}
build() {
cd "${pkgname}-${pkgver}"
scons PREFIX="/usr" DESTDIR="$pkgdir" CPPFLAGS="-std=c++11 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_FILESYSTEM_VERSION=3" USE_EXT_BOOST=1
}
package() {
cd "${pkgname}-${pkgver}"
scons PREFIX="/usr" DESTDIR="$pkgdir" install
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment