diff options
-rw-r--r-- | multimedia/olive/README | 19 | ||||
-rw-r--r-- | multimedia/olive/doinst.sh | 14 | ||||
-rw-r--r-- | multimedia/olive/olive-0.1.2-FlowLayout.patch | 12 | ||||
-rw-r--r-- | multimedia/olive/olive-0.1.2-QFontMetrics.patch | 121 | ||||
-rw-r--r-- | multimedia/olive/olive-0.1.2-QPainterPath.patch | 44 | ||||
-rw-r--r-- | multimedia/olive/olive-0.1.2-QWheelEvent.patch | 21 | ||||
-rw-r--r-- | multimedia/olive/olive-0.1.2-appdata-desktop.patch | 24 | ||||
-rw-r--r-- | multimedia/olive/olive-0.1.2-cacher.patch | 24 | ||||
-rw-r--r-- | multimedia/olive/olive-0.1.2-clickablelabel.patch | 14 | ||||
-rw-r--r-- | multimedia/olive/olive-0.1.2-proxygenerator.patch | 18 | ||||
-rw-r--r-- | multimedia/olive/olive.SlackBuild | 109 | ||||
-rw-r--r-- | multimedia/olive/olive.info | 10 | ||||
-rw-r--r-- | multimedia/olive/slack-desc | 19 |
13 files changed, 449 insertions, 0 deletions
diff --git a/multimedia/olive/README b/multimedia/olive/README new file mode 100644 index 0000000000..ef98d61e26 --- /dev/null +++ b/multimedia/olive/README @@ -0,0 +1,19 @@ +Olive is a cross-platform video editing application licensed under +the GNU GPL version 3. The plan of the development team is to combine +complete colour managment, a fast and high-fidelity float-based +render pipeline, node-based compositing and audio-mixing, and a +highly efficient automated disk cache all together in one program. + +It should be noted that Olive is still in the early alpha stages of +development, and thus should not be used for serious projects; if you +do choose to use Olive for any serious projects, frequent backups of +said projects are highly recommended. + +This SlackBuild packages an older version of Olive (0.1.2), which is +the latest stable version as of this writing. + +The patches in this SlackBuild were originally written by Tércio +Martins for Arch's Olive AUR, and have been graciously re-used here +with his permission. + +Homepage: https://olivevideoeditor.org/ diff --git a/multimedia/olive/doinst.sh b/multimedia/olive/doinst.sh new file mode 100644 index 0000000000..262eb5a9e5 --- /dev/null +++ b/multimedia/olive/doinst.sh @@ -0,0 +1,14 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + +if [ -x /usr/bin/update-mime-database ]; then + /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + +# If other icon themes are installed, then add to/modify this as needed +if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1 + fi +fi diff --git a/multimedia/olive/olive-0.1.2-FlowLayout.patch b/multimedia/olive/olive-0.1.2-FlowLayout.patch new file mode 100644 index 0000000000..cde40310e9 --- /dev/null +++ b/multimedia/olive/olive-0.1.2-FlowLayout.patch @@ -0,0 +1,12 @@ +diff --unified --recursive --text olive-0.1.2-orig/ui/flowlayout.cpp olive-0.1.2-new/ui/flowlayout.cpp +--- olive-0.1.2-orig/ui/flowlayout.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/flowlayout.cpp 2020-06-23 18:29:57.338203268 -0300 +@@ -114,7 +114,7 @@ +
+ Qt::Orientations FlowLayout::expandingDirections() const
+ {
+- return 0;
++ return { };
+ }
+
+ bool FlowLayout::hasHeightForWidth() const
diff --git a/multimedia/olive/olive-0.1.2-QFontMetrics.patch b/multimedia/olive/olive-0.1.2-QFontMetrics.patch new file mode 100644 index 0000000000..3731aad17b --- /dev/null +++ b/multimedia/olive/olive-0.1.2-QFontMetrics.patch @@ -0,0 +1,121 @@ +diff --unified --recursive --text olive-0.1.2-orig/effects/internal/texteffect.cpp olive-0.1.2-new/effects/internal/texteffect.cpp +--- olive-0.1.2-orig/effects/internal/texteffect.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/effects/internal/texteffect.cpp 2020-06-23 17:41:00.714422192 -0300 +@@ -183,11 +183,11 @@ + if (word_wrap_field->GetBoolAt(timecode)) { + for (int i=0;i<lines.size();i++) { + QString s(lines.at(i)); +- if (fm.width(s) > width) { ++ if (fm.horizontalAdvance(s) > width) { + int last_space_index = 0; + for (int j=0;j<s.length();j++) { + if (s.at(j) == ' ') { +- if (fm.width(s.left(j)) > width) { ++ if (fm.horizontalAdvance(s.left(j)) > width) { + break; + } else { + last_space_index = j; +@@ -211,11 +211,11 @@ + + switch (halign_field->GetValueAt(timecode).toInt()) { + case Qt::AlignLeft: text_x = 0; break; +- case Qt::AlignRight: text_x = width - fm.width(lines.at(i)); break; ++ case Qt::AlignRight: text_x = width - fm.horizontalAdvance(lines.at(i)); break; + case Qt::AlignJustify: + // add spaces until the string is too big + text_x = 0; +- while (fm.width(lines.at(i)) < width) { ++ while (fm.horizontalAdvance(lines.at(i)) < width) { + bool space = false; + QString spaced(lines.at(i)); + for (int i=0;i<spaced.length();i++) { +@@ -228,7 +228,7 @@ + while (i < spaced.length() && spaced.at(i) == ' ') i++; + } + } +- if (fm.width(spaced) > width || !space) { ++ if (fm.horizontalAdvance(spaced) > width || !space) { + break; + } else { + lines[i] = spaced; +@@ -237,7 +237,7 @@ + break; + case Qt::AlignHCenter: + default: +- text_x = (width/2) - (fm.width(lines.at(i))/2); ++ text_x = (width/2) - (fm.horizontalAdvance(lines.at(i))/2); + break; + } + +diff --unified --recursive --text olive-0.1.2-orig/effects/internal/timecodeeffect.cpp olive-0.1.2-new/effects/internal/timecodeeffect.cpp +--- olive-0.1.2-orig/effects/internal/timecodeeffect.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/effects/internal/timecodeeffect.cpp 2020-06-23 17:41:51.815020590 -0300 +@@ -117,7 +117,7 @@ + + int text_x, text_y, rect_y, offset_x, offset_y; + int text_height = fm.height(); +- int text_width = fm.width(display_timecode); ++ int text_width = fm.horizontalAdvance(display_timecode); + QColor background_color = color_bg_val->GetColorAt(timecode); + int alpha_val = qCeil(bg_alpha->GetDoubleAt(timecode)*2.55); + background_color.setAlpha(alpha_val); +diff --unified --recursive --text olive-0.1.2-orig/ui/graphview.cpp olive-0.1.2-new/ui/graphview.cpp +--- olive-0.1.2-orig/ui/graphview.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/graphview.cpp 2020-06-23 17:38:31.572539882 -0300 +@@ -175,7 +175,7 @@ + void GraphView::draw_line_text(QPainter &p, bool vert, int line_no, int line_pos, int next_line_pos) {
+ // draws last line's text
+ QString str = QString::number(line_no*kGraphSize);
+- int text_sz = vert ? fontMetrics().height() : fontMetrics().width(str);
++ int text_sz = vert ? fontMetrics().height() : fontMetrics().horizontalAdvance(str);
+ if (text_sz < (next_line_pos - line_pos)) {
+ QRect text_rect = vert ? QRect(0, line_pos-50, 50, 50) : QRect(line_pos, height()-50, 50, 50);
+ p.drawText(text_rect, Qt::AlignBottom | Qt::AlignLeft, str);
+diff --unified --recursive --text olive-0.1.2-orig/ui/sourceiconview.cpp olive-0.1.2-new/ui/sourceiconview.cpp +--- olive-0.1.2-orig/ui/sourceiconview.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/sourceiconview.cpp 2020-06-23 17:42:48.155657141 -0300 +@@ -140,7 +140,7 @@ + painter->setPen(text_fgcolor);
+
+ QString duration_str = index.data(Qt::UserRole).toString();
+- int timecode_width = fm.width(duration_str);
++ int timecode_width = fm.horizontalAdvance(duration_str);
+ int max_name_width = option.rect.width();
+
+ if (timecode_width < option.rect.width() / 2) {
+diff --unified --recursive --text olive-0.1.2-orig/ui/timelineheader.cpp olive-0.1.2-new/ui/timelineheader.cpp +--- olive-0.1.2-orig/ui/timelineheader.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/timelineheader.cpp 2020-06-23 17:43:45.496282517 -0300 +@@ -390,7 +390,7 @@ + bool draw_text = false;
+ if (text_enabled && lineX-textWidth > lastTextBoundary) {
+ timecode = frame_to_timecode(frame + in_visible, olive::CurrentConfig.timecode_view, viewer->seq->frame_rate);
+- fullTextWidth = fm.width(timecode);
++ fullTextWidth = fm.horizontalAdvance(timecode);
+ textWidth = fullTextWidth>>1;
+
+ text_x = lineX;
+diff --unified --recursive --text olive-0.1.2-orig/ui/timelinewidget.cpp olive-0.1.2-new/ui/timelinewidget.cpp +--- olive-0.1.2-orig/ui/timelinewidget.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/timelinewidget.cpp 2020-06-23 17:39:05.582988929 -0300 +@@ -3162,7 +3162,7 @@ + }
+ if (clip->linked.size() > 0) {
+ int underline_y = olive::timeline::kClipTextPadding + p.fontMetrics().height() + clip_rect.top();
+- int underline_width = qMin(text_rect.width() - 1, p.fontMetrics().width(clip->name()));
++ int underline_width = qMin(text_rect.width() - 1, p.fontMetrics().horizontalAdvance(clip->name()));
+ p.drawLine(text_rect.x(), underline_y, text_rect.x() + underline_width, underline_y);
+ }
+ QString name = clip->name();
+diff --unified --recursive --text olive-0.1.2-orig/ui/viewerwindow.cpp olive-0.1.2-new/ui/viewerwindow.cpp +--- olive-0.1.2-orig/ui/viewerwindow.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/viewerwindow.cpp 2020-06-23 17:44:21.156661091 -0300 +@@ -172,7 +172,7 @@ + p.setPen(Qt::white);
+ p.setBrush(QColor(0, 0, 0, 128));
+
+- int text_width = fm.width(fs_str);
++ int text_width = fm.horizontalAdvance(fs_str);
+ int text_x = (width()/2)-(text_width/2);
+ int text_y = fm.height()+fm.ascent();
+
diff --git a/multimedia/olive/olive-0.1.2-QPainterPath.patch b/multimedia/olive/olive-0.1.2-QPainterPath.patch new file mode 100644 index 0000000000..07cb22eae3 --- /dev/null +++ b/multimedia/olive/olive-0.1.2-QPainterPath.patch @@ -0,0 +1,44 @@ +diff --unified --recursive --text olive-0.1.2-orig/effects/internal/texteffect.cpp olive-0.1.2-new/effects/internal/texteffect.cpp +--- olive-0.1.2-orig/effects/internal/texteffect.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/effects/internal/texteffect.cpp 2020-06-23 03:57:45.377783457 -0300 +@@ -25,6 +25,7 @@ + #include <QOpenGLTexture> + #include <QTextEdit> + #include <QPainter> ++#include <QPainterPath> + #include <QPushButton> + #include <QColorDialog> + #include <QFontDatabase> +diff --unified --recursive --text olive-0.1.2-orig/effects/internal/timecodeeffect.cpp olive-0.1.2-new/effects/internal/timecodeeffect.cpp +--- olive-0.1.2-orig/effects/internal/timecodeeffect.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/effects/internal/timecodeeffect.cpp 2020-06-23 05:44:58.589605133 -0300 +@@ -25,6 +25,7 @@ + #include <QOpenGLTexture> + #include <QTextEdit> + #include <QPainter> ++#include <QPainterPath> + #include <QPushButton> + #include <QColorDialog> + #include <QFontDatabase> +diff --unified --recursive --text olive-0.1.2-orig/ui/graphview.cpp olive-0.1.2-new/ui/graphview.cpp +--- olive-0.1.2-orig/ui/graphview.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/graphview.cpp 2020-06-23 05:48:06.800458024 -0300 +@@ -21,6 +21,7 @@ + #include "graphview.h"
+
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QMouseEvent>
+ #include <QtMath>
+ #include <cfloat>
+diff --unified --recursive --text olive-0.1.2-orig/ui/timelineheader.cpp olive-0.1.2-new/ui/timelineheader.cpp +--- olive-0.1.2-orig/ui/timelineheader.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/timelineheader.cpp 2020-06-23 05:48:36.440594616 -0300 +@@ -21,6 +21,7 @@ + #include "timelineheader.h"
+
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QMouseEvent>
+ #include <QScrollBar>
+ #include <QtMath>
diff --git a/multimedia/olive/olive-0.1.2-QWheelEvent.patch b/multimedia/olive/olive-0.1.2-QWheelEvent.patch new file mode 100644 index 0000000000..5270f51bb2 --- /dev/null +++ b/multimedia/olive/olive-0.1.2-QWheelEvent.patch @@ -0,0 +1,21 @@ +diff --unified --recursive --text olive-0.1.2-orig/ui/graphview.cpp olive-0.1.2-new/ui/graphview.cpp +--- olive-0.1.2-orig/ui/graphview.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/graphview.cpp 2020-06-23 17:55:37.852888364 -0300 +@@ -795,7 +795,7 @@ + new_y_zoom = y_zoom + (zoom_diff * (delta_v / 120.0));
+
+ // Center zoom around the mouse cursor vertically
+- int true_mouse_y = height()-event->pos().y();
++ int true_mouse_y = height()-event->position().y();
+ set_scroll_y(qRound((double(y_scroll + true_mouse_y) / y_zoom) * new_y_zoom) - true_mouse_y);
+
+ redraw = true;
+@@ -807,7 +807,7 @@ + new_x_zoom = x_zoom + (zoom_diff * (delta_h / 120.0));
+
+ // Center zoom around the mouse cursor horizontally
+- set_scroll_x(qRound((double(x_scroll + event->pos().x()) / x_zoom) * new_x_zoom) - event->pos().x());
++ set_scroll_x(qRound((double(x_scroll + event->position().x()) / x_zoom) * new_x_zoom) - event->position().x());
+
+ redraw = true;
+ }
diff --git a/multimedia/olive/olive-0.1.2-appdata-desktop.patch b/multimedia/olive/olive-0.1.2-appdata-desktop.patch new file mode 100644 index 0000000000..b2b4e46613 --- /dev/null +++ b/multimedia/olive/olive-0.1.2-appdata-desktop.patch @@ -0,0 +1,24 @@ +diff --unified --recursive --text olive-0.1.2-orig/packaging/linux/org.olivevideoeditor.Olive.appdata.xml olive-0.1.2-new/packaging/linux/org.olivevideoeditor.Olive.appdata.xml +--- olive-0.1.2-orig/packaging/linux/org.olivevideoeditor.Olive.appdata.xml 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/packaging/linux/org.olivevideoeditor.Olive.appdata.xml 2020-06-23 22:02:58.793224798 -0300 +@@ -31,7 +31,6 @@ + </screenshots> + <content_rating type="oars-1.1" /> + <releases> +- <release version="20181223" date="2018-12-23"></release> +- <release version="20181130" date="2018-11-30"></release> ++ <release version="0.1.2" date="2019-11-11"/> + </releases> + </component> +diff --unified --recursive --text olive-0.1.2-orig/packaging/linux/org.olivevideoeditor.Olive.desktop olive-0.1.2-new/packaging/linux/org.olivevideoeditor.Olive.desktop +--- olive-0.1.2-orig/packaging/linux/org.olivevideoeditor.Olive.desktop 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/packaging/linux/org.olivevideoeditor.Olive.desktop 2020-06-23 22:03:16.533367553 -0300 +@@ -3,7 +3,7 @@ + Comment=Professional open-source non-linear video editor + Comment[it]=Programma di montaggio video professionale open-source + Comment[id]=Aplikasi edit video yang non-linier, profesional serta sumbernya terbuka. +-Exec=olive-editor ++Exec=olive-editor %f + Icon=org.olivevideoeditor.Olive + Terminal=false + Type=Application diff --git a/multimedia/olive/olive-0.1.2-cacher.patch b/multimedia/olive/olive-0.1.2-cacher.patch new file mode 100644 index 0000000000..e93ed3e52b --- /dev/null +++ b/multimedia/olive/olive-0.1.2-cacher.patch @@ -0,0 +1,24 @@ +diff --unified --recursive --text olive-0.1.2-orig/rendering/cacher.cpp olive-0.1.2-new/rendering/cacher.cpp +--- olive-0.1.2-orig/rendering/cacher.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/rendering/cacher.cpp 2020-06-23 16:08:47.307076532 -0300 +@@ -254,7 +254,7 @@ + dout << "starting rev_frame";
+ #endif
+ rev_frame->nb_samples = 0;
+- rev_frame->pts = frame_->pkt_pts;
++ rev_frame->pts = frame_->pts;
+ }
+ int offset = rev_frame->nb_samples * av_get_bytes_per_sample(static_cast<AVSampleFormat>(rev_frame->format)) * rev_frame->channels;
+ #ifdef AUDIOWARNINGS
+@@ -277,9 +277,9 @@ + /*
+ #ifdef AUDIOWARNINGS
+ dout << "time for the end of rev cache" << rev_frame->nb_samples << clip->rev_target << frame_->pts << frame_->pkt_duration << frame_->nb_samples;
+- dout << "diff:" << (frame_->pkt_pts + frame_->pkt_duration) - clip->rev_target;
++ dout << "diff:" << (frame_->pts + frame_->pkt_duration) - clip->rev_target;
+ #endif
+- int cutoff = qRound64((((frame_->pkt_pts + frame_->pkt_duration) - reverse_target) * timebase) * audio_output->format().sampleRate());
++ int cutoff = qRound64((((frame_->pts + frame_->pkt_duration) - reverse_target) * timebase) * audio_output->format().sampleRate());
+ if (cutoff > 0) {
+ #ifdef AUDIOWARNINGS
+ dout << "cut off" << cutoff << "samples (rate:" << audio_output->format().sampleRate() << ")";
diff --git a/multimedia/olive/olive-0.1.2-clickablelabel.patch b/multimedia/olive/olive-0.1.2-clickablelabel.patch new file mode 100644 index 0000000000..f0e8d93f9f --- /dev/null +++ b/multimedia/olive/olive-0.1.2-clickablelabel.patch @@ -0,0 +1,14 @@ +diff --unified --recursive --text olive-0.1.2-orig/ui/clickablelabel.h olive-0.1.2-new/ui/clickablelabel.h +--- olive-0.1.2-orig/ui/clickablelabel.h 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/ui/clickablelabel.h 2020-06-23 14:12:08.786765041 -0300 +@@ -31,8 +31,8 @@ + class ClickableLabel : public QLabel {
+ Q_OBJECT
+ public:
+- ClickableLabel(QWidget * parent = 0, Qt::WindowFlags f = 0);
+- ClickableLabel(const QString & text, QWidget * parent = 0, Qt::WindowFlags f = 0);
++ ClickableLabel(QWidget * parent = 0, Qt::WindowFlags f = Qt::Widget);
++ ClickableLabel(const QString & text, QWidget * parent = 0, Qt::WindowFlags f = Qt::Widget);
+ void mousePressEvent(QMouseEvent *ev);
+ signals:
+ void clicked();
diff --git a/multimedia/olive/olive-0.1.2-proxygenerator.patch b/multimedia/olive/olive-0.1.2-proxygenerator.patch new file mode 100644 index 0000000000..1fab14f604 --- /dev/null +++ b/multimedia/olive/olive-0.1.2-proxygenerator.patch @@ -0,0 +1,18 @@ +diff --unified --recursive --text olive-0.1.2-orig/project/proxygenerator.cpp olive-0.1.2-new/project/proxygenerator.cpp +--- olive-0.1.2-orig/project/proxygenerator.cpp 2019-11-11 03:05:02.000000000 -0300 ++++ olive-0.1.2-new/project/proxygenerator.cpp 2020-06-23 21:07:29.808353198 -0300 +@@ -167,7 +167,13 @@ + }
+
+ // write video header
+- avformat_write_header(output_fmt_ctx, nullptr);
++ int error_code;
++ error_code = avformat_write_header(output_fmt_ctx, nullptr);
++ if (error_code < 0) {
++ qWarning() << "Failed to write video header";
++ cancelled = true;
++ skip = true;
++ }
+
+ // packet that av_read_frame will dump file packets into
+ AVPacket packet;
diff --git a/multimedia/olive/olive.SlackBuild b/multimedia/olive/olive.SlackBuild new file mode 100644 index 0000000000..f18c92a336 --- /dev/null +++ b/multimedia/olive/olive.SlackBuild @@ -0,0 +1,109 @@ +#!/bin/bash + +# Slackware build script for olive + +# Copyright 2022 Bloyburt +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=olive +VERSION=${VERSION:-0.1.2} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Apply the various patches +for i in $CWD/*.patch; do patch -p1 < $i; done + +mkdir -p build +cd build + cmake \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release .. + make + make install/strip DESTDIR=$PKG +cd .. + +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a *.md $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/multimedia/olive/olive.info b/multimedia/olive/olive.info new file mode 100644 index 0000000000..111a4eb8c5 --- /dev/null +++ b/multimedia/olive/olive.info @@ -0,0 +1,10 @@ +PRGNAM="olive" +VERSION="0.1.2" +HOMEPAGE="https://olivevideoeditor.org/" +DOWNLOAD="https://github.com/olive-editor/olive/archive/0.1.2/olive-0.1.2.tar.gz" +MD5SUM="69f391ff44060ae08c7a462d71504515" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="openimageio opencolorio graphviz" +MAINTAINER="Bloyburt" +EMAIL="alexpen@startmail.com" diff --git a/multimedia/olive/slack-desc b/multimedia/olive/slack-desc new file mode 100644 index 0000000000..11c6938a5a --- /dev/null +++ b/multimedia/olive/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +olive: olive (Olive Video Editor) +olive: +olive: Olive is a cross-platform video editing application licensed under +olive: the GNU GPL version 3. The plan of the development team is to combine +olive: complete colour managment, a fast and high-fidelity float-based +olive: render pipeline, node-based compositing and audio-mixing, and a +olive: highly efficient automated disk cache all together in one program. +olive: +olive: Homepage: https://olivevideoeditor.org/ +olive: +olive: |