Page MenuHomeLubuntu Development

Packaging Requirements
Updated 257 Days AgoPublic

Purpose of this document

This is meant to provide all the requirements necessary to follow the Packaging Tutorial.

Requirements

  1. Software
    1. sudo apt install ssh git php-curl php-cli devscripts debhelper tar quilt arcanist (if arcanist poses any issues, follow these instructions.
  2. Configuration
    1. Uncomment the deb-src lines in /etc/apt/sources.list so apt build-dep works correctly. They should be duplicates of the normal deb lines except they begin with deb-src.
    2. So you get credit where credit's due:
      1. For git:
        1. git config --global user.name "your full name"
        2. git config --global user.email "your email address"
      2. For Debian tools:
        1. Add the following to $HOME/.bashrc:
          1. export DEBFULLNAME="your full name"
          2. export DEBEMAIL="your email address"
          3. export EMAIL="your email address"
        2. Reload your configuration for it to take effect immediately: source $HOME/.bashrc
  3. Set up ssh:
    1. Create a key
      1. Easy way
        1. ssh-keygen
        2. Accept the default name ($HOME/.ssh/id_rsa)
        3. Enter a password ≥ 5 characters
      2. Hard way
        1. ssh-keygen -C some-identifying-info -t ed25519 # more secure; alternately use -t rsa -b 4096
        2. Select a unique name e.g. $HOME/.ssh/phab # allows you to have more than one key
        3. Pick an even better password!
        4. Edit $HOME/.ssh/config to include
          1. Host phab.lubuntu.me
          2. IdentityFile ~/.ssh/phab
    2. Add ssh key to Phab:
      1. Go to Settings
      2. Click on "Personal Account Settings"
      3. Click on "SSH Public Keys" under "Authentication" on the left side
      4. Click SSH Key ActionsUpload Public Key
      5. Give your key a name (anything works) and then copy and paste the public key from the step above
  4. $HOME/.quiltrc from packaging guide
  5. Final Arcanist tweaks:
    1. arc set-config phabricator.uri "https://phab.lubuntu.me/"
    2. arc install-certificate

Extras

  1. gpg setup
    1. Get the software: sudo apt install gpg
    2. Make a new key: gpg --full-generate-key
    3. Select an RSA and RSA pair
    4. Select 4096 bits for key size
    5. Select expiration date, or none (note you can always move the date out farther)
    6. Verify and accept
    7. Enter your real name
    8. Enter your email address
    9. A comment is not necessary
    10. Give it a good password
    11. It takes a while to gain enough entropy to finish the creation. Open a new terminal and find / 2>/dev/null and that should help it along
    12. Add DEBSIGN_KEYID=your-key-id to ~/.devscripts. your-key-id should be equivalent to gpg --list-keys --with-colons your-email-above | grep -m 1 fpr | awk -F: '{print $10}'
  2. bzr setup
    1. Get the software: sudo apt install bzr
    2. Create a Launchpad account if you don't have one already.
    3. Create an ssh key or reuse one (see above) but note as of writing, ed25519 is not supported.
    4. Upload your key to Launchpad.
    5. Set your identification: bzr whoami "Your Name <your@emailaddress.org>"
    6. Login to Launchpad: bzr launchpad-login your-launchpad-username
    7. Edit $HOME/.ssh/config to include
      1. Host bazaar.launchpad.net git.launchpad.net
      2. User your-launchpad-username
    8. Add IdentityFile /path/to/ssh/key if you use a non-default key.
  3. ssh agent with keychain
    1. Get the software: sudo apt install keychain
    2. Added the following to the end of your $HOME/.bashrc:
      • keychain path-to-private-ssh-key-1 path-to-private-key-2 … path-to-private-key-n
      • . ~/.keychain/`uname -n`-sh
    3. Every time you login, you will be asked for all of your passwords and then they will be held in memory.
Last Author
wxl
Last Edited
Feb 10 2021, 7:36 AM

Event Timeline

wxl edited the content of this document. (Show Details)
wxl edited the content of this document. (Show Details)
wxl edited the content of this document. (Show Details)
wxl edited the content of this document. (Show Details)
wxl edited the content of this document. (Show Details)