Commit Graph

111 Commits

Author SHA1 Message Date
Brian Behlendorf 359a7bda2f Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
Conflicts:

	cmd/Makefile.am
2010-08-16 16:14:32 -07:00
Brian Behlendorf 7f939f28eb Add zpool_layout command
The zpool_layout command is designed to automatically scan the
udev /dev/disk/by-path directory and generate a /etc/zfs/zdev.conf
file.  It does this by enumerating the disks attached to the
specified buses/ports and sequentially mapping them to short
<channel><rank> names in /dev/disk/zpool/.  This tool should only
be run after all the available disks have been discovered.  And
the resulting config file does not need to be regenerated unless
your backend configuration changes.
2010-08-16 15:54:06 -07:00
Brian Behlendorf 9c024583e9 Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
Conflicts:

	scripts/common.sh.in
2010-07-28 16:36:49 -07:00
Brian Behlendorf 26e61dd074 Generate common.sh with paths from configure
The common.sh script assumed that it was either being run from
in-tree or was installed under /usr/libexec/zfs.  If this was
not the case, because of say the default --prefix=/usr/local,
then the paths would be wrong.  To fix this common.sh is now
generated from common.sh.in with the correct path information
provided at configure time.
2010-07-28 16:30:45 -07:00
Brian Behlendorf 17d3c1b73f Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch 2010-07-28 09:40:58 -07:00
Brian Behlendorf 0f237a4379 Add Debian and Slackware style packaging via alien
The long term fix for Debian and Slackware style packaging is
to add native support for building these packages.  Unfortunately,
that is a large chunk of work I don't have time for right now.
That said it would be nice to have at least basic packages for
these distributions.

As a quick short/medium term solution I've settled on using alien
to convert the RPM packages to DEB or TGZ style packages.  The
build system has been updated with the following build targets
which will first build RPM packages and then convert them as
needed to the target package type:

  make rpm: Create .rpm packages
  make deb: Create .deb packages
  make tgz: Create .tgz packages
  make pkg: Create the right package type for your distribution

The solution comes with lot of caveats and your mileage may vary.
But basically the big limitations are that the resulting packages:

  1) Will not have the correct dependency information.
  2) Will not include the kernel version in the release.
  3) Will not handle all differences between distributions.

But the resulting packages should be easy to install and remove
from your system and take care of running 'depmod -a' and such.
As I said at the top this is not the right long term solution.
If any of the upstream distribution maintainers want to jump in
and help do this right for their distribution I'd love the help.
2010-07-28 09:37:04 -07:00
Brian Behlendorf 52e5e6e6d0 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2010-03-26 15:47:25 -07:00
Brian Behlendorf 23ab272555 Add support for 'make -s' silent builds
The cleanest way to do this is to set AM_LIBTOOLFLAGS = --silent.  However,
AM_LIBTOOLFLAGS is not honored by automake-1.9.6-2.1 which is what I have
been using.  To cleanly handle this I am updating to automake-1.11-3 which
is why it looks like there is a lot of churn in the Makefiles.
2010-03-26 15:41:41 -07:00
Brian Behlendorf 6b9f42c3be Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2010-03-22 16:55:48 -07:00
Brian Behlendorf e96be1888a Allow zfs_config.h to be included by dependant packages (updated)
We need dependent packages to be able to include zfs_config.h to
build properly.  This was partially solved previously be using
AH_BOTTOM to #undef common #defines (PACKAGE, VERSION, etc) which
autoconf always adds and cannot be easily removed.  This solution
works as long as the zfs_config.h is included before your projects
config.h.  That turns out to be easier said than done.  In particular,
this is a problem when your package includes its config.h using the
-include gcc option which ensures the first thing included is your
config.h.

To handle all cases cleanly I have removed the AH_BOTTOM hack and
replaced it with an AC_CONFIG_HEADERS command.  This command runs
immediately after zfs_config.h is written and with a little awk-foo
it strips the offending #defines from the file.  This eliminates
the problem entirely and makes header safe for inclusion.
2010-03-22 16:42:18 -07:00
Brian Behlendorf e6d92ae57d Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch
Conflicts:

	cmd/Makefile.am
2010-03-02 10:01:51 -08:00
Brian Behlendorf 7df02c0f57 Split the udev rule from a specific configuration
While I completely agree the udev is the lesser of many possibles
evils when solving the device issue... it is still evil.  After
attempting to craft a single rule which will work for various
versions of udev in various distros.  I've come to the conclusion
the only maintainable way to solve this issue is to split the rule
from any particular configuration.

This commit provides a generic 60-zpool.rules file which use a
small helper util 'zpool_id' to parse a configuration file by
default located in /etc/zfs/zdev.conf.  The helper script maps
a by-path udev name to a more friendly name of <channel><rank>
for large configurations.

As part of this change all of the support scripts why rely on
this udev naming convention have been updated as needed.  Example
zdev.conf files have also been added for 3 different systems by
you will always need to add one for your exact hardware.

Finally, included in these changes are the proper tweaks to the
build system to ensure everything still get's packaged properly
in the rpms and can run in or out of tree.
2010-03-01 16:51:21 -08:00
Brian Behlendorf 5848ca32dd Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-12-11 16:52:19 -08:00
Brian Behlendorf 0cf0b27968 Add man pages to the build system and packages. 2009-12-11 16:49:25 -08:00
Brian Behlendorf 8b6b31f3e4 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-10-09 16:42:09 -07:00
Brian Behlendorf cb91bbe6ce Additional set of build system tweaks for libefi library. 2009-10-09 16:37:32 -07:00
Brian Behlendorf 147adbe815 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-08-18 14:18:40 -07:00
Brian Behlendorf 5b4a08d0f4 Move ZPIOS chunk to linux-zpios topic branch 2009-08-18 14:06:05 -07:00
Brian Behlendorf 91ab50f492 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch
Conflicts:

	configure.ac
	scripts/Makefile.am
2009-08-18 11:19:07 -07:00
Brian Behlendorf 4f555da51d Add zfs-test package which includes test infrastructure.
This change extends the existing in-tree test infrastructure such
that it can also be run as part of a the installed package.  This
simplifies testing on multiple systems and is generally all around
useful.  The scripts may still be run in-tree and will use the
in-tree build products as long as .script-config exists.
2009-08-17 21:35:06 -07:00
Brian Behlendorf ac81bc8094 Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2009-07-16 10:28:14 -07:00
Brian Behlendorf 3ae0e369f3 Add generic user space atomic support.
Futher testing on my powerpc system revealed that the powerpc
specific atomic implemetation was flawed.  Rather than spending
a lot of time correctly reimplementing it in assembly I have
reworked it in to a 100% generic version.  The generic version
will not perform well but it does provide correct sematics.  It
will be used only when there is no architecture specific version
available.  These changes do not impact x86_64 and x86 which have
have correct native implementations.
2009-07-16 09:59:44 -07:00
Brian Behlendorf 685b7d85d3 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-07-01 11:11:34 -07:00
Brian Behlendorf b44445a8f1 Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch 2009-07-01 11:09:33 -07:00
Brian Behlendorf ef0a712858 Distro friendly build system / packaging improvements.
These changes bring the zfs-0.4.4 tree in to compliance with
the spl-0.4.4 packaging changes.  The bottom line is 2 source
rpms and 4 binary rpms will now be generated when creating
packages there will be:

zfs-<version>.src.rpm
- Fully rebuildable source rpm for libzfs and utils.
zfs-modules-<version>.src.rpm
- Fully rebuildable source rpm for kernel modules.

zfs-<version>.<arch>.rpm
- Binary rpm for libzfs and utils.  The utils in this package are
  compatible with all zfs-module rpms of the same version.
zfs-devel-<version>.<arch>.rpm
- Binary rpm containing headers for building against libzfs libraries.

zfs-modules-<verion>-<kernel>.arch.rpm
- Binary rpm containing the kernel modules for a specific kernel build.
  The package name contains the kernel version and you should have one
  of these packages installed to match every kernel on your system.
zfs-modules-devel-<verion>-<kernel>.arch.rpm
- Binary rpm containing development header and module symbols needed
  for building additional kernel modules which are dependent on the
  zfs module stack.

Expect minor interations on these changes as I validate they work
properly on CHAOS, RHEL, Fedora, and SLES style distros.
2009-07-01 10:53:05 -07:00
Brian Behlendorf 8bb2e455fb Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2009-05-22 15:07:27 -07:00
Brian Behlendorf b83a638936 Powerpc64 Compatibility
- Add 64-bit user space atomic support obtained from an old version
  of OpenSolaris which supported ppc.  They are not all 100% fully
  implemented by they are a good first step.
- Add powerpc ISA type.
- Strip out unused ISA defines to prevent any confusion.
2009-05-22 15:00:19 -07:00
Brian Behlendorf adaf659f27 Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2009-03-13 09:51:37 -07:00
Brian Behlendorf caba3cb67e Update specific asm-* arch to generic i386.
Depending on your x86 architecture $target_cpu can evaluate to
any of the following (i386|i486|i586|i686).  Since our local asm
uses only i386 instructions sed is used to map all of these to
i386 and sets $target_arch.  Other arch's are not impacted.
2009-03-13 09:41:55 -07:00
Brian Behlendorf 2d37cf7361 Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2009-03-10 22:03:01 -07:00
Brian Behlendorf c05c1aa6f9 Build system and packaging (RPM support) (Part 4)
Complete support for dist install srpm and rpm make targets.
2009-03-10 21:57:56 -07:00
Brian Behlendorf 851cd16a32 Merge branch 'linux-zpios' into refs/top-bases/linux-zfs-branch 2009-03-10 21:51:06 -07:00
Brian Behlendorf c0c0c27632 Build system and packaging (RPM support) (Part 3)
Complete support for dist install srpm and rpm make targets.
2009-03-10 21:45:50 -07:00
Brian Behlendorf 7ca5d85ab6 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-03-10 21:30:24 -07:00
Brian Behlendorf 6bf18caf9f Merge commit 'refs/top-bases/linux-zpios' into linux-zpios
Conflicts:

	module/Makefile.in
2009-03-10 21:29:58 -07:00
Brian Behlendorf 36860ec1a8 Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
Conflicts:

	module/Makefile.in
2009-03-10 21:23:17 -07:00
Brian Behlendorf c8e569dd1c Build system and packaging (RPM support) (Part 2)
Complete support for dist install srpm and rpm make targets.
2009-03-10 21:13:30 -07:00
Brian Behlendorf c9c44d22d0 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-03-10 11:29:46 -07:00
Brian Behlendorf a98ae7ffe2 Merge commit 'refs/top-bases/linux-zpios' into linux-zpios
Conflicts:

	configure.ac
2009-03-10 11:29:29 -07:00
Brian Behlendorf 1d6b5183d3 Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
Conflicts:

	configure.ac
2009-03-10 11:22:53 -07:00
Brian Behlendorf b1b76c6634 Build system and packaging (RPM support) (Part 1)
An update to the build system to properly support all commonly
    used Makefile targets these include:

      make all        # Build everything
      make install    # Install everything
      make clean      # Clean up build products
      make distclean  # Clean up everything
      make dist       # Create package tarball
      make srpm       # Create package source RPM
      make rpm        # Create package binary RPMs
      make tags       # Create ctags and etags for everything

    Extra care was taken to ensure that the source RPMs are fully
    rebuildable against Fedora/RHEL/Chaos kernels.  To build binary
    RPMs from the source RPM for your system simply run:

      rpmbuild --rebuild zfs-x.y.z-1.src.rpm

    This will produce two binary RPMs with correct 'requires'
    dependencies for your kernel.  One will contain all zfs modules
    and support utilities, the other is a devel package for compiling
    additional kernel modules which are dependant on the zfs.

      zfs-x.y.z-1_<kernel version>.x86_64.rpm
      zfs-devel-x.y.2-1_<kernel version>.x86_64.rpm
2009-03-10 11:10:50 -07:00
Brian Behlendorf de25e15a1c Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-02-03 10:03:31 -08:00
Brian Behlendorf 02862a5f7e Merge commit 'refs/top-bases/linux-zpios' into linux-zpios 2009-02-03 10:03:26 -08:00
Brian Behlendorf 06d62870d7 Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch 2009-02-03 10:02:02 -08:00
Brian Behlendorf 4365c44425 Properly detect and set HAVE_GPL_ONLY_SYMBOLS based on license 2009-02-03 09:59:54 -08:00
Brian Behlendorf a651f9e82e Merge branch 'linux-zpios' into refs/top-bases/linux-zfs-branch 2009-01-20 15:56:54 -08:00
Brian Behlendorf 2334ba2bb1 Add a script scripts, update Makefiles 2009-01-20 15:54:50 -08:00
Brian Behlendorf 3874b261a4 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-01-20 15:48:01 -08:00
Brian Behlendorf 67d3177f05 Merge commit 'refs/top-bases/linux-zpios' into linux-zpios 2009-01-20 15:47:55 -08:00
Brian Behlendorf 1996f04880 Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch 2009-01-20 15:46:31 -08:00