• 2 Posts
  • 11 Comments
Joined 4 years ago
cake
Cake day: June 3rd, 2020

help-circle
  • Okay, hopefully someone here can point out where I am going wrong with setting up my dev shell the way I want. I am currently using direnv and nix-direnv to manage the dev shell, and I found this blog post which shows a way to start and stop MySQL/Mariadb but I am having some weird issues with it.

    Currently my flake looks like this:

    {
      description = "A basic flake with a shell";
      inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
      inputs.flake-utils.url = "github:numtide/flake-utils";
    
      outputs = { nixpkgs, flake-utils, ... }@inputs:
        flake-utils.lib.eachDefaultSystem (system:
          let
            pkgs = nixpkgs.legacyPackages.${system};
          in
          {
            devShells.default = pkgs.mkShell {
              packages = with pkgs; [
                bashInteractive
                php
              ];
    
              buildInputs = [ pkgs.mariadb ];
    
              shellHook = ''
              export MYSQL_BASEDIR=${pkgs.mariadb}
              export MYSQL_HOME=$PWD/.direnv/mysql
              export MYSQL_DATADIR=$MYSQL_HOME/data
              export MYSQL_UNIX_PORT=$MYSQL_HOME/mysql.sock
              export MYSQL_PID_FILE=$MYSQL_HOME/mysql.pid
              alias mysql='mysql -u root'
    
              if [[ ! -d $MYSQL_HOME ]]; then
                mariadb-install-db --auth-root-authentication-method=normal \
                  --datadir="$MYSQL_DATADIR" --basedir="$MYSQL_BASEDIR" \
                  --pid-file="$MYSQL_PID_FILE"
              fi
    
              mariadbd --datadir=$MYSQL_DATADIR --pid-file=$MYSQL_PID_FILE \
                --socket=$MYSQL_UNIX_PORT --tmpdir='/tmp' 2>/dev/null &
              MYSQL_PID=$!
              '';
            };
          });
    }
    

    When I run it like this mariadbd starts just fine, but doesn’t get backgrounded dispite the & making that shell session useless which is not what I want as I have to spawn a second shell just to do anything.

    Even weirder is when I add the finish() function and the call to trap like in the blog post then mariadbd doesn’t start (or starts and immedently gets killed).













  • I’m very much for this idea, and sounds similar to what other projects have. So that this will have a :thumbs up: from me.

    A few questions I have, that hopefully you already have answers for:

    • Based on the section for “Removing members” assuming that a member doesn’t do any of the three listed items for removal (they stay active, abide by the rules for being part of the council, and doesn’t do anything that will cause a vote for their dissmissal) and assuming someone doesn’t step down. Is their place in the council perminate or will there be a regular vote for current members to stay in the council?
    • Exactly who are the ones that does the voting to add/dismiss people from the council? Is this internal to the current council members or the greater Lemmy community?
    • If there is a member of the council, who has not done anything to trigger a vote for dismissal by the council, but the greater community feels doesn’t have the communities best interests in mind is there any way for non-council members to take action?
    • How do you plan to quantitate the time someone spends promoting Lemmy or “doing other things that aim to improve Lemmy as a whole” (which is vague IMO)?

    Part of why I bring this up is looking at some other projects that have something similar (I’ll list two that have different apporaches here but there certainly are others):

    FreeBSD Core Team

    All seats of the core team is up for elections during the election period.

    Who can announce their intention to run

    Any FreeBSD commiter can announce their intention to run during a set period. Current members of the Core team can also announce their intention to run again during this period

    When elections take place

    Elecitions happen every 2 years

    Who has the ability to vote

    Any active commiters to the project

    What to do if there is an issue with a member of the core team

    The greater FreeBSD community can raise issues to a member of the Core Team where it gets handled internally and the results are made public after a disission has been made.

    Drupal Board of Directors

    The Drupal project has two “At-Large” seats set aside for the greater community.

    Who can announce their intention to run

    Any community member can announce their intention to run, including the current seat holder.

    When elections take place

    Each seat is up for elections every other year in a rotating basis, so there is an election each year for one of the seats.

    Who has the ability to vote

    Any one within the Drupal community

    What to do if there is an issue with one of the “At-Large” seat holders

    The greater Drupal community can raise issues to the Board of Directors where it gets handled internally and the results are made public after a disission has been made.