Commit Graph

65 Commits

Author SHA1 Message Date
Brian Behlendorf 4913cf54aa Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2010-07-28 16:39:51 -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 425a0a201f Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2010-07-28 09:41:51 -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 d6a0475275 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2010-03-26 15:49:28 -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 ff4507b28e Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2010-03-22 16:57:34 -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 9199e2c033 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2010-03-02 10:06:47 -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 61af72bb29 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-12-11 16:53:41 -08:00
Brian Behlendorf 0cf0b27968 Add man pages to the build system and packages. 2009-12-11 16:49:25 -08:00
Brian Behlendorf 9fb47da60f Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-10-09 16:44:10 -07:00
Brian Behlendorf cb91bbe6ce Additional set of build system tweaks for libefi library. 2009-10-09 16:37:32 -07:00
Brian Behlendorf 547471e842 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-08-18 14:22:00 -07:00
Brian Behlendorf 5b4a08d0f4 Move ZPIOS chunk to linux-zpios topic branch 2009-08-18 14:06:05 -07:00
Brian Behlendorf 126619b28b Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-08-17 21:47:12 -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 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 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 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 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 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 7ca5d85ab6 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-03-10 21:30:24 -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 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 4365c44425 Properly detect and set HAVE_GPL_ONLY_SYMBOLS based on license 2009-02-03 09:59:54 -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 26d0de9a92 Update Makefiles for recent script updates 2009-01-20 15:43:21 -08:00
Brian Behlendorf aac79c5329 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-01-14 16:04:53 -08:00
Brian Behlendorf 9c22d76019 Minor 'make check' updates 2009-01-14 15:38:56 -08:00
Brian Behlendorf 087a94a78e Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-01-05 13:16:43 -08:00
Brian Behlendorf 861ec17294 Update libunicode 2009-01-05 13:13:50 -08:00
Brian Behlendorf 50f4cdb95e Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-01-05 11:23:04 -08:00
Brian Behlendorf 6fd7b17036 Remove remaining zdump Makefile references 2009-01-05 11:18:06 -08:00
Brian Behlendorf ff046c4099 Resolve conflict 2008-12-23 10:19:41 -08:00
Brian Behlendorf 4a8619da5f Add module build targets 2008-12-23 10:13:07 -08:00
Brian Behlendorf 93f4e49cff Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2008-12-19 16:03:05 -08:00
Brian Behlendorf fe8aa77a1b Add AM_PROG_AS to configure 2008-12-19 15:47:14 -08:00
Brian Behlendorf ce1541961c Resolve context 2008-12-15 10:47:24 -08:00
Brian Behlendorf 2bdf9cfae3 Moving all kernel+user configure magic to the correct topic branches where the features are introduced or needed 2008-12-15 10:40:22 -08:00
Brian Behlendorf bf7acdd24c Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2008-12-15 10:31:40 -08:00
Brian Behlendorf e631cff898 Remove lustre config, we really shouldn't need this. A user space build -should- be able to contain all the needed APIs. If this is not the case we can reintroduce this. 2008-12-15 10:28:14 -08:00
Brian Behlendorf 1c38136eed Resolve conflict 2008-12-12 14:08:10 -08:00
Brian Behlendorf 01db09fde5 Collapse libzcommon in to libzpool 2008-12-12 13:57:47 -08:00
Brian Behlendorf 2e0a5f5461 Refresh makefiles and configure.ac 2008-12-12 09:30:42 -08:00
Brian Behlendorf f55d6ad125 Remove bugus checks for now 2008-12-11 16:51:09 -08:00