Du bist nicht angemeldet.
@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.
@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.
Warum probierst du es nicht selbst?
Hat jemand das Paket qdvdauthor-2.3.1-10-x86_64.pkg.tar.xz ausprobiert?
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.
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.
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.
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.
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.
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
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.
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.
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.