On Tue, 14 Feb 2023 12:02:37 +0100
ASSI wrote:
> Takashi Yano via Cygwin-apps writes:
> > - The libopenh264 package includes only /etc/postinstall
> >   and /etc/preremove, which downloads/removes Cisco's dll
> >   (binary) as well as license file.
> 
> This is a Windows / MingW64 DLL, not a Cygwin one?

Right.

> Also, since Cisco seems to be unable to correctly provide a cert chain
> over the Akamai infrastructure to allow downloading via HTTPS, you
> should have an SHA256 or SH512 check on the resulting file to assure
> that the file matches what is expected.  It should probably be renamed
> to .dll only after that step.

Thanks for the advice. I have revised the cygport file.

-- 
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 ${NAME}-${VERSION}
        touch ${NAME}-${VERSION}/dummy
        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 2 ] # Source file is 
dummy
        then
                NV=${NAME}-${VERSION}
                pushd ..
                rm -rf ${NV} # Remove dummy source file.
                # Download original source file.
                wget 
https://github.com/cisco/openh264/archive/refs/tags/v${VERSION}.tar.gz
                tar xf v${VERSION}.tar.gz
                rm -f v${VERSION}.tar.gz
                # Make source 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 libopenh264-headers"
libopenh264_CATEGORY="Video Libs"
libopenh264_CONTENTS="etc/"
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/.
        mkdir -p ${D}/etc/postinstall
        if [ $(uname -m) = "x86_64" ]
        then
                POSTFIX="win64"
        else
                POSTFIX="win32"
        fi
        cat << _EOF_ > ${D}/etc/postinstall/lib${NAME}.sh
#!/bin/sh
pushd /tmp
wget -q http://ciscobinary.openh264.org/${NAME}-${VERSION}-${POSTFIX}.dll.bz2 
-O - | bunzip2 > ${NAME}-${VERSION}-${POSTFIX}.dll
if wget -q 
http://ciscobinary.openh264.org/${NAME}-${VERSION}-${POSTFIX}.dll.signed.md5.txt
 -O - | md5sum --quiet -c
then
        mv ${NAME}-${VERSION}-${POSTFIX}.dll /usr/bin/libopenh264.dll
else
        rm ${NAME}-${VERSION}-${POSTFIX}.dll
        exit 1
fi
popd
chmod a+x /usr/bin/libopenh264.dll
mkdir -p /usr/share/doc/lib${NAME}
wget -q http://www.openh264.org/BINARY_LICENSE.txt -O - > 
/usr/share/doc/lib${NAME}/BINARY_LICENSE.txt
_EOF_
        chmod a+x ${D}/etc/postinstall/lib${NAME}.sh
        mkdir -p ${D}/etc/preremove
        cat << _EOF_ > ${D}/etc/preremove/lib${NAME}.sh
#!/bin/sh
rm -rf /usr/bin/libopenh264.dll /usr/share/doc/lib${NAME}
_EOF_
        chmod a+x ${D}/etc/preremove/lib${NAME}.sh
}

Reply via email to