mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-01 19:46:45 +00:00
179f742924
This patch makes the handling of failed integrity checks of 3rd-party packages more robust. Previously, a once failed 'make prepare PKG=curl' would not leave any trace of the verification state. Hence, a successive attempt to perform the 'make prepare' step again succeeded even if the signature check failed. To solve this problem, the outcome of a successful signature check is represented by a tag file called 'download/<archive-name>.verified'. Because the rule for extracting the archive depends on the .verify tag file, the extraction step is not performed until the signature check succeeds. Issue #748
47 lines
1.5 KiB
Makefile
47 lines
1.5 KiB
Makefile
include lib/import/import-av.inc
|
|
|
|
LIBAV_TGZ = $(LIBAV).tar.gz
|
|
LIBAV_SIG = $(LIBAV_TGZ).asc
|
|
LIBAV_SHA = $(LIBAV_TGZ).sha1
|
|
LIBAV_BASE_URL = http://www.libav.org/releases
|
|
LIBAV_URL = $(LIBAV_BASE_URL)/$(LIBAV_TGZ)
|
|
LIBAV_URL_SIG = $(LIBAV_BASE_URL)/$(LIBAV_SIG)
|
|
LIBAV_URL_SHA = $(LIBAV_BASE_URL)/$(LIBAV_SHA)
|
|
|
|
#
|
|
# XXX Add hash verification for libav downloads. Note: signatures are provided
|
|
# for newer versions. Therefore, all is prepared in the make file for
|
|
# enabling the signature check. However, the signature check is yet
|
|
# commented out.
|
|
#
|
|
#LIBAV_KEY = UNCLEAR WHAT GOES IN HERE
|
|
|
|
#
|
|
# Interface to top-level prepare Makefile
|
|
#
|
|
PORTS += $(LIBAV)
|
|
|
|
prepare-libav: $(CONTRIB_DIR)/$(LIBAV)
|
|
|
|
$(CONTRIB_DIR)/$(LIBAV): clean-libav
|
|
|
|
#
|
|
# Port-specific local rules
|
|
#
|
|
$(DOWNLOAD_DIR)/$(LIBAV_TGZ):
|
|
$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(LIBAV_URL) && touch $@
|
|
$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(LIBAV_URL_SHA) && touch $@
|
|
#$(VERBOSE)wget -c -P $(DOWNLOAD_DIR) $(LIBAV_URL_SIG) && touch $@
|
|
|
|
$(DOWNLOAD_DIR)/$(LIBAV_TGZ).verified: $(DOWNLOAD_DIR)/$(LIBAV_TGZ)
|
|
# XXX Hash verification of libav does not ensure authenticity
|
|
$(VERBOSE)$(HASHVERIFIER) $(DOWNLOAD_DIR)/$(LIBAV_TGZ) $(DOWNLOAD_DIR)/$(LIBAV_SHA) sha1
|
|
$(VERBOSE)touch $@
|
|
|
|
$(CONTRIB_DIR)/$(LIBAV): $(DOWNLOAD_DIR)/$(LIBAV_TGZ).verified
|
|
$(VERBOSE)tar xfz $(<:.verified=) -C $(CONTRIB_DIR) && touch $@
|
|
$(VERBOSE)patch -d $(CONTRIB_DIR)/$(LIBAV) -p1 -i $(CURDIR)/src/app/avplay/avplay.patch
|
|
|
|
clean-libav:
|
|
$(VERBOSE)rm -rf $(CONTRIB_DIR)/$(LIBAV)
|