Mageia Bugzilla – Attachment 7666 Details for
Bug 18203
guix, the next generation package manager
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
draft spec-file, working but a .spec-guru may want to enhance it
guix.spec (text/x-rpm-spec), 4.78 KB, created by
Hartmut Goebel
on 2016-04-14 15:45:39 CEST
(
hide
)
Description:
draft spec-file, working but a .spec-guru may want to enhance it
Filename:
MIME Type:
Creator:
Hartmut Goebel
Created:
2016-04-14 15:45:39 CEST
Size:
4.78 KB
patch
obsolete
>Name: guix >Version: 0.10.0 >Release: %mkrel 1 >Summary: functional package management tool written for the GNU system >Group: Office/Finance >License: GPLv3 >URL: http://www.gnu.org/software/guix/ >Source0: ftp://alpha.gnu.org/gnu/guix/guix-%{version}.tar.gz > >BuildRequires: guile >BuildRequires: libguile-devel >BuildRequires: libgcrypt-devel >BuildRequires: make >BuildRequires: automake > >BuildRequires: guile-json >#BuildRequires: gnutls-guile yet missing > >BuildRequires: libsqlite3-devel >BuildRequires: libbzip2-devel >BuildRequires: gcc-c++ > >Requires: guile >Requires: libgcrypt11 >Requires: guile-json >#Requires: gnutls-guile >Requires: libsqlite3_0 >Requires: libbzip2_1 > >%description > >GNU Guix is a package management tool for the GNU system. Guix makes >it easy for unprivileged users to install, upgrade, or remove >packages, to roll back to a previous package set, to build packages >from source, and generally assists with the creation and maintenance >of software environments. > >Guix provides a command-line package management interface (see >Invoking guix package), a set of command-line utilities (see >Utilities), a visual user interface in Emacs (see Emacs Interface), as >well as Scheme programming interfaces (see Programming Interface). Its >build daemon is responsible for building packages on behalf of users >(see Setting Up the Daemon) and for downloading pre-built binaries >from authorized sources (see Substitutes). > >Guix includes package definitions for many GNU and non-GNU packages, >all of which respect the userâs computing freedom. It is extensible: >users can write their own package definitions (see Defining Packages) >and make them available as independent package modules (see Package >Modules). It is also customizable: users can derive specialized >package definitions from existing ones, including from the command >line (see Package Transformation Options). > >You can install GNU Guix on top of an existing GNU/Linux system where >it complements the available tools without interference (see >Installation), or you can use it as part of the standalone Guix System >Distribution or GuixSD (see GNU Distribution). With GNU GuixSD, you >declare all aspects of the operating system configuration and Guix >takes care of instantiating the configuration in a transactional, >reproducible, and stateless fashion (see System Configuration). > > >%prep >%setup -q V%{version} > >%build >autoreconf --install >./configure --prefix=/usr >make prefix=/usr ># fix wrong-file-end-of-line-encoding warning >sed -i 's/\r$//' COPYING > >%install >rm -rf %{buildroot} >make DESTDIR=%{buildroot} prefix=/usr install > >mkdir -p %{buildroot}%{_localstatedir}/guix >mkdir -p %{buildroot}/gnu/store > >mkdir -p %{buildroot}%{_sysconfdir}/systemd/system/ >mv %{buildroot}%{_prefix}/lib/systemd/system/guix-daemon.service \ > %{buildroot}%{_sysconfdir}/systemd/system/guix-daemon.service ># unused >rm %{buildroot}%{_prefix}/lib/upstart/system/* > >mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d >mv %{buildroot}/usr/etc/bash_completion.d/guix \ > %{buildroot}%{_sysconfdir}/bash_completion.d > >mkdir -p %{buildroot}%{_sysconfdir}/profile.d/ >cat > %{buildroot}%{_sysconfdir}/profile.d/99-guix.sh <<"EOF" >#export PATH="$HOME/.guix-profile/bin" >export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" >EOF > > >%files >%defattr(-,root,root,-) >%doc README COPYING AUTHORS CODE-OF-CONDUCT HACKING NEWS ROADMAP THANKS TODO >%dir %{_datadir}/%{name} >%{_sysconfdir}/systemd/system/guix-daemon.service >%{_sysconfdir}/bash_completion.d/* >%{_sysconfdir}/profile.d/* >%attr(755,root,root) %{_bindir}/* >%attr(755,root,root) %{_sbindir}/* >%dir %{_libexecdir}/guix >%{_libexecdir}/guix/* >%{_libexecdir}/guix* >%{_mandir}/* >%{_infodir}/* >%dir %{_datadir}/guix >%{_datadir}/emacs/site-lisp/* >%{_datadir}/guix/* >%dir %{_datadir}/guile/site/*/guix >%dir %{_datadir}/guile/site/*/gnu >%{_datadir}/guile/site/*/* >%{_datadir}/locale/*/* >%dir %{_localstatedir}/guix >%dir /gnu >%attr(775,root,guixbuild) %dir /gnu/store > >%pre ># Create the group and user accounts >getent group guixbuild > /dev/null || groupadd --system guixbuild >for i in $(seq -w 1 10) ; do > getent passwd guixbuilder$i > /dev/null || > useradd -g guixbuild -G guixbuild \ > -d /var/empty -s `which nologin` \ > -c "Guix build user $i" --system \ > guixbuilder$i >done > >%postun >for i in $(seq -w 1 10) ; do > userdel guixbuilder$i >done >groupdel guixbuild > >%preun >systemctl stop guix-daemon >systemctl disable guix-daemon > >%post ># Make rootâs profile available under ~/.guix-profile >ln -sf /var/guix/profiles/per-user/root/guix-profile \ > ~root/.guix-profile > ># Run the daemon, and set it to automatically start on boot >systemctl start guix-daemon && systemctl enable guix-daemon > >guix archive --authorize < /usr/share/guix/hydra.gnu.org.pub > > >%changelog >* Thu Apr 14 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> >- initial version
Name: guix Version: 0.10.0 Release: %mkrel 1 Summary: functional package management tool written for the GNU system Group: Office/Finance License: GPLv3 URL: http://www.gnu.org/software/guix/ Source0: ftp://alpha.gnu.org/gnu/guix/guix-%{version}.tar.gz BuildRequires: guile BuildRequires: libguile-devel BuildRequires: libgcrypt-devel BuildRequires: make BuildRequires: automake BuildRequires: guile-json #BuildRequires: gnutls-guile yet missing BuildRequires: libsqlite3-devel BuildRequires: libbzip2-devel BuildRequires: gcc-c++ Requires: guile Requires: libgcrypt11 Requires: guile-json #Requires: gnutls-guile Requires: libsqlite3_0 Requires: libbzip2_1 %description GNU Guix is a package management tool for the GNU system. Guix makes it easy for unprivileged users to install, upgrade, or remove packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments. Guix provides a command-line package management interface (see Invoking guix package), a set of command-line utilities (see Utilities), a visual user interface in Emacs (see Emacs Interface), as well as Scheme programming interfaces (see Programming Interface). Its build daemon is responsible for building packages on behalf of users (see Setting Up the Daemon) and for downloading pre-built binaries from authorized sources (see Substitutes). Guix includes package definitions for many GNU and non-GNU packages, all of which respect the userâs computing freedom. It is extensible: users can write their own package definitions (see Defining Packages) and make them available as independent package modules (see Package Modules). It is also customizable: users can derive specialized package definitions from existing ones, including from the command line (see Package Transformation Options). You can install GNU Guix on top of an existing GNU/Linux system where it complements the available tools without interference (see Installation), or you can use it as part of the standalone Guix System Distribution or GuixSD (see GNU Distribution). With GNU GuixSD, you declare all aspects of the operating system configuration and Guix takes care of instantiating the configuration in a transactional, reproducible, and stateless fashion (see System Configuration). %prep %setup -q V%{version} %build autoreconf --install ./configure --prefix=/usr make prefix=/usr # fix wrong-file-end-of-line-encoding warning sed -i 's/\r$//' COPYING %install rm -rf %{buildroot} make DESTDIR=%{buildroot} prefix=/usr install mkdir -p %{buildroot}%{_localstatedir}/guix mkdir -p %{buildroot}/gnu/store mkdir -p %{buildroot}%{_sysconfdir}/systemd/system/ mv %{buildroot}%{_prefix}/lib/systemd/system/guix-daemon.service \ %{buildroot}%{_sysconfdir}/systemd/system/guix-daemon.service # unused rm %{buildroot}%{_prefix}/lib/upstart/system/* mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d mv %{buildroot}/usr/etc/bash_completion.d/guix \ %{buildroot}%{_sysconfdir}/bash_completion.d mkdir -p %{buildroot}%{_sysconfdir}/profile.d/ cat > %{buildroot}%{_sysconfdir}/profile.d/99-guix.sh <<"EOF" #export PATH="$HOME/.guix-profile/bin" export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale" EOF %files %defattr(-,root,root,-) %doc README COPYING AUTHORS CODE-OF-CONDUCT HACKING NEWS ROADMAP THANKS TODO %dir %{_datadir}/%{name} %{_sysconfdir}/systemd/system/guix-daemon.service %{_sysconfdir}/bash_completion.d/* %{_sysconfdir}/profile.d/* %attr(755,root,root) %{_bindir}/* %attr(755,root,root) %{_sbindir}/* %dir %{_libexecdir}/guix %{_libexecdir}/guix/* %{_libexecdir}/guix* %{_mandir}/* %{_infodir}/* %dir %{_datadir}/guix %{_datadir}/emacs/site-lisp/* %{_datadir}/guix/* %dir %{_datadir}/guile/site/*/guix %dir %{_datadir}/guile/site/*/gnu %{_datadir}/guile/site/*/* %{_datadir}/locale/*/* %dir %{_localstatedir}/guix %dir /gnu %attr(775,root,guixbuild) %dir /gnu/store %pre # Create the group and user accounts getent group guixbuild > /dev/null || groupadd --system guixbuild for i in $(seq -w 1 10) ; do getent passwd guixbuilder$i > /dev/null || useradd -g guixbuild -G guixbuild \ -d /var/empty -s `which nologin` \ -c "Guix build user $i" --system \ guixbuilder$i done %postun for i in $(seq -w 1 10) ; do userdel guixbuilder$i done groupdel guixbuild %preun systemctl stop guix-daemon systemctl disable guix-daemon %post # Make rootâs profile available under ~/.guix-profile ln -sf /var/guix/profiles/per-user/root/guix-profile \ ~root/.guix-profile # Run the daemon, and set it to automatically start on boot systemctl start guix-daemon && systemctl enable guix-daemon guix archive --authorize < /usr/share/guix/hydra.gnu.org.pub %changelog * Thu Apr 14 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> - initial version
View Attachment As Raw
Actions:
View
Attachments on
bug 18203
: 7666 |
7667