[{"data":1,"prerenderedAt":663},["ShallowReactive",2],{"navigation_docs_en":3,"\u002Fen\u002Freference\u002Fpins":85,"\u002Fen\u002Freference\u002Fpins-surround":658},[4,19,41,75],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":18},"Getting started","i-lucide-book-open","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,14],{"title":11,"path":12,"stem":13},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F1.installation",{"title":15,"path":16,"stem":17},"Your first Pin","\u002Fen\u002Fgetting-started\u002Ffirst-pin","en\u002F1.getting-started\u002F2.first-pin",false,{"title":20,"icon":21,"path":22,"stem":23,"children":24,"page":18},"Guides","i-lucide-route","\u002Fen\u002Fguides","en\u002F2.guides",[25,29,33,37],{"title":26,"path":27,"stem":28},"Updating and selecting Pins","\u002Fen\u002Fguides\u002Fupdating","en\u002F2.guides\u002F1.updating",{"title":30,"path":31,"stem":32},"Combining Checkers and Fetchers","\u002Fen\u002Fguides\u002Fcombinations","en\u002F2.guides\u002F2.combinations",{"title":34,"path":35,"stem":36},"Multiple Sources and patches","\u002Fen\u002Fguides\u002Fmulti-source","en\u002F2.guides\u002F3.multi-source",{"title":38,"path":39,"stem":40},"Packages and dependency hashes","\u002Fen\u002Fguides\u002Fdependencies","en\u002F2.guides\u002F4.dependencies",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":18},"Reference","i-lucide-code","\u002Fen\u002Freference","en\u002F3.reference",[47,51,55,59,63,67,71],{"title":48,"path":49,"stem":50},"CLI","\u002Fen\u002Freference\u002Fcli","en\u002F3.reference\u002F1.cli",{"title":52,"path":53,"stem":54},"Runtime configuration","\u002Fen\u002Freference\u002Fconfiguration","en\u002F3.reference\u002F2.configuration",{"title":56,"path":57,"stem":58},"Pin declarations","\u002Fen\u002Freference\u002Fpins","en\u002F3.reference\u002F3.pins",{"title":60,"path":61,"stem":62},"Checkers","\u002Fen\u002Freference\u002Fcheckers","en\u002F3.reference\u002F4.checkers",{"title":64,"path":65,"stem":66},"Fetchers","\u002Fen\u002Freference\u002Ffetchers","en\u002F3.reference\u002F5.fetchers",{"title":68,"path":69,"stem":70},"Package Builders","\u002Fen\u002Freference\u002Fbuilders","en\u002F3.reference\u002F6.builders",{"title":72,"path":73,"stem":74},"Reader and Pins File","\u002Fen\u002Freference\u002Freader","en\u002F3.reference\u002F7.reader",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":18},"Troubleshooting","i-lucide-wrench","\u002Fen\u002Ftroubleshooting","en\u002F4.troubleshooting",[81],{"title":82,"path":83,"stem":84},"Common errors","\u002Fen\u002Ftroubleshooting\u002Fcommon-errors","en\u002F4.troubleshooting\u002F1.common-errors",{"id":86,"title":56,"body":87,"description":651,"extension":652,"links":653,"meta":654,"navigation":655,"path":57,"seo":656,"stem":58,"__hash__":657},"docs_en\u002Fen\u002F3.reference\u002F3.pins.md",{"type":88,"value":89,"toc":645},"minimark",[90,107,172,177,200,206,217,329,419,435,441,451,519,546,552,558,599,635,641],[91,92,93,94,98,99,102,103,106],"p",{},"A declaration file is a Nix function returning an attribute set keyed by Pin name. It can request ",[95,96,97],"code",{},"pin",", ",[95,100,101],{},"pkgs",", and ",[95,104,105],{},"lib","; declare only the arguments you need:",[108,109,114],"pre",{"className":110,"code":111,"language":112,"meta":113,"style":113},"language-nix shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{ pin }: {\n  patchelf = pin.github \"NixOS\u002Fpatchelf\";\n}\n","nix","",[95,115,116,135,166],{"__ignoreMap":113},[117,118,121,125,129,132],"span",{"class":119,"line":120},"line",1,[117,122,124],{"class":123},"sMK4o","{",[117,126,128],{"class":127},"sHdIc"," pin",[117,130,131],{"class":123}," }:",[117,133,134],{"class":123}," {\n",[117,136,138,142,145,147,150,153,156,160,163],{"class":119,"line":137},2,[117,139,141],{"class":140},"spNyl","  patchelf",[117,143,144],{"class":123}," =",[117,146,128],{"class":127},[117,148,149],{"class":123},".",[117,151,152],{"class":127},"github",[117,154,155],{"class":123}," \"",[117,157,159],{"class":158},"sfazB","NixOS\u002Fpatchelf",[117,161,162],{"class":123},"\"",[117,164,165],{"class":123},";\n",[117,167,169],{"class":119,"line":168},3,[117,170,171],{"class":123},"}\n",[173,174,176],"h2",{"id":175},"data-hierarchy","Data hierarchy",[178,179,180,188,194],"ul",{},[181,182,183,187],"li",{},[184,185,186],"strong",{},"Pin",": one Checker, one Version, and one or more Sources; the atomic unit of selection and updates.",[181,189,190,193],{},[184,191,192],{},"Source",": one Fetcher, one source Hash, and that Source's patches and Packages.",[181,195,196,199],{},[184,197,198],{},"Package",": one Builder with its dependency artifacts and Derived Hash.",[173,201,203],{"id":202},"pinmk",[95,204,205],{},"pin.mk",[91,207,208,209,212,213,216],{},"Combine Checkers, Fetchers, and Packages independently. For a single Source, provide a top-level ",[95,210,211],{},"fetcher","; the Source is named ",[95,214,215],{},"default",":",[108,218,220],{"className":110,"code":219,"language":112,"meta":113,"style":113},"{ pin }: {\n  demo = pin.mk {\n    checker = pin.checker.cmd \"printf '0.18.0'\";\n    fetcher = pin.fetcher.github {\n      target = \"NixOS\u002Fpatchelf\";\n    };\n  };\n}\n",[95,221,222,232,248,276,296,312,318,324],{"__ignoreMap":113},[117,223,224,226,228,230],{"class":119,"line":120},[117,225,124],{"class":123},[117,227,128],{"class":127},[117,229,131],{"class":123},[117,231,134],{"class":123},[117,233,234,237,239,241,243,246],{"class":119,"line":137},[117,235,236],{"class":140},"  demo",[117,238,144],{"class":123},[117,240,128],{"class":127},[117,242,149],{"class":123},[117,244,245],{"class":127},"mk",[117,247,134],{"class":123},[117,249,250,253,255,257,259,262,264,267,269,272,274],{"class":119,"line":168},[117,251,252],{"class":140},"    checker",[117,254,144],{"class":123},[117,256,128],{"class":127},[117,258,149],{"class":123},[117,260,261],{"class":127},"checker",[117,263,149],{"class":123},[117,265,266],{"class":127},"cmd",[117,268,155],{"class":123},[117,270,271],{"class":158},"printf '0.18.0'",[117,273,162],{"class":123},[117,275,165],{"class":123},[117,277,279,282,284,286,288,290,292,294],{"class":119,"line":278},4,[117,280,281],{"class":140},"    fetcher",[117,283,144],{"class":123},[117,285,128],{"class":127},[117,287,149],{"class":123},[117,289,211],{"class":127},[117,291,149],{"class":123},[117,293,152],{"class":127},[117,295,134],{"class":123},[117,297,299,302,304,306,308,310],{"class":119,"line":298},5,[117,300,301],{"class":140},"      target",[117,303,144],{"class":123},[117,305,155],{"class":123},[117,307,159],{"class":158},[117,309,162],{"class":123},[117,311,165],{"class":123},[117,313,315],{"class":119,"line":314},6,[117,316,317],{"class":123},"    };\n",[117,319,321],{"class":119,"line":320},7,[117,322,323],{"class":123},"  };\n",[117,325,327],{"class":119,"line":326},8,[117,328,171],{"class":123},[330,331,332,345],"table",{},[333,334,335],"thead",{},[336,337,338,342],"tr",{},[339,340,341],"th",{},"Field",[339,343,344],{},"Meaning",[346,347,348,361,371,383,396,406],"tbody",{},[336,349,350,355],{},[351,352,353],"td",{},[95,354,261],{},[351,356,357,358],{},"Required; from ",[95,359,360],{},"pin.checker.*",[336,362,363,368],{},[351,364,365],{},[95,366,367],{},"sources",[351,369,370],{},"Optional nonempty attribute set of named Sources",[336,372,373,377],{},[351,374,375],{},[95,376,211],{},[351,378,379,380,382],{},"Required when ",[95,381,367],{}," is absent; single-Source shorthand",[336,384,385,390],{},[351,386,387],{},[95,388,389],{},"patches",[351,391,392,393],{},"Patch list for a single Source; defaults to ",[95,394,395],{},"[]",[336,397,398,403],{},[351,399,400],{},[95,401,402],{},"postPatch",[351,404,405],{},"Patch script for a single Source; defaults to an empty string",[336,407,408,413],{},[351,409,410],{},[95,411,412],{},"packages",[351,414,415,416],{},"Named Package attribute set for a single Source; defaults to ",[95,417,418],{},"{}",[91,420,421,422,98,424,98,426,102,428,430,431,149],{},"For multiple Sources, put ",[95,423,211],{},[95,425,389],{},[95,427,402],{},[95,429,412],{}," inside each Source. See ",[432,433,434],"a",{"href":35},"Multiple Sources",[173,436,438],{"id":437},"pingithub",[95,439,440],{},"pin.github",[91,442,443,444,447,448,450],{},"Accepts an ",[95,445,446],{},"\"owner\u002Frepo\""," string or structured arguments. Combines a GitHub release Checker with a GitHub Fetcher and creates only the ",[95,449,215],{}," Source.",[108,452,454],{"className":110,"code":453,"language":112,"meta":113,"style":113},"{ pin }: {\n  patchelf = pin.github {\n    target = \"NixOS\u002Fpatchelf\";\n    rev = version: version;\n  };\n}\n",[95,455,456,466,480,495,511,515],{"__ignoreMap":113},[117,457,458,460,462,464],{"class":119,"line":120},[117,459,124],{"class":123},[117,461,128],{"class":127},[117,463,131],{"class":123},[117,465,134],{"class":123},[117,467,468,470,472,474,476,478],{"class":119,"line":137},[117,469,141],{"class":140},[117,471,144],{"class":123},[117,473,128],{"class":127},[117,475,149],{"class":123},[117,477,152],{"class":127},[117,479,134],{"class":123},[117,481,482,485,487,489,491,493],{"class":119,"line":168},[117,483,484],{"class":140},"    target",[117,486,144],{"class":123},[117,488,155],{"class":123},[117,490,159],{"class":158},[117,492,162],{"class":123},[117,494,165],{"class":123},[117,496,497,500,502,505,507,509],{"class":119,"line":278},[117,498,499],{"class":140},"    rev",[117,501,144],{"class":123},[117,503,504],{"class":127}," version",[117,506,216],{"class":123},[117,508,504],{"class":127},[117,510,165],{"class":123},[117,512,513],{"class":119,"line":298},[117,514,323],{"class":123},[117,516,517],{"class":119,"line":314},[117,518,171],{"class":123},[91,520,521,522,525,526,529,530,533,534,98,537,98,540,98,542,102,544,149],{},"Specify the target using either ",[95,523,524],{},"target"," or ",[95,527,528],{},"owner"," and ",[95,531,532],{},"repo","; do not mix them. Other fields are ",[95,535,536],{},"rev",[95,538,539],{},"fetcherArgs",[95,541,389],{},[95,543,402],{},[95,545,412],{},[173,547,549],{"id":548},"pingit",[95,550,551],{},"pin.git",[91,553,554,555,557],{},"Accepts a repository URL string or structured arguments. Combines a Git Checker with a Git Fetcher and creates only the ",[95,556,215],{}," Source. By default, it tracks Git HEAD:",[108,559,561],{"className":110,"code":560,"language":112,"meta":113,"style":113},"{ pin }: {\n  patchelf = pin.git \"https:\u002F\u002Fgithub.com\u002FNixOS\u002Fpatchelf.git\";\n}\n",[95,562,563,573,595],{"__ignoreMap":113},[117,564,565,567,569,571],{"class":119,"line":120},[117,566,124],{"class":123},[117,568,128],{"class":127},[117,570,131],{"class":123},[117,572,134],{"class":123},[117,574,575,577,579,581,583,586,588,591,593],{"class":119,"line":137},[117,576,141],{"class":140},[117,578,144],{"class":123},[117,580,128],{"class":127},[117,582,149],{"class":123},[117,584,585],{"class":127},"git",[117,587,155],{"class":123},[117,589,590],{"class":158},"https:\u002F\u002Fgithub.com\u002FNixOS\u002Fpatchelf.git",[117,592,162],{"class":123},[117,594,165],{"class":123},[117,596,597],{"class":119,"line":168},[117,598,171],{"class":123},[91,600,601,602,604,605,98,608,98,611,98,614,98,617,102,620,623,624,529,626,628,629,98,631,102,633,149],{},"Structured arguments must use ",[95,603,524],{},". You can also set the Checker's ",[95,606,607],{},"mode",[95,609,610],{},"branch",[95,612,613],{},"ref",[95,615,616],{},"include",[95,618,619],{},"exclude",[95,621,622],{},"sort","; the Fetcher's ",[95,625,536],{},[95,627,539],{},"; and the Source's ",[95,630,389],{},[95,632,402],{},[95,634,412],{},[91,636,637,638,640],{},"Use ",[95,639,205],{}," for more complex combinations. Unknown declaration fields, Fetcher mapping errors, and deterministic configuration errors are reported before Checkers run.",[642,643,644],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":113,"searchDepth":137,"depth":137,"links":646},[647,648,649,650],{"id":175,"depth":137,"text":176},{"id":202,"depth":137,"text":205},{"id":437,"depth":137,"text":440},{"id":548,"depth":137,"text":551},"pin.mk, pin.github, pin.git, and the relationship between Pins, Sources, and Packages.","md",null,{},true,{"title":56,"description":651},"BMf8g9G3TP4Ak22tLuhBVmfGGWRGETLJkA9IHfXwN3s",[659,661],{"title":52,"path":53,"stem":54,"description":660,"children":-1},"nix-pins.toml, environment variables, paths, and concurrency settings.",{"title":60,"path":61,"stem":62,"description":662,"children":-1},"Arguments, version selection rules, and examples for all built-in version checkers.",1791031184614]