)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"f4e416955ec3e1ed925a435c87138ecc7b021900","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2b1ca412_0f2fe7b0","updated":"2025-05-04 19:08:34.000000000","message":"Also see https://git.snix.dev/snix/snix/issues/112 - maybe we should think about a plan forward with how to best do this, with the example of the OCI builder.","commit_id":"761c93f395499a9f44e45f44dc4cbd7fae6dc96d"},{"author":{"_account_id":1000036,"name":"Yureka","email":"snix@yuka.dev","username":"yureka"},"change_message_id":"08ac768a38dfd1ce6f910857ad6c43a89c920300","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"69c1ec3d_032a54eb","updated":"2025-06-12 08:21:57.000000000","message":"I can at least confirm that this gets the stdenv build much further. Thanks","commit_id":"77fe37ce315c30261d716fdb1d0f0dcb6fb61683"}],"snix/build/src/oci/bundle.rs":[{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"f4e5488530ba720d52d7d9cc4b2d9210a31c5c31","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        debug!(scratch_path\u003d?scratch_path, path\u003d?p, \"about to create scratch dir\");"},{"line_number":44,"context_line":"        fs::create_dir_all(scratch_path.clone()).context(\"Unable to create scratch dir\")?;"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        // We need to propagate additional files into the build directory, while in theory it does not have to be"},{"line_number":47,"context_line":"        // in /build, in practice currently these files are always placed in /build and only used for passAsFile."},{"line_number":48,"context_line":"        if p \u003d\u003d Path::new(\"build\") {"},{"line_number":49,"context_line":"            for file in request.additional_files.iter() {"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"0a6fa9ad_fca23607","line":46,"updated":"2025-03-21 18:24:14.000000000","message":"`additional_files` don\u0027t necessarily live in `.scratch_paths`, this code shouldn\u0027t live in a loop around scratch_paths.\n\nI also don\u0027t think `additional_files` should be write-able by the builder (at least I hope nothing in nixpkgs relies on this).\n\nI think we should write all `additional_files` somewhere on the host (inside a created `path.join(\"additional_files\")` dir maybe), and then bind-mounted into the container.","commit_id":"bdc926e6996511c6499993fcf4ba93edec0c3677"},{"author":{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"},"change_message_id":"c24c274f89e3c73ce6b7020f3bb660144b304dce","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        debug!(scratch_path\u003d?scratch_path, path\u003d?p, \"about to create scratch dir\");"},{"line_number":44,"context_line":"        fs::create_dir_all(scratch_path.clone()).context(\"Unable to create scratch dir\")?;"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        // We need to propagate additional files into the build directory, while in theory it does not have to be"},{"line_number":47,"context_line":"        // in /build, in practice currently these files are always placed in /build and only used for passAsFile."},{"line_number":48,"context_line":"        if p \u003d\u003d Path::new(\"build\") {"},{"line_number":49,"context_line":"            for file in request.additional_files.iter() {"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"34776e5e_9f01195e","line":46,"in_reply_to":"0a6fa9ad_fca23607","updated":"2025-06-11 13:48:39.000000000","message":"@flokli@flokli.de as discussed offline, we may want to merge it as is to make the build work and improve in the future, ptal","commit_id":"bdc926e6996511c6499993fcf4ba93edec0c3677"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"36c3d35185105f133924d3a66e02f10d30cd71f9","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        debug!(scratch_path\u003d?scratch_path, path\u003d?p, \"about to create scratch dir\");"},{"line_number":44,"context_line":"        fs::create_dir_all(scratch_path.clone()).context(\"Unable to create scratch dir\")?;"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        // We need to propagate additional files into the build directory, while in theory it does not have to be"},{"line_number":47,"context_line":"        // in /build, in practice currently these files are always placed in /build and only used for passAsFile."},{"line_number":48,"context_line":"        if p \u003d\u003d Path::new(\"build\") {"},{"line_number":49,"context_line":"            for file in request.additional_files.iter() {"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"9154e926_e8392b52","line":46,"in_reply_to":"34776e5e_9f01195e","updated":"2025-06-12 08:42:08.000000000","message":"Acknowledged","commit_id":"bdc926e6996511c6499993fcf4ba93edec0c3677"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"f4e5488530ba720d52d7d9cc4b2d9210a31c5c31","unresolved":true,"context_lines":[{"line_number":44,"context_line":"        fs::create_dir_all(scratch_path.clone()).context(\"Unable to create scratch dir\")?;"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        // We need to propagate additional files into the build directory, while in theory it does not have to be"},{"line_number":47,"context_line":"        // in /build, in practice currently these files are always placed in /build and only used for passAsFile."},{"line_number":48,"context_line":"        if p \u003d\u003d Path::new(\"build\") {"},{"line_number":49,"context_line":"            for file in request.additional_files.iter() {"},{"line_number":50,"context_line":"                if file.path.components().count() \u003c 2"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"c26131f3_c663f931","line":47,"updated":"2025-03-21 18:24:14.000000000","message":"This is a nix-specific thing, but the builder shouldn\u0027t be nix-specific.\n\nWe might arguably also use this to populate a fake `/etc/{group,passwd}` in there.","commit_id":"bdc926e6996511c6499993fcf4ba93edec0c3677"},{"author":{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"},"change_message_id":"c24c274f89e3c73ce6b7020f3bb660144b304dce","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        fs::create_dir_all(scratch_path.clone()).context(\"Unable to create scratch dir\")?;"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        // We need to propagate additional files into the build directory, while in theory it does not have to be"},{"line_number":47,"context_line":"        // in /build, in practice currently these files are always placed in /build and only used for passAsFile."},{"line_number":48,"context_line":"        if p \u003d\u003d Path::new(\"build\") {"},{"line_number":49,"context_line":"            for file in request.additional_files.iter() {"},{"line_number":50,"context_line":"                if file.path.components().count() \u003c 2"}],"source_content_type":"text/x-rustsrc","patch_set":2,"id":"4264e832_2677ae94","line":47,"in_reply_to":"c26131f3_c663f931","updated":"2025-06-11 13:48:39.000000000","message":"Acknowledged","commit_id":"bdc926e6996511c6499993fcf4ba93edec0c3677"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"979dc6149e669a691c7d3a4e0ba98437e81b9260","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        debug!(scratch_path\u003d?scratch_path, path\u003d?p, \"about to create scratch dir\");"},{"line_number":44,"context_line":"        fs::create_dir_all(scratch_path.clone()).context(\"Unable to create scratch dir\")?;"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        // TODO(#112): this is a hack, in the general case we may not have the \"build\" directory and additional files"},{"line_number":47,"context_line":"        // may not have /build prefix. But in practice today snix_build.rs is the only user of the builder and"},{"line_number":48,"context_line":"        // it always sets up a /build scratch and populates all additional_files with the /build prefix."},{"line_number":49,"context_line":"        // For now this unblocks builds, but worth improving in the future."}],"source_content_type":"text/x-rustsrc","patch_set":5,"id":"60aae48c_287308fc","line":46,"updated":"2025-06-12 08:42:01.000000000","message":"https://git.snix.dev/snix/snix/issues/112 is about merkelization (and closed), but the shortcut we\u0027re making here is for additional files outside build/.\n\nCan you create a dedicated issue and link to it, instead of #112?","commit_id":"77fe37ce315c30261d716fdb1d0f0dcb6fb61683"},{"author":{"_account_id":1000009,"name":"Vova Kryachko","email":"v.kryachko@gmail.com","username":"vkryachko"},"change_message_id":"5da83b945b31efaadec7b628989351b83066b6c4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        debug!(scratch_path\u003d?scratch_path, path\u003d?p, \"about to create scratch dir\");"},{"line_number":44,"context_line":"        fs::create_dir_all(scratch_path.clone()).context(\"Unable to create scratch dir\")?;"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        // TODO(#112): this is a hack, in the general case we may not have the \"build\" directory and additional files"},{"line_number":47,"context_line":"        // may not have /build prefix. But in practice today snix_build.rs is the only user of the builder and"},{"line_number":48,"context_line":"        // it always sets up a /build scratch and populates all additional_files with the /build prefix."},{"line_number":49,"context_line":"        // For now this unblocks builds, but worth improving in the future."}],"source_content_type":"text/x-rustsrc","patch_set":5,"id":"45e13128_1e7a44ed","line":46,"in_reply_to":"60aae48c_287308fc","updated":"2025-07-05 14:24:44.000000000","message":"Done","commit_id":"77fe37ce315c30261d716fdb1d0f0dcb6fb61683"}]}
