Du bist nicht angemeldet.
Seiten: 1
Für Arch Linux gibt es QDVDAuthor Pakete.
Damit kann man Video DVDs und Photo slideshows erstellen.
Beitrag geändert von vmp (18.11.2019 20:57:23)
Offline
Beim Zusammenbau von qdvdauthor gibt es ein Problem mit Verlinken von qrender, da bei dem Paket ffmpeg067 die shared libraries libavcodec.a beim Paketzusammenbau entfernt werden so meine Vermutung.
Offline
So nachdem wir alles administrative mal kurz schnell hier geklärt haben, zum Thema.
vmp, baust du das Paket selbst? Die Downloadquelle zeigt bereits fertig gebaute Pakete. In wie weit man diesen Vertrauen kann, weiß ich zwar nicht, aber was passiert, wenn du qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz herunterlädst und mittels pacman -U installierst? ffmpeg ist in den Arch-Repos vorhanden, und kann ganz normal mit pacman installiert werden.
Offline
Ich kann die Pakete unter OpenSuSE build service für Arch Linux selber bauen.
qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz ist zwar vorhanden enthält aber keine Dateien, da bloß 3,1 KiB groß.
Um qdvdauthor zu bauen benötigt man ein altes ffmpeg in der Version 0.6.7 (ffmpeg067). Da aber im ffmpeg067 (ffmpeg067-0.6.7-1-x86_64.pkg.tar.gz) solche Dateien wie libavcodec.a nach dem Zusammenbau des Pakets automatisch entfernt werden gelingt das compilieren von qdvdauthor nicht wegen einem Linker Problem.
Ich habe in PKGBUILD von ffmpeg067: options=('staticlibs') eingefügt um libavcodec.a zu behalten es wird aber trotzdem wieder gelöscht.
Am eigenem Rechner habe ich kein Arch Linux installiert bloß OpenSuSE.
Beitrag geändert von vmp (18.11.2019 20:59:30)
Offline
Am eigenem Rechner habe ich kein Arch Linux installiert bloß OpenSuSE.
Dann solltest du vielleicht in einem OpenSUSE-Forum nachfragen, wie man für Arch Linux Programme kompiliert.
Offline
Ich habe in Netz folgendes dazu gefunden:
Any reason the PKGBUILD only installs the dynamic .so file and not the static .a one?
Antwort:
Arch doesn't provide static libraries
Offline
Wie installierst du ffmpeg067-0.6.7-1-x86_64.pkg.tar.gz in der Umgebung, in der du qdvdauthor baust?
Offline
Ich habe in Netz folgendes dazu gefunden:
Any reason the PKGBUILD only installs the dynamic .so file and not the static .a one?
Antwort:
Arch doesn't provide static libraries
Das ist so, aber das sollte dich nicht hindern, es für deine Gegebenheiten anders zu machen.
Du solltest mal genau beschreiben, was du gemacht hast und was dabei passiert ist.
options=('staticlibs') steht da übrigens nicht, sondern OPTIONS=('staticlibs'). Ersteres wäre korrekt.
Offline
Ich habe folgendes im Internet gefunden:
For building static libraries just append -static to the package name, eg. mingw-w64-qt5-base-static
Also habe ich ffmpeg067 zu ffmpeg067-static umbenannt und die static libraries .a wurden ins Paket übernommen (ffmpeg067-static-0.6.7-1-x86_64.pkg.tar.xz).
Bei Antwort #4 steht der Link grau hinterlegt unter "OpenSuSE build service" versteckt wo ich qdvdauthor bauen kann. ffmpeg067-static installiere ich über PKGBUILD von qdvdauthor mit
depends=('qt5-base' 'ffmpeg067-static' 'vlc' 'xine-lib').
Trotz libavcodec.a in im Paket ffmpeg067-static scheitert das kompilieren von qdvdauthor am Linker wegen z.B.: 'avcodec_open' aus der Datei <libavcodec/avcodec.h>.
Ich versuche noch OPTIONS=('staticlibs') zu options=('staticlibs') zu ändern.
Beitrag geändert von vmp (16.11.2019 22:58:13)
Offline
ffmpg067-static konnte ich hier bauen.
Mit diesem PKGBUILD
# Maintainer: Suchan Roland <snrd@arcor.de>
pkgname=ffmpeg067-static
pkgver=0.6.7
pkgrel=1
pkgdesc='Complete solution to record, convert and stream audio and video'
arch=('i586' 'x86_64')
url='https://ffmpeg.org/'
license=('GPL2')
depends=()
provides=(
libavcodec.so
libavdevice.so
libavformat.so
libavutil.so
libswscale.so
libavcodec.a
libavdevice.a
libavformat.a
libavutil.a
libswscale.a
)
options=('staticlibs')
source=("https://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.gz" nodocs.patch)
md5sums=('8afa86b7b8e91645ba93015c0561a424'
'496b425db8835d1d964bc295ae927fb5')
prepare() {
cd ffmpeg-${pkgver}
patch -Np1 < "$srcdir"/nodocs.patch
}
build() {
cd ffmpeg-${pkgver}
sed -i 's@-Werror@@g' configure
./configure \
--prefix=/usr \
--libdir=/usr/lib \
--incdir=/usr/include/ffmpeg067 \
--shlibdir=/usr/lib \
--enable-gpl \
--enable-static \
--enable-shared \
--disable-ffserver
make clean
make
}
package() {
cd ffmpeg-${pkgver}
#pkg-config --modversion libavcodec
make DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/usr/bin/ffprobe
rm -rf "$pkgdir"/usr/share
rm -rf "$pkgdir"/usr/lib/{*.so,pkgconfig/*}
echo '***'
ls "${pkgdir}"/usr/include
#ls "${pkgdir}"/usr/lib/ffmpeg067
echo '***'
ls "${pkgdir}"/usr/lib
echo '***'
ls "${pkgdir}"/usr/lib/pkgconfig
find "${pkgdir}"/usr/bin -type f -exec mv {} {}067 \;
}
plus diesem Patch (der das Bauen der Doku unterbindet, da diese nicht texinfo-konform ist)
diff -Naur ffmpeg-0.6.7.orig/Makefile ffmpeg-0.6.7.new/Makefile
--- ffmpeg-0.6.7.orig/Makefile 2013-09-23 02:37:52.000000000 +0200
+++ ffmpeg-0.6.7.new/Makefile 2019-11-16 20:51:00.262442234 +0100
@@ -40,7 +40,6 @@
FF_EXTRALIBS := $(FFEXTRALIBS)
FF_DEP_LIBS := $(DEP_LIBS)
-ALL_TARGETS-$(CONFIG_DOC) += documentation
ifdef PROGS
INSTALL_TARGETS-yes += install-progs install-data
Die qdvdathor-Sourcen aus dem opensuse-Repo konnte ich nicht downloaden, da man dafür einen Acoount braucht, und die originale Software möchte sich wohl gerne gegen ffmpeg063 (nicht 067) linken.
Offline
Ich habe qdvdauthor wieder auf ffmpeg063-static umgestellt mit dem Linker Fehler:
[ 180s] [ 33%] Linking CXX executable qrender
[ 180s] cd /usr/src/packages/BUILD/qdvdauthor/src/qdvdauthor-2.3.1/build/qrender && /usr/bin/cmake -E cmake_link_script CMakeFiles/qrender.dir/link.txt --verbose=1
[ 180s] /usr/bin/c++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -rdynamic CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o CMakeFiles/qrender.dir/encoder.cpp.o CMakeFiles/qrender.dir/filter.cpp.o CMakeFiles/qrender.dir/logger.cpp.o CMakeFiles/qrender.dir/main.cpp.o CMakeFiles/qrender.dir/parser.cpp.o CMakeFiles/qrender.dir/render.cpp.o CMakeFiles/qrender.dir/server.cpp.o CMakeFiles/qrender.dir/slideshow.cpp.o CMakeFiles/qrender.dir/utils.cpp.o CMakeFiles/qrender.dir/__/qdvdauthor/xml_slideshow.cpp.o CMakeFiles/qrender.dir/engine/moc_ffmpeg_enc.cpp.o CMakeFiles/qrender.dir/moc_encoder.cpp.o CMakeFiles/qrender.dir/moc_filter.cpp.o CMakeFiles/qrender.dir/moc_logger.cpp.o CMakeFiles/qrender.dir/moc_parser.cpp.o CMakeFiles/qrender.dir/moc_render.cpp.o CMakeFiles/qrender.dir/moc_server.cpp.o CMakeFiles/qrender.dir/moc_shared.cpp.o CMakeFiles/qrender.dir/moc_slideshow.cpp.o CMakeFiles/qrender.dir/moc_utils.cpp.o CMakeFiles/qrender.dir/__/qdvdauthor/moc_xml_slideshow.cpp.o -o qrender /usr/lib/libQt5Widgets.so.5.13.2 /usr/lib/libQt5Xml.so.5.13.2 -lxine -lX11 /usr/lib/libQt5Network.so.5.13.2 -lavcodec -lavformat -lavutil -lswscale /usr/lib/libQt5Gui.so.5.13.2 /usr/lib/libQt5Core.so.5.13.2
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::qrender_avcodec_open(AVCodecContext*, AVCodec*, void*)':
[ 181s] ffmpeg_enc.cpp:(.text+0x92): undefined reference to `avcodec_open'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::resample() [clone .part.0]':
[ 181s] ffmpeg_enc.cpp:(.text+0x1cd): undefined reference to `audio_resample'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::decode(AVPacket*)':
[ 181s] ffmpeg_enc.cpp:(.text+0x369): undefined reference to `avcodec_decode_audio3'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::decodeAudio(bool&)':
[ 181s] ffmpeg_enc.cpp:(.text+0x6ff): undefined reference to `audio_resample_init'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::decodeAudio(AVPacket*)':
[ 181s] ffmpeg_enc.cpp:(.text+0x84e): undefined reference to `audio_resample_init'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Vid::allocPicture(unsigned char*&, PixelFormat, int, int)':
[ 181s] ffmpeg_enc.cpp:(.text+0x916): undefined reference to `avcodec_alloc_frame'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Vid::getNextPacket(AVStream*, AVStream*, int&)':
[ 181s] ffmpeg_enc.cpp:(.text+0xf3e): undefined reference to `avcodec_alloc_frame'
[ 181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x10c0): undefined reference to `avcodec_encode_video'
[ 181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x117e): undefined reference to `avcodec_encode_video'
[ 181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x11b6): undefined reference to `avcodec_encode_video'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Media::closeStream()':
[ 181s] ffmpeg_enc.cpp:(.text+0x1599): undefined reference to `av_close_input_file'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Audio::closeStream()':
[ 181s] ffmpeg_enc.cpp:(.text+0x15d5): undefined reference to `audio_resample_close'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Media::openStream(QString)':
[ 181s] ffmpeg_enc.cpp:(.text+0x1cff): undefined reference to `av_open_input_file'
[ 181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x1d57): undefined reference to `av_find_stream_info'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::addVideoStream(int, Encoder::Encoder::enVideo, int)':
[ 181s] ffmpeg_enc.cpp:(.text+0x2428): undefined reference to `av_new_stream'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::addAudioStream(int)':
[ 181s] ffmpeg_enc.cpp:(.text+0x28a5): undefined reference to `av_new_stream'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::writeVideoFrame()':
[ 181s] ffmpeg_enc.cpp:(.text+0x295e): undefined reference to `avcodec_encode_video'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::endStream()':
[ 181s] ffmpeg_enc.cpp:(.text+0x2ab3): undefined reference to `url_fclose'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::FFmpeg()':
[ 181s] ffmpeg_enc.cpp:(.text+0x33f9): undefined reference to `avcodec_init'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Vid::getFrame(AVFrame*, int, int)':
[ 181s] ffmpeg_enc.cpp:(.text+0x34f0): undefined reference to `avcodec_alloc_frame'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::Vid::getFrame(double)':
[ 181s] ffmpeg_enc.cpp:(.text+0x36f8): undefined reference to `avcodec_alloc_frame'
[ 181s] /usr/bin/ld: CMakeFiles/qrender.dir/engine/ffmpeg_enc.cpp.o: in function `Encoder::FFmpeg::initStream(QString, Encoder::Encoder::enVideo, Encoder::Encoder::enAudio, unsigned int)':
[ 181s] ffmpeg_enc.cpp:(.text+0x3990): undefined reference to `guess_format'
[ 181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x3aeb): undefined reference to `guess_format'
[ 181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x3b40): undefined reference to `av_set_parameters'
[ 181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x3b9e): undefined reference to `url_fopen'
[ 181s] /usr/bin/ld: ffmpeg_enc.cpp:(.text+0x3c07): undefined reference to `av_write_header'
[ 181s] collect2: error: ld returned 1 exit status
[ 181s] make[2]: *** [qrender/CMakeFiles/qrender.dir/build.make:455: qrender/qrender] Error 1
[ 181s] make[2]: Leaving directory '/usr/src/packages/BUILD/qdvdauthor/src/qdvdauthor-2.3.1/build'
[ 181s] make[1]: *** [CMakeFiles/Makefile2:246: qrender/CMakeFiles/qrender.dir/all] Error 2
Offline
Ich habe qdvdauthor-2.3.1-010a.tar.gz für Arch Linux nach sf.net/p/qdvd verschoben.
Ich kann es mit PKGBUILD fehlerfrei kompilieren aber nach qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz werden keine Dateien "installiert".
Bei ffmpeg063-static habe ich die PATHS anders gesetzt wegen ffmpeg-1:4.2.1-4.
Beitrag geändert von vmp (17.11.2019 04:38:58)
Offline
Das Paket qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz für Arch Extra hat jetzt eine Große von 1,7MiB also es ist mit Dateien gefüllt.
Dasjenige für Arch eine Größe von 3,1KiB also ist es immer noch leer. Eigentlich durch Zufall (immer wieder kompilieren) habe ich das vollgefüllte Paket erhalten.
Offline
Ich habe wie in deinem PKGBUILD folgendes geändert (im PKGBUILD von qdvdauthor):
make DESTDIR="${pkgdir}" install
zu:
make DESTDIR="$pkgdir" install
und das Paket qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz für Arch hat eine Größe von 1,9MiB.
Beitrag geändert von vmp (18.11.2019 21:24:32)
Offline
Was heißt "in meinem PKGBUILD". Ich habe keines zu qdvdauthor hier gepostet. Und bei mir baut es noch nicht einmal die build-Function zuende, geschweige denn irgendwas zu installieren.
Offline
Ich meinte das PKGBUILD von Antwort #10 (ffmpeg067-static).
Unter dem Link von Antwort #1 gibt es die fertigen Pakete von qdvdauthor für Arch und Arch Extra.
Beitrag geändert von vmp (18.11.2019 19:59:31)
Offline
Offline
Hat jemand das Paket qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz ausprobiert?
Offline
Warum probierst du es nicht selbst?
Offline
@stefanhausmann
Ich habe PKGBUILD von qdvdauthor und ffmpeg063-static nach https://aur.archlinux.org gestellt. Kannst du schauen ob man die Pakete bauen kann.
Offline
@vmp
Du solltest dir mal durchlesen, welche Aufgabe provides=() im PKGBUILD hat. Und dein ffmpeg Paket hat keinerlei Abhängigkeiten?!
@stefanhausmann
Ich habe PKGBUILD von qdvdauthor und ffmpeg063-static nach https://aur.archlinux.org gestellt. Kannst du schauen ob man die Pakete bauen kann.
Bei mir lassen sich beide Pakete nicht bauen.
Offline
Seiten: 1