libsyd 3.0.1

Rust-based C library for SydB☮x interaction via /dev/syd
Documentation

libsyd: SydB☮x /dev/syd interface implementation

SydB☮x GNU Linux Exherbo musl libc libsecc☮mp Paludis

libsyd is a comprehensive C library designed for interfacing with the SydB☮x environment. It offers functionalities for managing sandbox states, and facilitating runtime configuration and interaction with the Sydb☮x sandboxing environment.

syd.py is a Python module that uses ctypes to use libsyd.

Features

  • Interact with the /dev/syd device for sandbox management.
  • Straightforward integration with C and Python applications.

Prerequisites

  • Rust (1.65 or later)
  • Python 3.x (if using Python bindings)

Building and Installing from Source

To build and install libsyd from source, follow these steps:

  1. Clone the repository:
    git clone https://git.sr.ht/~alip/syd
    cd lib
    
  2. Use the Makefile which utilizes Cargo to build
    make
    make test
    
  3. Switch to root and install
    sudo make install
    

BUGS

Hey you, out there beyond the wall,
Breaking bottles in the hall,
Can you help me?

Report bugs to SydB☮x's bug tracker at https://todo.sr.ht/~alip/syd/:

  1. Always be polite, respectful, and kind: https://css-tricks.com/open-source-etiquette-guidebook/
  2. Keep your final change as small and neat as possible: https://tirania.org/blog/archive/2010/Dec-31.html
  3. Attaching poems with the bug report encourages consideration tremendously.

COPYRIGHT

  • SPDX-License-Identifier: LGPL-3.0-or-later
  • Copyright © 2023 Ali Polatel alip@chesswob.org

ChangeLog

3.0.1

  • go: initial libsyd Go bindings

3.0.0

  • Define LockState enum and LOCK_OFF, LOCK_EXEC and LOCK_ON constants. These were already defined for perl, and python so this makes the C library compatible.
  • use itoa crate to make syd_load function simpler and more efficient.
  • python: Implement the new function load.
  • perl: Implement the new function load.
  • Implement the new function syd_load.
  • python: Implement new functions panic and reset.
  • perl: Implement new functions panic and reset.
  • Implement new functions syd_panic() and syd_reset().
  • perl: fix argument handling of the exec function
  • perl: new constant $syd::LIBSYD_PATH points to the path of libsyd.so.
  • Start using nix to call lstat rather than Rust std.
  • Define __all__ for pysyd such that from syd import * becomes practical.

3.0.0-alpha.6

  • Initial Perl bindings

3.0.0-alpha.5

  • Fix tests

3.0.0-alpha.4

  • Drop cbindgen dependency, include syd.h

3.0.0-alpha.3

  • Add build instructions to the readme

3.0.0-alpha.2

  • Fix a problem with Doxygen API documentation generation

3.0.0-alpha.1

  • Initial implementation of libsyd & syd.py