aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-06-17libexpr: hook up bison destructors for state objectseldritch horrors
this doesn't help much yet since the state objects themselves also leak all memory they are given, but it is a first necessary step to properly managing parser memory. notably we have to clear $$ when returning from the parser since even the start symbol is subject to automatic deletion by the bison-generated parser before returning control to the call site Change-Id: I80245b0c747308e80923e7f18ce4e1a4898f93b0
2024-06-17mini-refactor "lambda.name or anonymous lambda" logicQyriad
Change-Id: I08d39c4ad5b967de526c0d5c5e6299256c7967f3
2024-06-17repl: implement tab completing :colon commandsQyriad
This uses a minor hack in which we check the rl_line_buffer global variable to workaround editline not including the colon in its completion callback. Fixes #361 Change-Id: Id159d209c537443ef5e37a975982e8e12ce1f486
2024-06-17Merge "Merge pull request #10799 from hercules-ci/safer-tab-completion" into ↵jade
main
2024-06-17Merge changes I9cf007c8,I9b9ba058 into mainjade
* changes: releng: fix broken manifest from 2.90-rc1 Change the sqlite missing valid path message to say it's the db
2024-06-16Merge "build: correctly propagate changes to Lix source to manual" into mainQyriad
2024-06-16releng: fix broken manifest from 2.90-rc1Jade Lovelace
Well that is embarrassing. I think the proper thing is to just quickly ship a -rc2, so I will open a backport of this. $ curl https://releases.lix.systems/manifest.nix # This file was generated by releng/create_release.xsh in Lix { aarch64-linux = "/nix/store/mrbknq000af7iaqhk53bnpk1fvfrc1xp-lix-2.90.0-rc1"; aarch64-darwin = "/nix/store/z1bdccwsk34iv491aygh0mm1lgpf7yy1-lix-2.90.0-rc1"; x86_64-darwin = "/nix/store/xqvfpdhzck44v6kyhgi9f8v0xybksb6a-lix-2.90.0-rc1"; x86_64-linux = "/nix/store/h2ml0nx4477r84y82jgm8y80jpr72gqw-lix-release-tarballs"; } Change-Id: I9cf007c850c2faf995a3a9d92457517b8501d1a1
2024-06-16Merge changes I81e76796,Iba319126 into mainArtemis Tosini
* changes: libutil: Set boost defines for FreeBSD meson.build: Allow undefined symbols on FreeBSD
2024-06-15Change the sqlite missing valid path message to say it's the dbJade Lovelace
I meant to edit https://gerrit.lix.systems/c/lix/+/1161 but apparently clicked the wrong button somehow. Oops. Change-Id: I9b9ba058ec9206d3c8abe125d91dc554cced52fe
2024-06-16Merge changes I07d2da41,I864d7340,I86612c64 into mainjulia
* changes: Change error messages about 'invalid paths' to 'path does not exist'. Add a clearer error message for InvalidPathError during evaluation Harmonise the Store::queryPathInfoUncached interface
2024-06-16Merge "docs: expand importNative/exec example (#10803)" into mainjade
2024-06-16Merge pull request #10799 from hercules-ci/safer-tab-completionRobert Hensing
Add repl completion test (cherry picked from commit 1e2b26734b4da101247678aec405c9dcfdc33f98) Change-Id: Ic3de39e71960a05a8676190b1ec9a7f0bb6057f5 Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
2024-06-16Change error messages about 'invalid paths' to 'path does not exist'.julia
Fixes #270. Change-Id: I07d2da41498cfdf324a03af40533044d58c97c7e
2024-06-16Add a clearer error message for InvalidPathError during evaluationjulia
Part of #270, #271 Change-Id: I864d7340f26d3c0f9c45db7b6b545face38d8294
2024-06-16Harmonise the Store::queryPathInfoUncached interfacejulia
This: - Consistently returns `nullptr` for a non-existent store path, instead of a mix of `nullptr` and throwing exceptions. - If a store returns "bad" store paths in response to a request (e.g. incorrect hash or name), don't cache this result. This removes some duplication of code at the cache-access layer of queryPathInfo() checking this, and ­allows us to provide more specific errors. Part of #270. Change-Id: I86612c6499b1a37ab872c712c2304d6a3ff19edb
2024-06-16build: correctly propagate changes to Lix source to manualQyriad
This adds the nix executable as an input argument to the custom targets that build the manual (HTML, and the man pages), so that changes to things like src/nix/nix.md cause the correct rebuilds Change-Id: Iffaa2c14acbfc721caef7b8cae9b53ecd365f26d
2024-06-16libutil: Set boost defines for FreeBSDArtemis Tosini
FreeBSD uses libunwind unwind.h, which does not require `_GNU_SOURCE` to expose `_Unwind_Backtrace`. Tell Boost that. Change-Id: I81e767967b1458118b86d212b5552d4d0a1200d9
2024-06-16meson.build: Allow undefined symbols on FreeBSDArtemis Tosini
The linker cannot find environ while linking libutil. Fix build by allowing undefined symbols Change-Id: Iba319126284d48454b50db40d3aadf37e0339668
2024-06-15version: update to 2.91-dev for mainJade Lovelace
This commit constitutes the branch-off for 2.91. The parent of this commit will be the branch point for release-2.90. Change-Id: I7f047545df29a9cff93346137c865dcbf1415488
2024-06-15releng: automatically add to the summary pageJade Lovelace
Also delete the obsolescent maintainers/release-notes script that is unmaintained. Change-Id: I3f4a75d790e8e00e970358ca8f32e8295c91aac3
2024-06-15release: release notes for 2.90.0Jade Lovelace
For now we just need to put the release notes in the final spot. We will have to fix the date on both 2.90 and 2.91 branches, but such as it is. Release created with releng/create_release.xsh Closes: https://git.lix.systems/lix-project/lix/issues/318 Change-Id: I38e79b40e7f632c8a286f2f09865a84dc93eca90
2024-06-14version: update to 2.90.0-rc2Jade Lovelace
Change-Id: I7cfa8414fa937de940b1598cc300497ce2d47635
2024-06-14release: merge release 2.90.0-rc1 back to mainlineJade Lovelace
This merge commit returns to the previous state prior to the release but leaves the tag in the branch history. Release created with releng/create_release.xsh Change-Id: I92296a1746b54a081004fe2bb23e9e37fd33b3e5
2024-06-14release: 2.90.0-rc1 "Vanilla Ice Cream"2.90.0-rc1Jade Lovelace
Release produced with releng/create_release.xsh Change-Id: Ib8df5ea5096d47b25f74988447146c1b5072b869
2024-06-15Merge changes from topic "releng" into mainjade
* changes: releng: add sha256 for the manual tarball releng: fix upload of multiarch images to forgejo releng: fix git checking releng: fix logging inside interactive xonsh releng: support multiple systems version: update to 2.90.0-rc1
2024-06-13releng: add sha256 for the manual tarballJade Lovelace
Whoops. Change-Id: Ic6f8cdcb074d679e9b1fc3323c106cc853328dcc
2024-06-13releng: fix upload of multiarch images to forgejoJade Lovelace
Forgejo appears to immediately delete registry content that is overwritten. This means that we are forced to delete our previous workaround of making a temporary tag and use a new, more absurd workaround of making an entire temporary image that we basically only need to create to get its hash. However, on the plus side, the new workaround doesn't create garbage tags to begin with, which means that we don't have to deal with GitHub not implementing the standardized tag delete endpoint and instead only implementing a proprietary one. Upstream-Bug: https://github.com/containers/skopeo/issues/2354 Change-Id: I220e7ce9a17fd230c38882f12c009a166dcc9336
2024-06-13releng: fix git checkingJade Lovelace
Change-Id: I82ddd918311b48e596adb807b81221973113fe7a
2024-06-13releng: fix logging inside interactive xonshJade Lovelace
I don't know when this broke, it seems like it happened since the 24.05 upgrade, so xonsh 0.15. What happened is that xonsh was trying to intercept log output, which explodes if you have the logger survive past one command input. This is, however, impossible to avoid if you are trying to use logging when you import releng from inside xonsh for interactive use! The error below is because the memory handler backing the stdout/stderr of the one command that's just been run was closed after the command completed. Change-Id: I2be642aebf93da9818d08ff8b97c2e72ba5ac581 --- Logging error --- Traceback (most recent call last): File "/nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/lib/python3.11/logging/__init__.py", line 1113, in emit stream.write(msg + self.terminator) File "/nix/store/34951j60xcsw6zj4v8lsaf491acv0by3-python3-3.11.9-env/lib/python3.11/site-packages/xonsh/base_shell.py", line 183, in write self.mem.write(s) ValueError: I/O operation on closed file. Call stack: File "/nix/store/xgdp1p1gv8ni1awnkzyqasnn6gz5wlvx-xonsh-0.15.1/bin/xonsh", line 8, in <module> sys.exit(main()) File "/nix/store/34951j60xcsw6zj4v8lsaf491acv0by3-python3-3.11.9-env/lib/python3.11/site-packages/xonsh/main.py", line 470, in main sys.exit(main_xonsh(args)) File "/nix/store/34951j60xcsw6zj4v8lsaf491acv0by3-python3-3.11.9-env/lib/python3.11/site-packages/xonsh/main.py", line 514, in main_xonsh shell.shell.cmdloop() File "/nix/store/34951j60xcsw6zj4v8lsaf491acv0by3-python3-3.11.9-env/lib/python3.11/site-packages/xonsh/ptk_shell/shell.py", line 406, in cmd loop line = self.singleline(auto_suggest=auto_suggest) File "/nix/store/34951j60xcsw6zj4v8lsaf491acv0by3-python3-3.11.9-env/lib/python3.11/site-packages/xonsh/ptk_shell/shell.py", line 374, in sin gleline line = self.prompter.prompt(**prompt_args) File "/nix/store/34951j60xcsw6zj4v8lsaf491acv0by3-python3-3.11.9-env/lib/python3.11/site-packages/prompt_toolkit/shortcuts/prompt.py", line 1 026, in prompt return self.app.run( File "/nix/store/34951j60xcsw6zj4v8lsaf491acv0by3-python3-3.11.9-env/lib/python3.11/site-packages/prompt_toolkit/application/application.py", line 1002, in run return asyncio.run(coro) File "/nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/lib/python3.11/asyncio/runners.py", line 189, in run with Runner(debug=debug) as runner: File "/nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/lib/python3.11/asyncio/runners.py", line 59, in __enter__ self._lazy_init() File "/nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/lib/python3.11/asyncio/runners.py", line 137, in _lazy_init self._loop = events.new_event_loop() File "/nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/lib/python3.11/asyncio/events.py", line 810, in new_event_loop return get_event_loop_policy().new_event_loop() File "/nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/lib/python3.11/asyncio/events.py", line 699, in new_event_loop return self._loop_factory() File "/nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/lib/python3.11/asyncio/unix_events.py", line 64, in __init__ super().__init__(selector) File "/nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/lib/python3.11/asyncio/selector_events.py", line 54, in __init__ logger.debug('Using selector: %s', selector.__class__.__name__) Message: 'Using selector: %s' Arguments: ('EpollSelector',) Change-Id: I90959809129aaf96aad4577599031688599ed85e
2024-06-13packaging: Move binaryTarball to a passthru attr in package.nixJade Lovelace
This is motivated by flakes being bad and all the stuff that calls things by "system" being utterly unable to cope with cross compilation. So if we go shove it in package.nix it is suddenly usable from cross contexts. Usage: ``` nix build -L .#nix-riscv64-linux.binaryTarball ``` Change-Id: I702ebf2ac5bd9d1c57662f968b000073134df336
2024-06-13flake.nix: add riscv64 cross targetJade Lovelace
It builds. I have not tested the binaries since I don't have hardware, but I would be rather surprised if it were broken, given that nix *runs* on this platform. Change-Id: I0b474ffcd4a431bf117a303d0b65fa6532113f48
2024-06-13releng: support multiple systemsJade Lovelace
I guess this is kind of important to being able to "release it". Change-Id: Id6f295d0b4944fa1203783a400a246727dbd94b6
2024-06-13version: update to 2.90.0-rc1Jade Lovelace
Change-Id: I913852cfb88b3b300ffb1050a91784be659ae66a
2024-06-13Merge "tests/libcmd: set HOME to a temporary directory" into mainalois31
2024-06-12releng: fix docs uploadJade Lovelace
There were two bugs I found: 1. If the build isn't already done in the store, nix-store --realise does not know how to build it. You have to just give it the derivation and I guess it will realise all outputs, which is fine. 2. cp without -T will not overwrite an existing manual directory, creating a path manual/manual. Change-Id: Ibebfd136a266da5330944a985e636ebb776f1909
2024-06-12.github: clean up stale things and wrong referencesJade Lovelace
We do not need a stale bot. We do not need dependabot. Fixes: https://git.lix.systems/lix-project/lix/issues/391 Change-Id: I983fae4dc4cd9022b12f70e330b5c984c5fc1b9d
2024-06-12dev shell: Add bashInteractivePierre Bourdon
This was bothersome to me as a zsh+direnv user. Change-Id: Ia5b54cc63647a5c6ced2b5412e972dac1abf8184
2024-06-12tests/flake-registry: Fix occasional deadlocksJade Lovelace
This seems to have been caused by having the wrong PID. I don't know why it worked before in the sandbox, but the code was definitely wrong before, so let's just fix it. Change-Id: I556580bdf614c716566310e975a36daa6d6c9a91
2024-06-12doc: Write an index of environment variables used in testsuiteJade Lovelace
This was originally going to be just the testsuite but I kinda just documented all of them. I am tired of us not documenting these. This is a starting point to producing an actually good index. I would like to enforce it in a pre-commit hook eventually that we document all environment variables used in Lix itself, even if it is terse dev facing docs. This is full of a bunch of TODOs caused by auditing code. They should probably be done at some point. Change-Id: I7c0d3b257e19bae23d47d1efbd7361d203bccb0e
2024-06-12doc/testing.md: Rewrite some outdated sections for meson and current source ↵Jade Lovelace
layout Change-Id: Ia23f82c9a564b55bd799afbda59c28c9b0a65c13
2024-06-12doc: rewrite the multi-user documentation to actually talk about securityJade Lovelace
It's in the security section, and it was totally outdated anyway. I took the opportunity to write down the stuff we already believed. Change-Id: I73e62ae85a82dad13ef846e31f377c3efce13cb0
2024-06-12tests: verify that NIX_DAEMON_PACKAGE's version looks like a versionJade Lovelace
Followup to https://gerrit.lix.systems/c/lix/+/1417 to ensure that this parser will never take something that doesn't look like a version. It turns out this problem is less alarming than initially thought because it only applies to the testsuite in a non-default mode. Change-Id: I26aba24aaf0215f2b782966314b94784db766266
2024-06-12Check devShells in CIJade Lovelace
We should not let these regress in CI by having broken dependencies or similar. Still need to fix the evaluation error checking in buildbot-nix, but this is a useful step regardless. Fixes: https://git.lix.systems/lix-project/lix/issues/383 Change-Id: I3883184165440e66256c989117f2ab2e54c3aafd
2024-06-12Misc workaround removals since 24.05 upgradeJade Lovelace
Change-Id: I9491b103333cb0e25c245199e88365ded7800d2e
2024-06-12[resubmit] flake: update nixpkgs pin 23.11->24.05 (+ boehmgc compat changes)Pierre Bourdon
-- message from cl/1418 -- The boehmgc changes are bundled into this commit because doing otherwise would require an annoying dance of "adding compatibility for < 8.2.6 and >= 8.2.6" then updating the pin then removing the (now unneeded) compatibility. It doesn't seem worth the trouble to me given the low complexity of said changes. Rebased coroutine-sp-fallback.diff patch taken from https://github.com/NixOS/nixpkgs/pull/317227 -- jade resubmit changes -- This is a resubmission of https://gerrit.lix.systems/c/lix/+/1418, which was reverted in https://gerrit.lix.systems/c/lix/+/1432 for breaking CI evaluation without being detected. I have run `nix flake check -Lv` on this one before submission and it passes on my machine and crucially without eval errors, so the CI result should be accurate. It seems like someone renamed forbiddenDependenciesRegex to forbiddenDependenciesRegexes in nixpkgs and also changed the type incompatibly. That's pretty silly, but at least it's just an eval error. Also, `xonsh` regressed the availability of `xonsh-unwrapped`, but it was fixed by us in https://github.com/NixOS/nixpkgs/pull/317636, which is now in our channel, so we update nixpkgs compared to the original iteration of this to simply get that. We originally had a regression related to some reorganization of the nixpkgs lib test suite in which there was broken parameter passing. This, too, we got quickfixed in nixpkgs, so we don't need any changes for it: https://github.com/NixOS/nixpkgs/pull/317772 Related: https://gerrit.lix.systems/c/lix/+/1428 Fixes: https://git.lix.systems/lix-project/lix/issues/385 Change-Id: I26d41ea826fec900ebcad0f82a727feb6bcd28f3
2024-06-12tests/libcmd: set HOME to a temporary directoryAlois Wohlschlager
The libcmd unit test creates files (more specifically, the fetcher cache) in its home directory. In the single-user sandbox, this leads to the creation of /homeless-shelter, since this is the default HOME and the root is writable. Unfortunately, this conflicts with the assumption of the functional tests that this directory does not exist. Use a different home directory to prevent these test failures, and thus restore the ability to build inside the single-user sandbox. Fixes: https://git.lix.systems/lix-project/lix/issues/365 Change-Id: I4df8c53d043234b95a7c0ac45fc5ee89e8d46aff
2024-06-12build: remove unused 'deps' variableQyriad
This never actually got used Change-Id: I8f3f1d413124b27913d59a75cff42319cbaac385
2024-06-11Merge changes from topic "releng" into mainjade
* changes: releng: add prod environment, ready for release releng: automatically figure out if we should tag latest for docker releng: support multiarch docker images manual: rewrite the docker guide now that we have images Rewrite docker to be sensible and smaller Implement docker upload in the releng tools
2024-06-10Merge "tests: fix daemon version in isDaemonNewer function" into mainjade
2024-06-10Merge "Revert "flake: update nixpkgs pin 23.11->24.05 (+ boehmgc compat ↵jade
changes)"" into main