Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
package format: change default extension to ".bsd"
Baptiste Daroussin committed 5 years ago
commit 020f0594d244fc42293137d759b8dd628d092d60
parent 3865074
13 files changed +50 -23
modified libpkg/packing.c
@@ -1,5 +1,5 @@
/*-
-
 * Copyright (c) 2011-2020 Baptiste Daroussin <bapt@FreeBSD.org>
+
 * Copyright (c) 2011-2021 Baptiste Daroussin <bapt@FreeBSD.org>
 * Copyright (c) 2011 Will Andrews <will@FreeBSD.org>
 * All rights reserved.
 * 
@@ -55,6 +55,8 @@ packing_init(struct packing **pack, const char *path, pkg_formats format, int cl
	time_t timestamp, bool overwrite)
{
	char archive_path[MAXPATHLEN];
+
	char archive_symlink[MAXPATHLEN];
+
	char *archive_name;
	const char *ext;
	const char *source_date_epoch;
	char *endptr;
@@ -92,7 +94,13 @@ packing_init(struct packing **pack, const char *path, pkg_formats format, int cl
		*pack = NULL;
		return (EPKG_FATAL); /* error set by _set_format() */
	}
-
	snprintf(archive_path, sizeof(archive_path), "%s.%s", path,
+
	snprintf(archive_path, sizeof(archive_path), "%s.bsd", path);
+
	archive_name = strrchr(archive_path, '/');
+
	if (archive_name == NULL)
+
		archive_name = archive_path;
+
	else
+
		archive_name++;
+
	snprintf(archive_symlink, sizeof(archive_path), "%s.%s", path,
	    ext);

	if (!overwrite && access(archive_path, F_OK) == 0) {
@@ -118,6 +126,11 @@ packing_init(struct packing **pack, const char *path, pkg_formats format, int cl
		return EPKG_FATAL;
	}

+
	unlink(archive_symlink);
+
	if (symlink(archive_name, archive_symlink) != 0) {
+
		pkg_emit_errno("symlink", archive_symlink);
+
	}
+

	(*pack)->resolver = archive_entry_linkresolver_new();
	archive_entry_linkresolver_set_strategy((*pack)->resolver,
	    archive_format((*pack)->awrite));
@@ -453,7 +466,8 @@ packing_is_valid_format(const char *str)
{
	if (str == NULL)
		return (false);
-
	if ((strcmp(str, "tzst") == 0) ||
+
	if ((strcmp(str, "bsd") == 0) ||
+
	    (strcmp(str, "tzst") == 0) ||
	    (strcmp(str, "txz") == 0) ||
	    (strcmp(str, "tbz") == 0) ||
	    (strcmp(str, "tgz") == 0) ||
modified libpkg/pkg_repo.c
@@ -665,8 +665,11 @@ pkg_repo_fetch_remote_extract_fd(struct pkg_repo *repo, const char *filename,
	char tmp[MAXPATHLEN];
	struct stat st;

-
	fd = pkg_repo_fetch_remote_tmp(repo, filename,
-
	    packing_format_to_string(repo->meta->packing_format), t, rc, false);
+
	fd = pkg_repo_fetch_remote_tmp(repo, filename, "bsd", t, rc, false);
+
	if (fd == -1) {
+
		fd = pkg_repo_fetch_remote_tmp(repo, filename,
+
		    packing_format_to_string(repo->meta->packing_format), t, rc, false);
+
	}
	if (fd == -1)
		return (-1);

modified tests/frontend/conflicts-multirepo.sh
@@ -146,12 +146,12 @@ EOF

OUTPUT="Updating local1 repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
local1 repository update completed. 2 packages processed.
Updating local2 repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
local2 repository update completed. 2 packages processed.
All repositories are up to date.
modified tests/frontend/conflicts.sh
@@ -426,7 +426,7 @@ EOF

OUTPUT="Updating local repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
local repository update completed. 1 packages processed.
All repositories are up to date.
modified tests/frontend/create.sh
@@ -706,11 +706,11 @@ create_no_clobber_body()
{
	atf_check sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1"

-
	touch test-1.txz
-
	before=$(ls -l test-1.txz)
+
	touch test-1.bsd
+
	before=$(ls -l test-1.bsd)
	atf_check pkg create -nM test.ucl
-
	after=$(ls -l test-1.txz)
-
	[ "$before" = "$after" ] || atf_fail "Package was recreated"
+
	after=$(ls -l test-1.bsd)
+
	[ "$before" = "$after" ] || atf_fail "Package was recreated \"$before\" vs \"$after\""
}

create_from_plist_include_body()
modified tests/frontend/formula.sh
@@ -57,7 +57,7 @@ EOF

	OUTPUT="Updating local1 repository catalogue...
${JAILED}meta.conf                                 :  done
-
${JAILED}packagesite.txz                          :  done
+
${JAILED}packagesite.bsd                           :  done
Processing entries:  done
local1 repository update completed. 2 packages processed.
All repositories are up to date.
modified tests/frontend/issue1425.sh
@@ -153,12 +153,12 @@ EOF

OUTPUT_CASE1="Updating repoA repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
repoA repository update completed. 4 packages processed.
Updating repoB repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
repoB repository update completed. 4 packages processed.
All repositories are up to date.
modified tests/frontend/issue1440.sh
@@ -188,12 +188,12 @@ EOF

OUTPUT_CASE1="Updating repoA repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
repoA repository update completed. 4 packages processed.
Updating repoB repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
repoB repository update completed. 4 packages processed.
All repositories are up to date.
modified tests/frontend/php-pr.sh
@@ -113,6 +113,7 @@ EOF
	rm reposconf/repo1.conf
	rm -f *.ucl
	rm *.txz
+
	rm *.bsd

	cat << EOF > php53.new.ucl
name: php53
@@ -225,7 +226,6 @@ EOF
		-s exit:0 \
		pkg repo .

-
	mkdir reposconf
	cat << EOF >> reposconf/repo.conf
local: {
        url: file://${TMPDIR}/,
@@ -241,7 +241,7 @@ php53-gd-5.3.27

OUTPUT="Updating local repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
local repository update completed. 4 packages processed.
All repositories are up to date.
modified tests/frontend/repo.sh
@@ -7,7 +7,8 @@ tests_init \
	repo_v2 \
	repo_multiversion \
	repo_multiformat \
-
	repo_symlinks
+
	repo_symlinks \
+
	repo_content

repo_v1_body() {
	touch plop
@@ -213,3 +214,11 @@ EOF
	atf_check -o inline:"test\n" \
		pkg -C ./pkg.conf rquery -a "%n"
}
+

+
repo_content_body() {
+
	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg test test 1.0 "${TMPDIR}"
+
	atf_check pkg create --format txz -M test.ucl
+
	atf_check -o ignore pkg repo .
+
	nb=$(tar -xf packagesite.bsd -O - packagesite.yaml | wc -l)
+
	[ $nb -eq 1 ] || atf_fail "packagesite has $nb entries instead of 1"
+
}
modified tests/frontend/requires.sh
@@ -40,7 +40,7 @@ EOF

	OUTPUT="Updating local1 repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
local1 repository update completed. 2 packages processed.
All repositories are up to date.
modified tests/frontend/rubypuppet.sh
@@ -124,6 +124,7 @@ EOF
	rm reposconf/repo1.conf
	rm -f *.ucl
	rm *.txz
+
	rm *.bsd

	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg rubygemrubyaugeas.new rubygem-ruby-augeas 1.0
	cat << EOF >> rubygemrubyaugeas.new.ucl
@@ -227,7 +228,7 @@ EOF

	OUTPUT="Updating local repository catalogue...
${JAILED}Fetching meta.conf:  done
-
${JAILED}Fetching packagesite.txz:  done
+
${JAILED}Fetching packagesite.bsd:  done
Processing entries:  done
local repository update completed. 5 packages processed.
All repositories are up to date.
modified tests/frontend/update.sh
@@ -17,7 +17,7 @@ EOF

	atf_check \
		-o match:"Unable to update repository test" \
-
		-e match:"pkg: file://empty//packagesite.txz: No such file or directory" \
+
		-e match:"pkg: file://empty//packagesite.bsd: No such file or directory" \
		-s exit:1 \
		pkg -R repos update
}