On Tue, 21 Feb 2023 14:11:46 +0000 Jon Turney wrote: > On 20/02/2023 08:55, Takashi Yano via Cygwin-apps wrote: > > On Sun, 19 Feb 2023 15:37:47 +0000 > > Jon Turney wrote: > [...]>> * I don't think you should need: > >> > >>> # Install postinstall/preremove scripts > >>> mkdir -p ${D}/etc/postinstall ${D}/etc/preremove > >>> cp ${C}/lib${NAME}.postinstall ${D}/etc/postinstall/lib${NAME}.sh > >>> cp ${C}/lib${NAME}.preremove ${D}/etc/preremove/lib${NAME}.sh > >>> > >> > >> This should happen automatically if the files are in $C (and you can > >> list them in CYGWIN_FILES or make them with cygwin.patch file to put > >> them there) > > > > That's what I understood from > > https://cygwin.github.io/cygport/masterindex.html, > > however, actually libopenh264.{postinstall,preremove} are > > not installed during install process by cygport 0.36.0 > > even though openh264-2.3.1-1.cygwin.patch exists. > > > > Could you please give me a hint how I can make it work? > > Aha! This is a bug in cygport. > > (There's some code which skips over doing this for the first item in > PKG_NAMES, assuming that is always the same as PN, which has already > been done) > > Thanks for drawing that to my attention. I'll look into fixing it, but > for the moment it seems you can workaround the bug by ensuring that the > package with premove/postinstall scripts isn't first in that list, i.e.: > > - PKG_NAMES="libopenh264 libopenh264-headers" > + PKG_NAMES="libopenh264-headers libopenh264"
Thanks! It works. I updated the cygport file and cygwin.patch. -- Takashi Yano <takashi.y...@nifty.ne.jp>
NAME="openh264" VERSION=2.3.1 RELEASE=1 CATEGORY="Video" SUMMARY="H.264 codec library by Cisco" DESCRIPTION="OpenH264 is a codec library which supports H.264 encoding and decoding. It is suitable for use in real time applications such as WebRTC. The binary library (runtime) itself will be downloaded from http://ciscobinary.openh264.org/" HOMEPAGE="https://www.openh264.org/" LICENSE="BSD-2-Clause" ARCH="noarch" # This is noarch because it's just header files and shell scrpits. SRC_URI="${NAME}-headers-${VERSION}.tar.xz" # Make dummy source file for prep if the cleaned one is not exist. if [ ! -f ${SRC_URI} ] then mkdir -p ${NAME}-${VERSION} tar acf ${SRC_URI} ${NAME}-${VERSION} rm -rf ${NAME}-${VERSION} fi CYGPORT_USE_UNSTABLE_API=1 src_unpack_hook() { if [ $(tar tvf ../../../${SRC_URI} | wc -l) -eq 1 ] # Source file is dummy then NV=${NAME}-${VERSION} pushd .. # Download original source file. wget -q https://github.com/cisco/openh264/archive/refs/tags/v${VERSION}.tar.gz -O - | tar xzf - # Make source tarball file which has only necessary header files. tar acf ../../${NAME}-headers-${VERSION}.tar.xz ${NV}/codec/api/wels/*.h # Update source directory. rm -rf ${NV} tar xf ../../${NAME}-headers-${VERSION}.tar.xz popd fi } PKG_NAMES="libopenh264-headers libopenh264" libopenh264_CATEGORY="Video Libs" libopenh264_CONTENTS="etc/ usr/share/" libopenh264_REQUIRES="wget bzip2" libopenh264_SUMMARY="H.264 codec library runtime by Cisco" libopenh264_headers_CATEGORY="Video Devel" libopenh264_headers_CONTENTS="usr/include" libopenh264_headers_SUMMARY="H.264 codec library headers" src_compile() { : } src_install() { mkdir -p ${D}/usr/include ln -fs ${S}/codec/api/wels ${D}/usr/include/. # Get license file mkdir -p ${D}/usr/share/doc/lib${NAME} if ! wget -q http://www.openh264.org/BINARY_LICENSE.txt -O - > ${D}/usr/share/doc/lib${NAME}/BINARY_LICENSE.txt then echo "Need internet access!!!" exit 1 fi mkdir -p ${D}/etc/lib${NAME} # Make sha256 hash wget -q http://ciscobinary.openh264.org/${NAME}-${VERSION}-win64.dll.bz2 -O - | bunzip2 | sha256sum | sed "s/-$/${NAME}-${VERSION}-win64.tmp/" > ${D}/etc/lib${NAME}/${NAME}-${VERSION}-win64.dll.sha256 wget -q http://ciscobinary.openh264.org/${NAME}-${VERSION}-win32.dll.bz2 -O - | bunzip2 | sha256sum | sed "s/-$/${NAME}-${VERSION}-win32.tmp/" > ${D}/etc/lib${NAME}/${NAME}-${VERSION}-win32.dll.sha256 # Make version text echo ${VERSION} > ${D}/etc/lib${NAME}/version.txt }
--- origsrc/openh264-2.3.1/CYGWIN-PATCHES/libopenh264.postinstall 1970-01-01 09:00:00.000000000 +0900 +++ src/openh264-2.3.1/CYGWIN-PATCHES/libopenh264.postinstall 2023-02-17 12:36:27.633701700 +0900 @@ -0,0 +1,18 @@ +if [ $(uname -m) = "x86_64" ] +then + POSTFIX="win64" +else + POSTFIX="win32" +fi +VERSION=$(cat /etc/libopenh264/version.txt) +cd /tmp +wget -q http://ciscobinary.openh264.org/openh264-${VERSION}-${POSTFIX}.dll.bz2 -O - | bunzip2 > openh264-${VERSION}-${POSTFIX}.tmp +if sha256sum --status -c /etc/libopenh264/openh264-${VERSION}-${POSTFIX}.dll.sha256 +then + mv openh264-${VERSION}-${POSTFIX}.tmp /usr/bin/libopenh264.dll +else + # Hash mismatch (or failed to download) + rm openh264-${VERSION}-${POSTFIX}.tmp + exit 1 +fi +chmod a+x /usr/bin/libopenh264.dll --- origsrc/openh264-2.3.1/CYGWIN-PATCHES/libopenh264.preremove 1970-01-01 09:00:00.000000000 +0900 +++ src/openh264-2.3.1/CYGWIN-PATCHES/libopenh264.preremove 2023-02-17 12:14:05.806697700 +0900 @@ -0,0 +1 @@ +rm -f /usr/bin/libopenh264.dll