multimedia/olive: Added (Olive Video Editor)
Signed-off-by: Dave Woodfall <dave@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
c45fa88c8c
commit
f388a2c154
|
@ -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/
|
|
@ -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
|
|
@ -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
|
|
@ -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();
|
||||
|
|
@ -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>
|
|
@ -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;
|
||||
}
|
|
@ -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
|
|
@ -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() << ")";
|
|
@ -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();
|
|
@ -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;
|
|
@ -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
|
|
@ -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"
|
|
@ -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:
|
Loading…
Reference in New Issue