Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fetchgit: sanitize name #166265

Closed
wants to merge 1 commit into from
Closed

Conversation

Artturin
Copy link
Member

Description of changes

sanitizes the name of the derivation
"@in-name" -> "-in-name"
Closes #103747

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.05 Release Notes (or backporting 21.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@Artturin
Copy link
Member Author

Artturin commented Mar 30, 2022

EDIT: nevermind url = file:///home/artturin/gitsig@ns.nvim; doesn't work for repos with no @ either

there's still a issue

nix-repl> :b pkgs.fetchgit { url = file:///home/artturin/gitsig@ns.nvim; }
gitsig-ns.nvim> exporting file:///home/artturin/gitsig@ns.nvim (rev HEAD) into /nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> + url=
gitsig-ns.nvim> + rev=
gitsig-ns.nvim> + expHash=
gitsig-ns.nvim> + hashType=
gitsig-ns.nvim> + deepClone=
gitsig-ns.nvim> + leaveDotGit=
gitsig-ns.nvim> + fetchSubmodules=
gitsig-ns.nvim> + fetchLFS=
gitsig-ns.nvim> + builder=
gitsig-ns.nvim> + branchName=
gitsig-ns.nvim> + out=/nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> + http_proxy=
gitsig-ns.nvim> + GIT_SSL_CAINFO=/nix/store/v9z7wbnbrl7ksn6zwrqbw8hbbfildisq-nss-cacert-3.74/etc/ssl/certs/ca-bundle.crt
gitsig-ns.nvim> + fullRev=
gitsig-ns.nvim> + humanReadableRev=
gitsig-ns.nvim> + commitDate=
gitsig-ns.nvim> + commitDateStrict8601=
gitsig-ns.nvim> + test -n ''
gitsig-ns.nvim> + deepClone=
gitsig-ns.nvim> + test '' '!=' 1
gitsig-ns.nvim> + leaveDotGit=
gitsig-ns.nvim> + argi=0
gitsig-ns.nvim> + argfun=
gitsig-ns.nvim> + for arg in "$@"
gitsig-ns.nvim> + test -z ''
gitsig-ns.nvim> + case $arg in
gitsig-ns.nvim> + builder=true
gitsig-ns.nvim> + for arg in "$@"
gitsig-ns.nvim> + test -z ''
gitsig-ns.nvim> + case $arg in
gitsig-ns.nvim> + argfun=set_url
gitsig-ns.nvim> + for arg in "$@"
gitsig-ns.nvim> + test -z set_url
gitsig-ns.nvim> + case $argfun in
gitsig-ns.nvim> + var=url
gitsig-ns.nvim> ++ printf %q file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + eval url=file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> ++ url=file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + argfun=
gitsig-ns.nvim> + for arg in "$@"
gitsig-ns.nvim> + test -z ''
gitsig-ns.nvim> + case $arg in
gitsig-ns.nvim> + argfun=set_out
gitsig-ns.nvim> + for arg in "$@"
gitsig-ns.nvim> + test -z set_out
gitsig-ns.nvim> + case $argfun in
gitsig-ns.nvim> + var=out
gitsig-ns.nvim> ++ printf %q /nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> + eval out=/nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> ++ out=/nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> + argfun=
gitsig-ns.nvim> + for arg in "$@"
gitsig-ns.nvim> + test -z ''
gitsig-ns.nvim> + case $arg in
gitsig-ns.nvim> + argfun=set_rev
gitsig-ns.nvim> + for arg in "$@"
gitsig-ns.nvim> + test -z set_rev
gitsig-ns.nvim> + case $argfun in
gitsig-ns.nvim> + var=rev
gitsig-ns.nvim> ++ printf %q HEAD
gitsig-ns.nvim> + eval rev=HEAD
gitsig-ns.nvim> ++ rev=HEAD
gitsig-ns.nvim> + argfun=
gitsig-ns.nvim> + for arg in "$@"
gitsig-ns.nvim> + test -z ''
gitsig-ns.nvim> + case $arg in
gitsig-ns.nvim> + fetchSubmodules=true
gitsig-ns.nvim> + test -z file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + exit_handlers=()
gitsig-ns.nvim> + trap run_exit_handlers EXIT
gitsig-ns.nvim> + test -n ''
gitsig-ns.nvim> + test -z ''
gitsig-ns.nvim> + branchName=fetchgit
gitsig-ns.nvim> + test -n true
gitsig-ns.nvim> + test -n /nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim -a -n file:///home/artturin/gitsig@ns.nvim -a -n HEAD
gitsig-ns.nvim> + mkdir -p /nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> + clone_user_rev /nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim file:///home/artturin/gitsig@ns.nvim HEAD
gitsig-ns.nvim> + local dir=/nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> + local url=file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + local rev=HEAD
gitsig-ns.nvim> + '[' -n '' ']'
gitsig-ns.nvim> + case "$rev" in
gitsig-ns.nvim> + clone /nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim file:///home/artturin/gitsig@ns.nvim '' HEAD
gitsig-ns.nvim> + local top=/build
gitsig-ns.nvim> + local dir=/nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> + local url=file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + local hash=
gitsig-ns.nvim> + local ref=HEAD
gitsig-ns.nvim> + cd /nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim
gitsig-ns.nvim> + init_remote file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + local url=file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + clean_git init --initial-branch=master
gitsig-ns.nvim> + git init --initial-branch=master
gitsig-ns.nvim> Initialized empty Git repository in /nix/store/260qbb4242xmf46a2s6naqa64s8a8k15-gitsig-ns.nvim/.git/
gitsig-ns.nvim> + clean_git remote add origin file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + git remote add origin file:///home/artturin/gitsig@ns.nvim
gitsig-ns.nvim> + '[' -n '' ']'
gitsig-ns.nvim> + '[' -n '' ']'
gitsig-ns.nvim> + true
gitsig-ns.nvim> + checkout_ref '' HEAD
gitsig-ns.nvim> + local hash=
gitsig-ns.nvim> + local ref=HEAD
gitsig-ns.nvim> + [[ -n '' ]]
gitsig-ns.nvim> + test -z HEAD
gitsig-ns.nvim> + test -n HEAD
gitsig-ns.nvim> + clean_git fetch --progress --depth 1 origin +HEAD
gitsig-ns.nvim> + git fetch --progress --depth 1 origin +HEAD
gitsig-ns.nvim> fatal: '/home/artturin/gitsig@ns.nvim' does not appear to be a git repository
gitsig-ns.nvim> fatal: Could not read from remote repository.
gitsig-ns.nvim> Please make sure you have the correct access rights
gitsig-ns.nvim> and the repository exists.
gitsig-ns.nvim> + return 1
gitsig-ns.nvim> + checkout_hash '' HEAD
gitsig-ns.nvim> + local hash=
gitsig-ns.nvim> + local ref=HEAD
gitsig-ns.nvim> + test -z ''
gitsig-ns.nvim> ++ hash_from_ref HEAD
gitsig-ns.nvim> ++ local ref=HEAD
gitsig-ns.nvim> ++ git ls-remote origin
gitsig-ns.nvim> ++ sed -n '\,\tHEAD, { s,\(.*\)\t\(.*\),\1,; p; q}'
gitsig-ns.nvim> fatal: '/home/artturin/gitsig@ns.nvim' does not appear to be a git repository
gitsig-ns.nvim> fatal: Could not read from remote repository.
gitsig-ns.nvim> Please make sure you have the correct access rights
gitsig-ns.nvim> and the repository exists.
gitsig-ns.nvim> + hash=
gitsig-ns.nvim> + clean_git fetch --progress --depth=1 origin ''
gitsig-ns.nvim> + git fetch --progress --depth=1 origin ''
gitsig-ns.nvim> fatal: '/home/artturin/gitsig@ns.nvim' does not appear to be a git repository
gitsig-ns.nvim> fatal: Could not read from remote repository.
gitsig-ns.nvim> Please make sure you have the correct access rights
gitsig-ns.nvim> and the repository exists.
gitsig-ns.nvim> + clean_git fetch -t --progress origin
gitsig-ns.nvim> + git fetch -t --progress origin
gitsig-ns.nvim> fatal: '/home/artturin/gitsig@ns.nvim' does not appear to be a git repository
gitsig-ns.nvim> fatal: Could not read from remote repository.
gitsig-ns.nvim> Please make sure you have the correct access rights
gitsig-ns.nvim> and the repository exists.
gitsig-ns.nvim> + return 1
gitsig-ns.nvim> + echo 'Unable to checkout HEAD from file:///home/artturin/gitsig@ns.nvim.'
gitsig-ns.nvim> Unable to checkout HEAD from file:///home/artturin/gitsig@ns.nvim.
gitsig-ns.nvim> + exit 1
gitsig-ns.nvim> + run_exit_handlers
gitsig-ns.nvim> + exit_status=1

patch to add -x

diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 4e6f25b8dd7..cc5d8d5ec00 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -1,6 +1,7 @@
 #! /usr/bin/env bash
 
 set -e -o pipefail
+set -x
 
 url=
 rev=

i just renamed a random git repo to contain a @

@Artturin Artturin marked this pull request as ready for review March 30, 2022 02:44
@Artturin
Copy link
Member Author

perhaps fetchurl should sanitize the name too?

@Artturin Artturin requested a review from roberth March 30, 2022 02:51
@roberth roberth mentioned this pull request Mar 30, 2022
15 tasks
@roberth
Copy link
Member

roberth commented Mar 30, 2022

We could sanitize all derivation names: #166383

@Artturin
Copy link
Member Author

We could sanitize all derivation names: #166383

nice, i just saw your pr and was coming to close this

@Artturin Artturin closed this Mar 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pkgs.fetchgit, nix-prefetch-git fail when given a URL whose basename contains @
2 participants