aboutsummaryrefslogtreecommitdiffstats
path: root/guix
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2014-11-22 03:44:59 +0800
committerTing-Wei Lan <lantw44@gmail.com>2014-11-22 03:44:59 +0800
commitecdda1d3ef9f7513d6b02f0802672771733311bd (patch)
tree8635d8946431e5875887f8a45c2a8a6a65ab6c9c /guix
parent0639cf607b8d1d4bb8926f088ad7c3867984c475 (diff)
downloadcopr-rpm-spec-ecdda1d3ef9f7513d6b02f0802672771733311bd.tar
copr-rpm-spec-ecdda1d3ef9f7513d6b02f0802672771733311bd.tar.gz
copr-rpm-spec-ecdda1d3ef9f7513d6b02f0802672771733311bd.tar.bz2
copr-rpm-spec-ecdda1d3ef9f7513d6b02f0802672771733311bd.tar.lz
copr-rpm-spec-ecdda1d3ef9f7513d6b02f0802672771733311bd.tar.xz
copr-rpm-spec-ecdda1d3ef9f7513d6b02f0802672771733311bd.tar.zst
copr-rpm-spec-ecdda1d3ef9f7513d6b02f0802672771733311bd.zip
Move packages in the addpkgs to its own project and update guix to 0.8
Diffstat (limited to 'guix')
-rw-r--r--guix/INSTALL.md8
-rw-r--r--guix/README.md1
-rw-r--r--guix/emacs-geiser/emacs-geiser.spec93
-rw-r--r--guix/guix/guix.service10
-rw-r--r--guix/guix/guix.spec190
5 files changed, 302 insertions, 0 deletions
diff --git a/guix/INSTALL.md b/guix/INSTALL.md
new file mode 100644
index 0000000..87bf1e1
--- /dev/null
+++ b/guix/INSTALL.md
@@ -0,0 +1,8 @@
+The post-install script will create an user and a group called `guix-builder`.
+
+If you want more users for building packages, add more users to the
+`guix-builder` group.
+
+Start the `guix-daemon` by using systemd or manually running command
+`guix-daemon --build-users-group=guix-builder` as root. `guix-daemon`
+will create most necessary files and directories when you first using it.
diff --git a/guix/README.md b/guix/README.md
new file mode 100644
index 0000000..69ae087
--- /dev/null
+++ b/guix/README.md
@@ -0,0 +1 @@
+[GNU Guix](http://www.gnu.org/software/guix/) packages with systemd service file
diff --git a/guix/emacs-geiser/emacs-geiser.spec b/guix/emacs-geiser/emacs-geiser.spec
new file mode 100644
index 0000000..9832283
--- /dev/null
+++ b/guix/emacs-geiser/emacs-geiser.spec
@@ -0,0 +1,93 @@
+%global pkg geiser
+%global pkgname Geiser
+
+Name: emacs-%{pkg}
+Version: 0.6
+Release: 1%{?dist}
+Summary: Geiser is an Emacs environment to hack and have fun in Scheme.
+
+License: BSD
+URL: http://nongnu.org/geiser
+Source0: http://download.sv.gnu.org/releases/geiser/%{version}/%{pkg}-%{version}.tar.gz
+
+BuildArch: noarch
+BuildRequires: emacs
+Requires: guile >= 2.0.9
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+%description
+%{pkgname} is an add-on package for GNU Emacs. It is a collection of Emacs
+major and minor modes that conspire with one or more Scheme interpreters to
+keep the Lisp Machine Spirit alive.
+
+%package el
+Summary: Source for Geiser
+Requires: %{name} = %{version}-%{release}
+BuildArch: noarch
+
+%description el
+Source package for %{pkgname}.
+
+
+%prep
+%setup -q -n %{pkg}-%{version}
+
+
+%build
+%configure
+make %{?_smp_mflags}
+
+
+%install
+make install DESTDIR=%{buildroot}
+
+
+%post
+/sbin/install-info %{_infodir}/geiser.info.gz %{_infodir}/dir || :
+
+
+%preun
+if [ "$1" = 0 ]; then
+ /sbin/install-info --del %{_infodir}/geiser.info.gz %{_infodir}/dir || :
+fi
+
+
+
+%files
+%doc AUTHORS ChangeLog COPYING NEWS README THANKS
+%{_bindir}/geiser-racket
+%{_infodir}/geiser.info.gz
+%{_datadir}/geiser/guile/geiser/xref.scm
+%{_datadir}/geiser/guile/geiser/utils.scm
+%{_datadir}/geiser/guile/geiser/modules.scm
+%{_datadir}/geiser/guile/geiser/evaluation.scm
+%{_datadir}/geiser/guile/geiser/emacs.scm
+%{_datadir}/geiser/guile/geiser/doc.scm
+%{_datadir}/geiser/guile/geiser/completion.scm
+%{_datadir}/geiser/racket/geiser/utils.rkt
+%{_datadir}/geiser/racket/geiser/user.rkt
+%{_datadir}/geiser/racket/geiser/startup.rkt
+%{_datadir}/geiser/racket/geiser/server.rkt
+%{_datadir}/geiser/racket/geiser/modules.rkt
+%{_datadir}/geiser/racket/geiser/main.rkt
+%{_datadir}/geiser/racket/geiser/locations.rkt
+%{_datadir}/geiser/racket/geiser/images.rkt
+%{_datadir}/geiser/racket/geiser/eval.rkt
+%{_datadir}/geiser/racket/geiser/enter.rkt
+%{_datadir}/geiser/racket/geiser/completions.rkt
+%{_datadir}/geiser/racket/geiser/autodoc.rkt
+%{_emacs_sitelispdir}/geiser.elc
+%{_emacs_sitelispdir}/geiser-*.elc
+%exclude %{_infodir}/dir
+
+
+%files el
+%{_emacs_sitelispdir}/geiser.el
+%{_emacs_sitelispdir}/geiser-*.el
+
+
+
+%changelog
+* Sat Nov 22 2014 Ting-Wei Lan <lantw44@gmail.com> - 0.6-1
+- Initial packaging
diff --git a/guix/guix/guix.service b/guix/guix/guix.service
new file mode 100644
index 0000000..7804793
--- /dev/null
+++ b/guix/guix/guix.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=GNU Guix package manager
+
+[Service]
+ExecStart=/usr/bin/guix-daemon --build-users-group=guix-builder
+KillMode=process
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/guix/guix/guix.spec b/guix/guix/guix.spec
new file mode 100644
index 0000000..8f84b76
--- /dev/null
+++ b/guix/guix/guix.spec
@@ -0,0 +1,190 @@
+Name: guix
+Version: 0.8
+Release: 1%{?dist}
+Summary: a purely functional package manager for the GNU system
+
+Group: System Environment/Base
+License: GPLv3+
+URL: https://www.gnu.org/software/guix
+Source0: ftp://alpha.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
+Source1: guix.service
+
+%global guile_required 2.0.5
+%global sqlite_required 3.6.19
+%global guix_user guix-builder
+%global guix_group guix-builder
+
+BuildRequires: guile-devel >= %{guile_required}
+BuildRequires: sqlite-devel >= %{sqlite_required}
+BuildRequires: bzip2-devel, libgcrypt-devel
+BuildRequires: emacs, emacs-geiser
+
+# Get %{_unitdir} macro
+BuildRequires: systemd
+
+Requires: guile >= %{guile_required}
+Requires: sqlite >= %{sqlite_required}
+Requires: bzip2, libgcrypt
+Requires(post): /sbin/useradd
+Requires(post): /sbin/groupadd
+Requires(post): /usr/bin/gpasswd
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+
+
+%description
+GNU Guix is a purely functional package manager for the GNU system. In addition
+to standard package management features, Guix supports transactional upgrades
+and roll-backs, unprivileged package management, per-user profiles, and garbage
+collection. It provides Guile Scheme APIs, including high-level embedded
+domain-specific languages (EDSLs), to describe how packages are to be built and
+composed.
+
+%package emacs
+Summary: Emacs interface for GNU Guix
+Requires: %{name} = %{version}-%{release}
+Requires: emacs(bin) >= %{_emacs_version}
+Requires: emacs-geiser
+BuildArch: noarch
+
+%description emacs
+Emacs interface for GNU Guix.
+
+%package emacs-el
+Summary: Source for Emacs interface for GNU Guix
+Requires: %{name}-emacs = %{version}-%{release}
+BuildArch: noarch
+
+%description emacs-el
+Source for Emacs interface for GNU Guix.
+
+%prep
+%setup -q
+
+%build
+%configure --disable-rpath
+make %{?_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot}
+mkdir -p %{buildroot}/gnu/store
+mkdir -p %{buildroot}%{_localstatedir}/log/guix
+mkdir -p %{buildroot}%{_localstatedir}/guix
+mkdir -p %{buildroot}%{_unitdir}
+install -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/guix.service
+%{_emacs_bytecompile} %{buildroot}%{_emacs_sitelispdir}/guix*.el
+%find_lang guix
+%find_lang guix-packages
+
+%post
+/sbin/install-info %{_infodir}/guix.info.gz %{_infodir}/dir || :
+if [ "$1" = 1 ]; then
+ /sbin/groupadd -r %{guix_group}
+ /sbin/useradd -M -N -g %{guix_group} -d /gnu/store -s /sbin/nologin \
+ -c "Guix build user" %{guix_user}
+ /usr/bin/gpasswd -a %{guix_user} %{guix_group} >/dev/null
+fi
+chgrp %{guix_user} /gnu/store
+chmod 1775 /gnu/store
+
+%preun
+if [ "$1" = 0 ]; then
+ /sbin/install-info --del %{_infodir}/guix.info.gz %{_infodir}/dir || :
+ rmdir --ignore-fail-on-non-empty /gnu/store
+ rmdir --ignore-fail-on-non-empty /gnu
+fi
+
+%files -f guix.lang -f guix-packages.lang
+%doc AUTHORS ChangeLog COPYING NEWS README ROADMAP THANKS TODO
+%{_bindir}/guix
+%{_bindir}/guix-daemon
+%{_sbindir}/guix-register
+%{_libexecdir}/guix/list-runtime-roots
+%{_libexecdir}/guix/offload
+%{_libexecdir}/guix/substitute-binary
+%{_libexecdir}/guix-authenticate
+%{_datadir}/guix/hydra.gnu.org.pub
+%{_datadir}/guile/site/2.0/gnu.scm
+%{_datadir}/guile/site/2.0/gnu.go
+%{_datadir}/guile/site/2.0/gnu/artwork.scm
+%{_datadir}/guile/site/2.0/gnu/artwork.go
+%{_datadir}/guile/site/2.0/gnu/build/*.scm
+%{_datadir}/guile/site/2.0/gnu/build/*.go
+%{_datadir}/guile/site/2.0/gnu/packages.scm
+%{_datadir}/guile/site/2.0/gnu/packages.go
+%{_datadir}/guile/site/2.0/gnu/packages/*.scm
+%{_datadir}/guile/site/2.0/gnu/packages/*.go
+%{_datadir}/guile/site/2.0/gnu/packages/linux-libre-*.conf
+%{_datadir}/guile/site/2.0/gnu/packages/patches/*.patch
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/mips64el-linux/tar
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/mips64el-linux/xz
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/mips64el-linux/mkdir
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/mips64el-linux/bash
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/i686-linux/tar
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/i686-linux/xz
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/i686-linux/mkdir
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/i686-linux/bash
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/x86_64-linux/tar
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/x86_64-linux/xz
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/x86_64-linux/mkdir
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/x86_64-linux/bash
+%{_datadir}/guile/site/2.0/gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz
+%{_datadir}/guile/site/2.0/gnu/services.scm
+%{_datadir}/guile/site/2.0/gnu/services.go
+%{_datadir}/guile/site/2.0/gnu/services/*.scm
+%{_datadir}/guile/site/2.0/gnu/services/*.go
+%{_datadir}/guile/site/2.0/gnu/system.scm
+%{_datadir}/guile/site/2.0/gnu/system.go
+%{_datadir}/guile/site/2.0/gnu/system/*.scm
+%{_datadir}/guile/site/2.0/gnu/system/*.go
+%{_datadir}/guile/site/2.0/gnu/system/os-config.tmpl
+%{_datadir}/guile/site/2.0/guix.scm
+%{_datadir}/guile/site/2.0/guix.go
+%{_datadir}/guile/site/2.0/guix/*.scm
+%{_datadir}/guile/site/2.0/guix/*.go
+%{_datadir}/guile/site/2.0/guix/build/*.scm
+%{_datadir}/guile/site/2.0/guix/build/*.go
+%{_datadir}/guile/site/2.0/guix/emacs/guix-helper.scm
+%{_datadir}/guile/site/2.0/guix/emacs/guix-main.scm
+%{_datadir}/guile/site/2.0/guix/import/*.scm
+%{_datadir}/guile/site/2.0/guix/import/*.go
+%{_datadir}/guile/site/2.0/guix/scripts/*.scm
+%{_datadir}/guile/site/2.0/guix/scripts/*.go
+%{_datadir}/guile/site/2.0/guix/scripts/import/*.scm
+%{_datadir}/guile/site/2.0/guix/scripts/import/*.go
+%{_datadir}/guile/site/2.0/guix/build-system/*.scm
+%{_datadir}/guile/site/2.0/guix/build-system/*.go
+%dir /gnu/store
+%dir %{_localstatedir}/log/guix
+%dir %{_localstatedir}/guix
+%{_infodir}/%{name}.info*
+%{_infodir}/images/bootstrap-graph.png.gz
+%exclude %{_infodir}/dir
+%{_unitdir}/guix.service
+
+%files emacs
+%{_emacs_sitelispdir}/guix*.elc
+
+%files emacs-el
+%{_emacs_sitelispdir}/guix*.el
+
+%changelog
+* Wed Nov 19 2014 Ting-Wei Lan <lantw44@gmail.com> - 0.8-1
+- Update to 0.8
+
+* Tue Jul 29 2014 Ting-Wei Lan <lantw44@gmail.com> - 0.7-1
+- Update to 0.7
+
+* Fri Apr 18 2014 Ting-Wei Lan <lantw44@gmail.com> - 0.6-2
+- Add a systemd service file
+
+* Thu Apr 10 2014 Ting-Wei Lan <lantw44@gmail.com> - 0.6-1
+- Update to 0.6
+
+* Tue Dec 17 2013 Ting-Wei Lan <lantw44@gmail.com> - 0.5-1
+- Update to 0.5
+
+* Mon Sep 30 2013 Ting-Wei Lan <lantw44@gmail.com> - 0.4-4
+- Initial packaging