└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Help and Documentation 2 | 3 | * Email Support: http://zfsonlinux.org/lists.html 4 | * FAQs and Tutorials: https://github.com/zfsonlinux/pkg-zfs/wiki 5 | 6 | Direct wiki edits for most things are welcome, but if you want to make a major change, then please create a new page or fork the wiki repo and submit a pull request. 7 | 8 | 9 | # Packaging for ZFS on Linux 10 | 11 | The home for this git repository is: 12 | 13 | * https://github.com/zfsonlinux/pkg-zfs 14 | 15 | The Debian GNU/Linux Wheezy and Jessie tags assume having upstream ZOL 16 | ZFS repository as a remote: 17 | ``` 18 | git remote add zol http://github.com/zfsonlinux/zfs.git 19 | ``` 20 | 21 | ZoL packages at https://launchpad.net/~zfs-native (the PPA) and 22 | http://archive.zfsonlinux.org/debian/ are built from this repository using the 23 | git-buildpackage tool. 24 | 25 | 26 | ## Casual Build Instructions 27 | 28 | If you are using APT to install ZoL, then just do quick builds like this: 29 | ``` 30 | $ apt-get source --build zfs-linux 31 | ``` 32 | This requires a corresponding `deb-src` line for each `deb` line in the 33 | `/etc/apt/sources.list.d` file for ZoL. 34 | 35 | 36 | ## Developer Build Instructions 37 | 38 | 1. Clone this repository: 39 | ``` 40 | $ git clone git://github.com/zfsonlinux/pkg-zfs.git 41 | $ cd pkg-zfs 42 | ``` 43 | 44 | 1. List the current releases by branch name: 45 | ``` 46 | $ git branch --list 'master/*' 47 | ``` 48 | 49 | 1. Or list previous releases by tag name: 50 | ``` 51 | $ git tag --list 'master/*' 52 | ``` 53 | 54 | 1. Optionally pull the latest upstream code: 55 | ``` 56 | $ git checkout upstream 57 | $ git pull git://github.com/zfsonlinux/zfs.git master 58 | ``` 59 | (Use `git remote add` and `git remote set-branches` if you do this frequently.) 60 | 61 | 1. Checkout the branch name or tag name that you want to build. For example, 62 | the latest code for Ubuntu 14.04 Trusty Tahr is: 63 | ``` 64 | $ git checkout master/ubuntu/trusty 65 | ``` 66 | 67 | 1. Optionally merge the upstream code. 68 | ``` 69 | $ git merge upstream 70 | ``` 71 | (Don't ignore merge conflicts. Learn how to use a `git mergetool` if this happens.) 72 | 73 | 1. Optionally update the `debian/changelog` file. 74 | ``` 75 | $ git-dch --auto --commit 76 | ``` 77 | 78 | 1. Now compile the software: 79 | ``` 80 | $ git-buildpackage -uc -us --source-option=--auto-commit 81 | ``` 82 | 83 | 1. And clean the working tree afterwards by doing this: 84 | ``` 85 | $ rm .gitignore 86 | $ git clean -df 87 | $ git reset --hard 88 | ``` 89 | 90 | # Release Instructions 91 | 92 | 1. Build a binary+source release like this: 93 | ``` 94 | $ git-buildpackage --git-tag [-sa|-sd] 95 | ``` 96 | (The `-sa` switch means "upload a new upstream tarball" for an out-series 97 | build. The `-sd` switch means "only upload the new overlay" for an in-series 98 | build.) 99 | 100 | 1. Synchronize the release bucket to your working copy. 101 | ``` 102 | $ s3cmd sync --dry-run s3://archive.zfsonlinux.org/ ./archive.zfsonlinux.org/ 103 | $ s3cmd sync s3://archive.zfsonlinux.org/ ./archive.zfsonlinux.org/ 104 | ``` 105 | 106 | 1. Update the release bucket like this: 107 | ``` 108 | $ cd ./archive/zfsonlinux.org/debian/ 109 | $ reprepro include wheezy /tmp/zfs-linux_${version}_amd64.changes 110 | ``` 111 | 112 | 1. Do a local installation in a clean sandbox to ensure that the `Release` and 113 | `Sources` files are sensible. 114 | 115 | 1. Give notice that you're touching the release bucket, and synchronize the new 116 | packages: 117 | ``` 118 | $ s3cmd sync --dry-run ./archive.zfsonlinux.org/ s3://archive.zfsonlinux.org/ 119 | $ s3cmd sync ./archive.zfsonlinux.org/ s3://archive.zfsonlinux.org/ 120 | ``` 121 | 122 | (Ideally, you would sync the pool first, and then sync the meta to ensure the 123 | smallest possible window of inconsistency.) 124 | 125 | 126 | ## Upstream Repositories 127 | 128 | The `upstream` branch in this repository is an unmodified copy of the 129 | http://github.com/zfsonlinux/zfs.git mainline. 130 | --------------------------------------------------------------------------------