Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

I actually wrote somethijg recently related to RPATH in Nix you might find interesting

https://fzakaria.com/2022/03/14/shrinkwrap-taming-dynamic-sh...



sort by: page size:

The description at the end of the article about how package management doesn't have to be done in a way that shares all the files sounds a lot like a description of https://nixos.org/nix/

FYI the interface format seems to be inspired by borg-prune[1].

[1] https://borgbackup.readthedocs.io/en/stable/usage/prune.html


Also, Ulrich Drepper's How To Write Shared Libraries [1] and ELF Handling For Thread-Local Storage [2].

[1] https://www.akkadia.org/drepper/dsohowto.pdf

[2] https://www.akkadia.org/drepper/tls.pdf


It's full control; remote files, for example will have an hash which you inline [1] so that the resultant hash is correctly computed.

[1] https://github.com/NixOS/nixpkgs/blob/842f900e73c7ce985218cc...


There is a proposal to make a Posix interface that is essentially similar.[1]

[1] http://austingroupbugs.net/view.php?id=859


I believe they have shifted to a Rust implementation.

https://github.com/mozilla-services/syncstorage-rs


That's how Perl's Path::Tiny[1] works, for example:

  path("/tmp/foo.txt")->copy("/tmp/bar.txt");
[1] - https://metacpan.org/pod/Path::Tiny

https://docs.python.org/3/library/zipfile.html?highlight=zip...

> If a member filename is an absolute path, a drive/UNC sharepoint and leading (back)slashes will be stripped, e.g.: ///foo/bar becomes foo/bar on Unix, and C:\foo\bar becomes foo\bar on Windows. And all ".." components in a member filename will be removed, e.g.: ../../foo../../ba..r becomes foo../ba..r. On Windows illegal characters (:, <, >, |, ", ?, and *) replaced by underscore (_).

Sure reads like directory traversal mitigation.


http://runplaybook.com/ is just rsync, right?

:-)



Have a look into my DB project: https://sirix.io | https://github.com/sirixdb/sirix

https://sirix.io/docs/concepts.html and in progress tutorial https://sirix.io/docs/jsoniq-tutorial.html may be especially helpful.

It basically turns updates into appends and is based on a persistent tree structure (the header with a reference to the (revision) root page has to be swapped atomically. Other than that the revision indexes for new data are always appended. In order to reduce copy-on-write overhead for updated page (fragments) a sliding snapshot for the data pages is applied.

Naturally, unchanged pages are simply referenced (e.g. through offsets into the file, thus sharing unchanged pages between revisions).

What's also special is a path summary of all unordered paths in a resource, which enables user-defined smaller tailored secondary indexes and other query rewrites :-)




Serious question - does anyone want this:

  ssh user@rsync.net diff some/file .zfs/snapshot/yesterday/some/file
We can implement this later today if it sounds useful ... I was sort of surprised that 'diff' was not already a whitelisted command[1] ...

[1] https://www.rsync.net/resources/howto/remote_commands.html


> Using ls for listing modules/classes...

Interesting. Just made me think of using a custom filesystem to navigate a codebase. Similar to: https://github.com/osnr/TabFS. I wonder if anyone has done this.


Possibly useful: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s16.htm...

In my memory of early Unix systems it wasn't a hard standard; some places /sbin wasn't user accessible, some it was.

I cannot recall if the att 3b2 systems had dynamic binaries in /sbin. if there was such a rule, that's the last place id expect it to be seen in the wild; i think in practice at sites it would've eroded by then into more of a "don't let users know these things exist" $PATH convenience.


But that doesn't specify protocal then, does it?

I.e., http://unix:/path would be very not backwards compatible


Another example is a sandboxing file system https://lwn.net/Articles/803890/

What's the difference with CVMFS[1] and Nix[2]?

[1] http://cernvm.cern.ch/portal/filesystem [2] http://nixos.org/nix/

next

Legal | privacy