Re: guix shell --container from Shepherd to run a service

2025-04-06 Thread reza
Hi Attila

> dear Guix,
>
> my ultimate goal is to run Home Assistant (a python based service)
> from Shepherd.

I have a not yet running attempt of home assistant packaged, maybe you
would like to have a stab at it?

> packaging it seems to be too much effort, so i looked into running it in a 
> `guix shell --container`. it works fine when done from the terminal:
>
> $ su - hass
> $ guix shell --manifest=manifest.scm --container --emulate-fhs --network 
> --share=/srv/hass 
> $ cd /srv/hass && source bin/activate && LD_LIBRARY_PATH=/lib:/lib64 hass 
> 2>&1 | tee /var/log/home-assistant.log
>
> (specifications->manifest
>   '("python"
> "python-virtualenv"
> "python-pytzdata"
> "autoconf"
> "openssl"
> "libxml2"
> "libxslt"
> "libjpeg"
> "libffi"
> "eudev"
> "zlib"
> "pkg-config"
> "ffmpeg"
> "gcc-toolchain"
>
> "git"
> ))
>
> now, i've converted this to a Shepherd service like this:
>
> (simple-service
>  'home-assistant
>  shepherd-root-service-type
>  (list
>   (shepherd-service
>(requirement '(file-systems networking guix-daemon))
>(provision '(home-assistant))
>(documentation "")
>;; TODO herd stop doesn't work
>(start
> #~(lambda _
> (fork+exec-command
>  (list #$(file-append guix "/bin/guix")
>"shell"
>"--manifest=manifest.scm"
>"--container"
>"--emulate-fhs"
>"--network"
>"--share=/srv/hass"
>"--"
>#$(file-append bash "/bin/bash")
>"-c" "cd /srv/hass && source bin/activate && 
> LD_LIBRARY_PATH=/lib:/lib64 hass")
>  #:log-file "/var/log/home-assistant.log"
>  #:user  '#$(user-account-name  *hass-user*)
>  #:group '#$(user-account-group *hass-user*)
>  #:supplementary-groups
>  '#$(user-account-supplementary-groups *hass-user*)
>  #:environment-variables
>  (list (string-append "HOME=/home/"
>   #$(user-account-name *hass-user*)
>
>
> but this errors out:
>
> guix shell: error: mkdir: Permission denied: 
> "/tmp/guix-directory.sfpIhA/real-root"
>
> should this work, or am i holding it wrong?
>
> or should it be done some other way? any examples around?
>
> if it should work, then any hints on what to look at for a fix? grepping for 
> 'real-root' brings up MOUNT-FILE-SYSTEMS in linux-container.scm, but i 
> couldn't find anything obviously broken there.
>
> sidenote: debugging this would be a lot easier if the error wasn't reduced to 
> the above line, but instead a general error handler printed a backtrace.
>
> -- 
> • attila lendvai
> • PGP: 963F 5D5F 45C7 DFCD 0A39
> --
> “When men yield up the privilege of thinking, the last shadow of liberty 
> quits the horizon.”
>   — Thomas Paine (1737–1809)




Re: Why YOU should join a Team!

2025-04-28 Thread reza
I cannot claim to have a lot of time at hand, but to give something back to 
guix I'd like to join the science team.


On April 28, 2025 10:00:14 AM CST, Christopher Howard 
 wrote:

There's no particular rule on how much you need to have contributed to become a 
Team member. Personally, I think that if you consider yourself as someone who's 
working on the project then the door is open for you to join a team. See the 
manual for the details!

For my part, I would like to be on the Emacs team, but it seems like a mockery 
to ask to join, as I hardly have any spare time right now to do more than 
report bugs I notice, chiefly due to having a lot of small children in my 
family. I sometimes have a little spare time during the winter months when it 
is not practical to do outdoors activities, but it is touch and go. I worked a 
little on trying to patch emacs-guix last winter, but I reached an impasse when 
I realized I was going to have to rewrite entire files' worth of code as well 
as maybe patch Guix itself. There are some Emacs packages I would like to see 
added, and I occasionally report some Emacs packages that need to be updated, 
usually as a result of my own bug reports to the Emacs package developers. Not 
sure if any of that is a strong enough argument to get added to a team.


-- Sent from /e/OS Mail.


Reliable way to get directory of current guile script

2025-02-20 Thread reza
Hi Guix

I have problems of finding a reliable way to access the current
directory from a guile script.

My setup is the following: I have a channels.scm file and a manifest.scm
file at my project root directory. Additionally I have
.guix/modules/my-package.scm file describing my package, which I
reference in my manifest file like

(package->development-manifest (load "guix.scm"))

where guix.scm is a symlink to .guix/modules/my-package.scm.

Now in .guix/modules/my-package.scm I want to have the absolute path of
my project root. I used to use

(define %source-dir (string-append (current-source-directory) "/../.."))

which works fine until you call something like this:

guix time-machine -C channels.scm -- repl manifest.scm

in the project root. This fails because current-source-directory returns
the path to the manifest.scm file. Now I started to use

(define %source-dir (canonicalize-path (dirname (dirname (dirname 
(current-filename))

and this seemed to work fine until I included the package as a
dependency  into another package where it fails with the (not helpful at
all) error message

In procedure scm_to_utf8_stringn: Wrong type argument in position 1 
(expecting string): #f

which seems to stem from the factthat current-filename resolved to #f
and dirname threw an exception
Now I am using

(define %source-dir (or (canonicalize-path (dirname (dirname (dirname 
(current-filename)
(string-append (current-source-directory) 
"/../..")))

which covers my two needs, but it just feels ridiculously. Is there no
easy and reliable way to get the path of the current script in guile?

Best,
Reza




Re: Reliable way to get directory of current guile script

2025-02-20 Thread reza
Attila Lendvai  writes:

> not sure, but this may be relevant:
>
> (current-filename) is #f when guix pull'ing
> https://issues.guix.gnu.org/55464

Yes seems to be the same or a similar issue but the workaround also
looks kinda ugly ;)



Re: Reliable way to get directory of current guile script

2025-02-20 Thread reza
Tomas Volf <~@wolfsden.cz> writes:

> Hi,
>
> first let me have a meta comment.  Your client seems to embed \r
> characters (0x0D, CR) into your emails.  Not sure if that is
> intentional.

Not really, but it makes me wonder what is causing this, I am using
notmuch with emacs...?

> reza  writes:
>
>> Hi Guix
>> 
>> I have problems of finding a reliable way to access the current
>> directory from a guile script.
>> 
>> My setup is the following: I have a channels.scm file and a manifest.scm
>> file at my project root directory. Additionally I have
>> .guix/modules/my-package.scm file describing my package, which I
>> reference in my manifest file like
>> 
>> (package->development-manifest (load "guix.scm"))
>> 
>> where guix.scm is a symlink to .guix/modules/my-package.scm.
>> 
>> Now in .guix/modules/my-package.scm I want to have the absolute path of
>> my project root. I used to use
>> 
>> (define %source-dir (string-append (current-source-directory) "/../.."))
>> 
>> which works fine until you call something like this:
>> 
>> guix time-machine -C channels.scm -- repl manifest.scm
>> 
>> in the project root. This fails because current-source-directory returns
>> the path to the manifest.scm file. Now I started to use
>> 
>> (define %source-dir (canonicalize-path (dirname (dirname (dirname 
>> (current-filename))
>> 
>> and this seemed to work fine until I included the package as a
>> dependency  into another package where it fails with the (not helpful at
>> all) error message
>> 
>> In procedure scm_to_utf8_stringn: Wrong type argument in position 1 
>> (expecting string): #f
>> 
>> which seems to stem from the factthat current-filename resolved to #f
>> and dirname threw an exception
>> Now I am using
>> 
>> (define %source-dir (or (canonicalize-path (dirname (dirname (dirname 
>> (current-filename)
>> (string-append (current-source-directory) 
>> "/../..")))
>> 
>> which covers my two needs, but it just feels ridiculously. Is there no
>> easy and reliable way to get the path of the current script in
>> guile?
>
> I am not away of reliable way to get "path of the current script",
> however for use in Guix, there is fairly simple pattern to get a root of
> your repository.  You just need to look for a known file unique to your
> setup.  I am using something similar to the following:
>
> --8<---cut here---start->8---
> (define %root
>   ;; I am pretty sure this file will not be in any other directory.
>   (dirname (dirname (canonicalize-path
>  (search-path %load-path
>   "my-system/files/channels.scm")
> --8<---cut here---end--->8---

thanks for the tip, will try it out, though it has some ambiguity to it
which I'd like to avoid...

> And then I am just basing everything on %root.
>
> Hope this helps,
> Tomas
>
> -- 
> There are only two hard things in Computer Science:
> cache invalidation, naming things and off-by-one errors.




Re: example of poor debugging message (follow up Guix Days)

2025-02-26 Thread reza
Hi,

Because I stumbled on one (which I still don't understand)

(repl-version 0 1 1)
(exception unbound-variable (value #f) (value "Unbound variable: ~S") 
(value (channel)) (value #f))

Context: I have a package with its own channel which by itself builds
fine. When I include this package in yt another package the build fails
with the above error message (pointing to the first package). No clue
what is going wrong or where to look for more information...
Especially annoying in this particular case is that the package as a
channel is used as a dependency, therefore I have to push changes to git
and then run git pull every time I want to debug the problem.

> Hi,
>
> Maybe this one as well:
>
> --8<---cut here---start->8---
>> ./pre-inst-env guix build casacore indi libsep libxisf python-asdf \
> python-asdf-astropy python-astrocut python-astropy \
> python-astropy-healpix python-astropy-iers-data python-astroquery \
> python-casacore python-cmocean python-cmyt python-czml3 python-drizzle \
> python-drms python-ephem python-esutil python-extinction python-fitsio \
> python-glfw python-glue-core python-gwcs python-halotools \
> python-lofar-h5plot python-losoto python-mpl-scatter-density \
> python-mpsplines python-ndcube python-pyvo python-rad \
> python-roman-datamodels python-s3path python-sep-pjw python-sgp4 \
> python-sncosmo python-sndata python-soxs python-specreduce \
> python-spherical-geometry python-stsci-stimage python-sunkit-image \
> python-tweakwcs python-viresclient scamp
>
> Backtrace:
> In guix/store.scm:
>1330:8 19 (call-with-build-handler # …)
> In guix/ui.scm:
> 504:3 18 (_)
> In ice-9/boot-9.scm:
>   1747:15 17 (with-exception-handler # …)
>   1752:10 16 (with-exception-handler _ _ #:unwind? _ # _)
> In guix/ui.scm:
> 491:6 15 (_)
> In guix/scripts/build.scm:
> 818:5 14 (_)
> In srfi/srfi-1.scm:
>673:15 13 (append-map _ _ . _)
>586:17 12 (map1 ("x86_64-linux"))
> In guix/scripts/build.scm:
>820:21 11 (_ _)
> In guix/store.scm:
>   1412:11 10 (map/accumulate-builds # …)
>1330:8  9 (call-with-build-handler # …)
> In guix/scripts/build.scm:
>779:18  8 (_ _)
> In guix/monads.scm:
> 576:2  7 (run-with-store # …)
> In guix/store.scm:
>2038:8  6 (_ _)
> In guix/packages.scm:
>   2050:11  5 (_ _)
>1986:8  4 (_ _)
> In guix/build-system/pyproject.scm:
>  93:0  3 (pyproject-build _ _ #:source _ #:tests? _ # _ # _ # _ # …)
> In ice-9/boot-9.scm:
>   1685:16  2 (raise-exception _ #:continuable? _)
>   1685:16  1 (raise-exception _ #:continuable? _)
>   1685:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> Keyword argument has no value: #:tests?
> --8<---cut here---end--->8---
>
> I'm not quite sure where I need to check. Maybe do not cut long lines so
> the key information may be visible?
>
> ---
> Oleg




Practical consensus building, was: Deliberation period for GCD 003 "Rename the default branch" has technically started

2025-05-07 Thread reza
Hello,

I was reading this very insightful article about practical consensus
building [1] and have noted some short comings and differences from the
GCDs in process and wanted to list them here for discussion:

1. Consensus building needs necessary conditions to be met before
starting, this is not mentioned in the GCD process and should probably
be checked before every GCD
2. In the necessary conditions the "core values" are mentioned, as far
as I know the core values of the guix project are not stated explicitly
3. Participation guidelines should be agreed upon and be met
4. To also hear "quiet" voices, rounds are initiated where each member
comments on the issue without comments from the others (this may be hard
to achieve via email)
5. Several rounds may be used before finding a consensus or aborting
6. I no consensus was found, the process should be analyzed carefully,
this may hint at short comings in the necessary conditions or core
values and values need clarification
7. Instead of disagreement finer tuned stances should be taken
8. A very important role is the facilitator which guides and moderates
the discussion and summarizes the status of the discussion periodically


[1]
https://www.tamarackcommunity.ca/hubfs/Resources/Tools/Practical%20Guide%20for%20Consensus-Based%20Decision%20Making.pdf

> Hello,
>
> I see much discussion of the deliberation, framed as a vote, but that’s
> not what it is.  I think mentions of votes, opposition, veto, and
> similar phrases miss the point.
>
> The deliberation is meant as a way to get a clear understanding of what
> people have said and done before—a show of hands to remove ambiguity.
>
> What matters in this process is not the deliberation: it’s the
> discussion where everyone shares their feelings, states their needs, and
> turns that into a proposal to amend the document.
>
> In some cases, conflicting needs will be irreconcilable and the proposal
> will end up being withdrawn, and that’s fine.  But in many cases, we
> should be able to come up with proposals that account for everyone’s
> needs.
>
> Ludo’.




Re: GCD005: Regular and efficient releases

2025-05-10 Thread reza
].
>
> Team branches can still be folded into the release branch as long as changes 
> are
> minor package upgrades.
>
> ### 9. Ungraft master branch
> Guix master is ungrafted to minimise the difference with users of the release
> initial 'guix pull' experience.
>
> ### 10. Bugs and documentation focus
> The master branch should be quiet at this point as everyone should focus on
> testing and resolving any bugs.  New documentation can also be done.
>
> ### 11. Branch and tag release branch
> The master branch is tagged and a new release branch is created.
>
> * master branch: security only.
> * release branch: security updates as normal. Only RC blocking bugs.
>
> Only security updates go to the master branch from week 9->13.  All other
> changes stay in a team branch or go to the `staging` branch. The focus on the
> release branch is to stabilise so only RC bugs should be pushed.
>
> ### 12. Testing and Hard Freeze
> RC bugs and issues should be solved for the release branch.
>
> Only changes that will fix a non-building package, or a bug in a package are
> allowed.  Ideally avoid new upstream versions, but it's acceptable to use a 
> new
> minor upstream version to solve a bug.
>
> Any non-building packages are removed.
>
> ### 13. Release candidate
> Release artifacts are created for the release candidate.  There's a final 2
> weeks of testing with these artifacts.  If there are no release blocking bugs
> discovered then the releas uses these artifacts.  If bugs are found/fixed then
> release artifacts are regenerated as needed.
>
> ### 14. Final release
> Final release is announced and new release artifacts are published.
>
> ### 15. Staging merged to master
> If there were any breaking changes placed onto the `staging` branch then these
> can be merged into the `master` branch at this point.  The master branch then
> continues as normal.
>
> ### 16. Release retrospective
> A retrospective is undertaken by the release team to understand how the 
> release
> process can be improved to make it more reliable for users and 
> easier/efficient
> for developers.
>
> ### 17. Relax!
> The release has been cut, everyone is now excited, and hopefully all is well.
> Take some time off from release work!  There's some time built-in here to
> relax and get back to other hacking before it's time to start again with the
> next release.
>
> ---
>
> [^1]: https://guix.gnu.org/en/blog/2022/gnu-guix-1.4.0-released/
>
> [^2]: Examples of distributions that have cadences for different users and 
> screnarios
>   are Nix's stable branch, OpenSUSE's SlowRoll branch and Ubuntu's LTS
>   (Long Term Support) releases.
>
> [^3]: the aspect of creating news and excitement for casual users is 
> well-known
>   in the FOSS community. An example from 
>   [GNOME's earlier 
> days](https://mail.gnome.org/archives/gnome-hackers/2002-June/msg00041.html).
>
> [^4]: GuixDays 2025 release discussion brought up examples of Guix not being
>   used to teach users because the initial pull was so slow that the
>   teaching session would have completed before 'guix pull' would finish.
>   We know guix pull being slow was identified by users as a challenge.
>
> [^5]: OpenSuse has a [SlowRoll 
> branch](https://en.opensuse.org/Portal:Slowroll)
>   where they release a smaller set of package updates on a monthly basis.
>   This is an interesting innovation as it allows users to still benefit 
> from
>   a rolling release but at a slower rate of change (fewer regressions).
>   They are also not dropping too far behind the rolling release, so 
> there's
>   not as much maintenance for OpenSUSE developers dealing with an out of
>   date release branch and having to backport software.
>
> [^6]: Nix has the concept of a [Release 
> Editor](https://nixos.github.io/release-wiki/Release-Editors.html)
>   who is responsible for improving the legibility of the release notes.  
> Our
>   version extends the idea to make sure other artifacts and activities 
> that
>   promote the release happen.
>
> [^7]: 
> https://github.com/NixOS/rfcs/blob/master/rfcs/0085-nixos-release-stablization.md

I am missing the automation aspect a little in this GCD. As I understand
the release take so long because there is a lot of manual effort
involved in doing one. I think it is worthwhile to also work towards
more automation in preparing a release and testing it. I have by no
means a lot of insight into doing a release but my impression is that
automation could drastically improve the time to relase.

Thanks again!

Best,
Reza




Re: Introducing Guixotic, a Guix/Guile worker cooperative

2025-07-11 Thread reza
Hi Guixotic

> Hi, Guixers and Guilers!
>
> It is a great pleasure to introduce you to Guixotic, our new worker
> cooperative specializing in GNU Guix and Guile:

Very cool initiative!

> https://guixotic.coop/
>
> We are currently three people that you may already be familiar with:
> Maxim Cournoyer (apteryx), Robin Templeton (lispwitch), and John
> Kehayias (podiki).
>
> Our ultimate goal is to improve, strengthen, and expand Guix and Guile
> by building an ecosystem of services around these technologies. The aim
> is to transform a hobby into a viable livelihood, thereby fostering and
> accelerating their development and adoption.
>
> We want to see these projects we love and have come to rely on continue
> to grow, be used in all sorts of applications and businesses, and be
> part of a healthy free software ecosystem. Besides ourselves, we want to
> see opportunities for many more people to make a living working with
> Guix and Guile.
>
> If this proves successful, we hope to be a model for what is possible
> with a collectively managed free software worker cooperative. We are all
> equal owners, and future members will be, too. We plan to have more
> members in the future and be part of a group of businesses and
> organizations centering on Guile and Guix.
>
> So, what exactly will we be doing? We offer services from education and
> training to commercial support, from DevOps to system administration,
> from packaging to new feature development. In short, everything Guix and
> Guile.
>
> This is not meant to subsume the work each of us already does in these
> and related projects, or have some "special class" of users or clients
> influencing these projects. Rather, this is a way to allow us to work
> full-time contributing. The idea is that paid projects, training,
> support, etc., will help improve Guix and Guile for everyone, while also
> supporting us to do more of the work we already love to do. It's about
> placing the best of our energy, talent, and interests where it matters
> the most to us, instead of having these restricted to late-night hobbies
> and hacks (don't worry, we'll continue doing that too ;-)).
>
> Please let us know if you have any questions, suggestions, or
> feedback.  If you know of someone or an organization/business that
> would be benefit from our services, we would love to hear about
> them. You can contact us via mailto:cont...@guixotic.coop. Equally
> useful is spreading the word. If you don't currently have any projects
> for us but would be interested in supporting our work, it's possible
> to contribute to our funding via Liberapay:
> <https://liberapay.com/guixotic>.

Can you share hourly rates for your services, e.g. for sys admin or
packaging work?

> As you might expect, we are very excited to be embarking on this
> journey, and this is our first official announcement anywhere. And, of
> course, we're a little nervous with what the future may hold as we feel
> this isn't just about us succeeding, but opening it up for more people
> to do this work, too. Nonetheless, we can't wait to see what the future
> holds.
>
> Thanks for being part of this community and for reading this far!
>
> On behalf of Guixotic, Maxim, Robin and John.

All the best to you!

Reza

> [0] http://guixotic.coop/
> [1] https://liberapay.com/guixotic



Re: 04/04: gnu: Add fwupd.

2022-08-31 Thread Reza Housseini
On Wednesday, August 31, 2022, Liliana Marie Prikler <
liliana.prik...@gmail.com> wrote:

> Am Mittwoch, dem 31.08.2022 um 09:26 -0400 schrieb Maxim Cournoyer:
> > Hi,
> >
> > guix-comm...@gnu.org writes:
> >
> > > civodul pushed a commit to branch master
> > > in repository guix.
> > >
> > > commit 23152ff70f0ed4966d8207846f54c793d7cb4f86
> > > Author: Petr Hodina 
> > > AuthorDate: Tue Jan 4 06:58:51 2022 +0100
> > >
> > > gnu: Add fwupd.
> > >
> > > * gnu/packages/firmware.scm (fwupd): New variable.
> > >
> > > Signed-off-by: Ludovic Courtès 
> >
> > Just a quick question: does this tool talks to a remote server that
> > serves non-free software as well as free one?  If so, it'd need to be
> > patched to comply with the FSDG.
> I'd be surprised if it supplied free software as well as non-free one.
>
> The vendor guide[1] states the following:
> > Do I have to contribute any code?
> >
> > No, unless you're using a custom update protocol that fwupd does not
> > already support.
>
> The user guide[2] likewise states:
> > The OEM vendor is in full control over what models are supported and is
> > the only entity that can add support for new hardware.
>
> The vendor agreement[3] further grants no freedom safe for the second –
> the freedom to make unmodified copies.
>
> Cheers
>
> [1] https://fwupd.org/lvfs/docs/vendors
> [2] https://fwupd.org/lvfs/docs/users
> [3] https://fwupd.org/lvfs/docs/agreement
>
>
Isn't fwupd a package manager which could technically be replaced by guix?


Re: LaTeX packaging policy

2023-01-03 Thread Reza Housseini

Good question, maybe we should just do that.  Thoughts?


What about size? Does this not bloat up profile sizes?

--
Reza Housseini

This message is signed with my GnuPG key:

C0F3 0812 9AF2 80F4 0830 C2C1 C375 C6AF 0512 5C52



OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


poetry not building

2023-06-22 Thread Reza Housseini

Hi

Poetry is not building on ci.guix.gnu.org [1]. There is a pending patch 
[2] on the issue tracker. What is missing to apply this patch and how 
can I help?


Cheers,
Reza

[1] https://ci.guix.gnu.org/search?query=poetry
[2] https://issues.guix.gnu.org/63139

--
Reza Housseini

This message is signed with my GnuPG key:

C0F3 0812 9AF2 80F4 0830 C2C1 C375 C6AF 0512 5C52


OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: poetry not building

2023-06-22 Thread Reza Housseini

Hi Felix

Thanks for your reply.

I really hope someone responds to you, but in the meantime you could
set up your own copy of Guix. It's an elegant way to stop begging,
which I stopped doing because I find it demeaning.


I was not begging only posing a simple question. This is a 
misunderstanding on your side.



More importantly, setting up your own Guix would allow you to test the
proposed patch set, which is quite large. After some time, you can
report your experience to the bug. That might provide a measure of
comfort to anyone who would like to help you but is deterred by the
fear of making a mistake. Reviewers have lives.


I already tested parts of the patch set, I was never at any point 
demanding the reviewers to work on this patch asap.



As a result, the adoption of the patch set becomes more likely.

An additional benefit is that you could pin your own branch to a
commit on master that works for you. For example, you could branch off
of my "prebuilt" branch. [1] It follows "master," but with a delay in
hope of maximizing substitute availability. I also try to sidestep
temporary or unresolved quirks like this one [2] which can make it
impossible to reconfigure your system or your home.

It may be a rational choice depending on your set of personal constraints.


I'm playing with the idea of doing that for a while now, but I fear this 
adds another layer of complexity I'm not prepared to handle right now.


Thanks for the suggestion anyway.

Cheers,
Reza

--
Reza Housseini

This message is signed with my GnuPG key:

C0F3 0812 9AF2 80F4 0830 C2C1 C375 C6AF 0512 5C52



OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Version from file in a package

2023-09-22 Thread Reza Housseini

Hi List

Following the excellent blog post from Ludo [1] to guixify my python 
project, I wanted to include a version string from file to have a single 
source for the guix files and also for the python pyproject.toml file.

Something along this:

(define-public my-package
  (let* ((vcs-file? (or (git-predicate %source-dir) (const #t)))
 (version-file "VERSION")
 (version-from-file (call-with-input-file version-file get-string-all)))
(package
  (name "my-package")
  (version version-from-file)
  (source (local-file "../.." "my-package-checkout"
  #:recursive? #t
  #:select? vcs-file?))
  (build-system pyproject-build-system)
  ...

this seems to work when I build locally but throws an error when I build 
after a guix pull:


(exception system-error (value "open-file") (value "~A: ~S") (value ("No 
such file or directory" "VERSION")) (value (2)))


How can I achieve this?

Thanks for your input!

Best,
Reza

[1] 
https://guix.gnu.org/en/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/

--
Reza Housseini

This message is signed with my GnuPG key:

C0F3 0812 9AF2 80F4 0830 C2C1 C375 C6AF 0512 5C52


OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: ActtivityPub and Haunt

2023-09-28 Thread Reza Housseini

But I will hands-down say that Haunt was an EXCELLENT environment for
writing ap.rocks.  The implementation guide page especially is a great
demonstration of Haunt's power:

   https://activitypub.rocks/implementation-report/


pretty cool stuff indeed! I also checked out the software mentioned on 
the page, are there any attempts at packaging some of the software e.g. 
microblog.pub?


--
Reza Housseini

This message is signed with my GnuPG key:

C0F3 0812 9AF2 80F4 0830 C2C1 C375 C6AF 0512 5C52



OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Authenticated Boot and Disk Encryption

2021-10-05 Thread Reza Housseini
Hello Guix!

I came across this blog post
<https://0pointer.net/blog/authenticated-boot-and-disk-encryption-on-linux.html>
and was wondering what is the state of authenticated boot and encryption in
Guix System?
I have this vision where you define such things in your system guile script
and everything gets configured appropriately, or at least the default setup
is as secure as possible.

Thanks for any insights.

Cheers, Reza


Re: Guix+Jenkins slides/video

2021-10-14 Thread Reza Housseini
On Mon, Oct 11, 2021 at 12:36 PM zimoun  wrote:

> Hi Phil,
>
>
> On Mon, 4 Oct 2021 at 12:30, Phil  wrote:
>
> > https://www.devopsworld.com/agenda/session/617842
> >
> > Slides are available at the bottom without registration.  The video
> > requires registration (and needs full screen).
>
> Cool!  Thanks.
>
> (Although the registration is not so nice, another story. ;-))
>
> > This is still a work in progress, so any suggestions, comments,
> > questions very welcome.
>
> Could you list what appears to you missing from Cuirass to support your
> needs?
>
>
> Cheers,
> simon
>
>
Hi Phil

I am also really interested in this topic, where did you host the package
definition? Is it in the same repo as the source code?

@zimoun I would also prefer to use Cuirass, could you sketch a similar
setup with Cuirass?

Cheers,
Reza


Re: gcc-4.7 and gcc-4.8 compilation failure in x64

2022-03-29 Thread Reza Housseini

Hi Ekaitz

Not that I am in any position to answer the question, but could you 
share a little bit more context?


Did the error occur when you were compiling gcc-4.7 or do programs 
compiled with this compiler have this issue?


What path led you to gcc-4.7? Can you share your compilation settings? etc..

Kind regards,

Reza

On 3/29/22 16:15, Ekaitz Zarraga wrote:

Hi,

I'm digging on old compiler versions for bootstrapping purposes and I realized 
that gcc 4.7 and 4.8 packages don't compile on x64.

We have been able to reproduce the failure of gcc 4.7 but we didn't test the 
4.8 error that far.

In gcc-4.7 the error is the following:

./md-unwind-support.h:60:47: error: dereferencing pointer to incomplete type

I guess there's something missing there but I'm out of ideas to dig on this 
further.

Anyone?



OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: gcc-4.7 and gcc-4.8 compilation failure in x64

2022-03-30 Thread Reza Housseini

Looks like a bug in gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712

You probably have to patch gcc 4.* as it was only backported until gcc 5.5

On 3/29/22 21:01, Ekaitz Zarraga wrote:

And you try to compile that using `guix build -m manifest.scm` the compilation 
fails. The same happens when choosing 4.8.


More specifically I mean the output of that command is:

./md-unwind-support.h:60:47: error: dereferencing pointer to incomplete type
...
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "8" 
"LDFLAGS_FOR_TARGET=-B/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib -Wl,-dynamic-linker 
-Wl,/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/ld-linux-x86-64.so.2" 
"LDFLAGS=-Wl,-rpath=/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib -Wl,-dynamic-linker 
-Wl,/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/ld-linux-x86-64.so.2" "BOOT_CFLAGS=-O2 -g0") exit-status: 2 
term-signal: #f stop-signal: #f>
phase `build' failed after 256.1 seconds
command "make" "-j" "8" "LDFLAGS_FOR_TARGET=-B/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib 
-Wl,-dynamic-linker -Wl,/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/ld-linux-x86-64.so.2" 
"LDFLAGS=-Wl,-rpath=/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib -Wl,-dynamic-linker 
-Wl,/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/ld-linux-x86-64.so.2" "BOOT_CFLAGS=-O2 -g0" failed with 
status 2
builder for `/gnu/store/bx2zldsx3by529hri5pfx15k12f67gzb-gcc-4.7.4.drv' failed 
with exit code 1
build of /gnu/store/bx2zldsx3by529hri5pfx15k12f67gzb-gcc-4.7.4.drv failed
View build log at 
'/var/log/guix/drvs/bx/2zldsx3by529hri5pfx15k12f67gzb-gcc-4.7.4.drv.gz'.
guix build: error: build of 
`/gnu/store/bx2zldsx3by529hri5pfx15k12f67gzb-gcc-4.7.4.drv' failed


OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: gcc-4.7 and gcc-4.8 compilation failure in x64

2022-03-30 Thread Reza Housseini
Did you try to use guix time-machine and compile 4.7 from there? Perhaps 
the issue is the glibc version?


On 3/30/22 21:32, Ekaitz Zarraga wrote:

Hi Reza,



On Wednesday, March 30th, 2022 at 9:27 PM, Reza Housseini 
 wrote:


Looks like a bug in gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712

You probably have to patch gcc 4.* as it was only backported until gcc 5.5

On 3/29/22 21:01, Ekaitz Zarraga wrote:


And you try to compile that using `guix build -m manifest.scm` the compilation 
fails. The same happens when choosing 4.8.

More specifically I mean the output of that command is:

./md-unwind-support.h:60:47: error: dereferencing pointer to incomplete type

...

error: in phase 'build': uncaught exception:

%exception #<&invoke-error program: "make" arguments: ("-j" "8" 
"LDFLAGS_FOR_TARGET=-B/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib -Wl,-dynamic-linker 
-Wl,/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/ld-linux-x86-64.so.2" 
"LDFLAGS=-Wl,-rpath=/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib -Wl,-dynamic-linker 
-Wl,/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/ld-linux-x86-64.so.2" "BOOT_CFLAGS=-O2 -g0") exit-status: 2 
term-signal: #f stop-signal: #f>

phase `build' failed after 256.1 seconds command "make" "-j" "8" 
"LDFLAGS_FOR_TARGET=-B/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib -Wl,-dynamic-linker 
-Wl,/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/ld-linux-x86-64.so.2" 
"LDFLAGS=-Wl,-rpath=/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib -Wl,-dynamic-linker 
-Wl,/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/ld-linux-x86-64.so.2" "BOOT_CFLAGS=-O2 -g0" failed with 
status 2 builder for` /gnu/store/bx2zldsx3by529hri5pfx15k12f67gzb-gcc-4.7.4.drv' failed with exit code 1

build of /gnu/store/bx2zldsx3by529hri5pfx15k12f67gzb-gcc-4.7.4.drv failed

View build log at 
'/var/log/guix/drvs/bx/2zldsx3by529hri5pfx15k12f67gzb-gcc-4.7.4.drv.gz'.

guix build: error: build of 
`/gnu/store/bx2zldsx3by529hri5pfx15k12f67gzb-gcc-4.7.4.drv' failed


So the gcc-4.7 and gcc-4.8 packages never worked? Or we need an older libc?



OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Donation of used Softiron Overdrive 1000

2022-04-27 Thread Reza Housseini


Hi Guixers,


I'd like to donate this used machine [1] to the guix project. Is there 
any interest and when yes can I advice the seller to send the machine 
directly to the build farm hoster?


Thanks for the great project.


Kind regards,

Reza


[1] 
https://www.ebay-kleinanzeigen.de/s-anzeige/softiron-overdrive-1000-arm64-aarch64-developer-kit/1952849632-228-7046




OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: Donation of used Softiron Overdrive 1000

2022-04-27 Thread Reza Housseini


On 4/27/22 10:13, Julien Lepiller wrote:
I used to host one of them (or was it another kind of overdrive?). Now 
that I moved to a new place where I should stay for a while, I should 
be able host one again, if needed :)


My German is not too great. Does it come with disks and USB cable? 
What's its condition overall? Will it die after a few weeks? :D


On April 27, 2022 9:03:36 AM GMT+02:00, Reza Housseini 
 wrote:


Hi Guixers,


I'd like to donate this used machine [1] to the guix project. Is there any 
interest and when yes can I advice the seller to send the machine directly to 
the build farm hoster?

Thanks for the great project.


Kind regards,

Reza



[1]https://www.ebay-kleinanzeigen.de/s-anzeige/softiron-overdrive-1000-arm64-aarch64-developer-kit/1952849632-228-7046



Hi Julien

The seller said it is in excellent condition. It has an 1TB HDD 
included, but about the cables I am not sure.


Can I advice the seller to send it to you then?

Cheers,

Reza



OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: Donation of used Softiron Overdrive 1000

2022-04-27 Thread Reza Housseini


On 4/27/22 14:38, Mathieu Othacehe wrote:

Hello Julien and Reza,

Thanks for the donation! We already have two Overdrive 1000 connected to
the build farm behind ci.guix.gnu.org (overdrive1 and dover
machines). Adding an extra one, and have it hosted at your place Julien
would be great :).

You can then follow the procedure described here:
https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/doc/cuirass.org,
to add it to the build farm. I will be happy to help you, if needed at
that time.

Mathieu



Great!

Do you send me your address Julien, then I will buy the machine today.



OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: Multiple profiles with Guix Home

2022-05-04 Thread Reza Housseini


On 5/4/22 09:01, Maxime Devos wrote:

Liliana Marie Prikler schreef op wo 04-05-2022 om 06:16 [+0200]:

Until the previous mail, I have not seen anything about thematic
profiles, so I did not have thematic profiles in mind in my
response.
Even then, I'm not sure what these thematic profiles are supposed
to
solve that is not working around some underlying problem (e.g. slow
profile building times).

Pierre's "Guix Profiles in Practice" is a 2.5 years old blog post.
If
you can't think of any uses for multiple profiles, you're not the
target audience at this point.


I have seen that blog post.  I do use profiles, albeit with "guix
environment" and now "guix shell".  But I have not yet seen any reasons
for profile _splitting_.  And if I'm not the target audience, what does
that matter?

Greetings,
Maxime.


A specific use case for profile splitting I see very useful, is e.g. 
having a profile with all your editor and plugin dependencies and your 
project specific dependencies. So if you work on a specific project you 
can merge the two profiles and your linters will not complain about 
missing dependencies.


I can also imagine more fine grained splitting, for example test and 
documentation dependencies in separate profiles or even unit test and 
integration test dependencies split into separate profiles.


At the moment I see no possibilities for even the "easy" use case I 
mentioned first.


Cheers,

Reza



OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: Merging the purge-python2-packages branch

2022-05-31 Thread Reza Housseini

On 5/30/22 18:49, zimoun wrote:


 Well, me, personally, I continue to do most of my research using
 Python 2 because I cannot afford to port everything to Python
 3. And since I do only number crunching, meaning nothing with
 security implications, I am not particularly worried.

 [...]

 Once Python 2 lives in a largely isolated package sub-universe,
 I don't see much harm keeping it in Guix for now. If security
 issues become apparent, we might have to do something more
 drastic.


I think time-machine is the tool to use here, and as Maxime suggested, 
if you really need to keep maintaining a python2 package than guix-past 
is the perfect place to do it (porting to python3 makes probably still 
more sense than maintaining an outdated python package).




It appears to me surprising: we do not provide a schedule for the
removals, then bang purge.



I don't see the problem, python 2 was sunsetting in 2020(!) [1] after a 
prolongation from 2015, so it should not come as a surprise.


Cheers,
Reza


[1] https://www.python.org/doc/sunset-python-2/

--
Reza Housseini

This message is signed with my GnuPG key:

C0F3 0812 9AF2 80F4 0830 C2C1 C375 C6AF 0512 5C52


OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: Failed to build in QA

2023-10-09 Thread Reza Housseini

This is probably down to a top level circular dependency. In particular,
trying to paraview to compute the version to form part of the
native-search-path at the top level causes problems.


I'm wondering why it builds fine locally but causes problems in QA have 
you any pointers what might be the difference?



Making openfoam have LD_LIBRARY_PATH as a search path seems like the
incorrect use of search paths though, since you're searching for
something in the same package. Replacing this with wrapping would be an
improvement, although still I'm unsure why LD_LIBRARY_PATH would need
setting in this case

Hmm maybe you are right, will try to wrap the binaries instead...


OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Restart of v4l-utils build

2023-10-10 Thread Reza Housseini

Hi List

I wanted to install python-sphinx-gallery but deep down in the 
dependency list v4l-utils is failing [1]. Locally it builds fine 
therefore I assume the build only needs to be restarted.


Thanks,
Reza

[1] https://ci.guix.gnu.org/build/2030706/details

--
Reza Housseini

This message is signed with my GnuPG key:

C0F3 0812 9AF2 80F4 0830 C2C1 C375 C6AF 0512 5C52


OpenPGP_0xC375C6AF05125C52.asc
Description: OpenPGP public key


OpenPGP_signature
Description: OpenPGP digital signature


Re: Failed to build in QA

2023-11-29 Thread Reza Housseini

Hi Christopher

I submitted a new revision to the issue, but the QA link shows

Issue not found
This could mean the issue does not exist, it has no patches or has been 
closed.


do you know what the problem is here?

Thanks for your help,
Best,
Reza


xz backdoor

2024-04-01 Thread Reza Housseini

Hi Guixers

Just stumbled upon this recently discovered supply chain attack on xz, 
inserting a backdoor via test files [1, 2]. And it made me wondering, 
what would have been the effects on guix and how can we potentially 
avoid it?


Stay safe!
Reza

[1] https://www.openwall.com/lists/oss-security/2024/03/29/4
[2] https://access.redhat.com/security/cve/cve-2024-3094#cve-cvss-v3


Package for OpenCV4

2020-05-25 Thread Reza Alizadeh Majd
Hi,

just started to prepare a packge for `qimgv` [1], but it has a
dependency to OpenCV-4, and current available version of OpenCV in Guix
repository is 3.4.3.

just wanted to know, if there is a plan to upgrade OpenCV to version 4?
since I had a try and it seems that OpenCV-4 needs more tasks than just
upgrading the version number.


[1]: https://github.com/easymodo/qimgv

-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Persian translation

2020-08-04 Thread Ali Reza Hayati
Hey guys.
I hope you all are well.

I wanted to contribute to GNU and Guix but I'm not a programmer so I
thought maybe I can translate Guix to Persian if it's needed. Can you
guys help me to start? What should I do? Where should I start?

I have a GNU Savannah account now. What's the next step?

-- 
Ali Reza Hayati 
www.alirezahayati.com



signature.asc
Description: OpenPGP digital signature


Re: Persian translation

2020-08-04 Thread Ali Reza Hayati
Hey Florizan,
thanks for advice.

I'll report back. I just joined the mailing list and email the team
leader. If I don't hear back, I'll let you all know.

On 8/4/20 9:38 PM, pelzflorian (Florian Pelz) wrote:
> On Tue, Aug 04, 2020 at 12:57:37PM -0400, Amin Bandali wrote:
>> Hi Ali Reza,
>>
>> Ali Reza Hayati writes:
>>
>>> Hey guys.
>>> I hope you all are well.
>>>
>>> I wanted to contribute to GNU and Guix but I'm not a programmer so I
>>> thought maybe I can translate Guix to Persian if it's needed. Can you
>>> guys help me to start? What should I do? Where should I start?
>>>
>>> I have a GNU Savannah account now. What's the next step?
>>
>> Thanks for your interest and for volunteering to translate Guix into
>> Persian.  I'd be happy to help with translating and/or reviewing
>> yours/others' translations.
>>
>> I believe the translation of Guix is done using the Translation Project,
>> consisting of the three "packages" guix [0], guix-manual [1], and
>> guix-packages [2] as of now.
>>
>> [0]: <https://translationproject.org/domain/guix.html>
>> [1]: <https://translationproject.org/domain/guix-manual.html>
>> [2]: <https://translationproject.org/domain/guix-packages.html>
>>
>> We should probably start by emailing the "team lead" for the Persian
>> team <https://translationproject.org/team/fa.html> and ask to join the
>> team.  I don't think translating Guix requires a disclaimer, but you may
>> consider doing so anyway, if you may at some point in the future
>> contribute translations to other projects which require it.  It would
>> probably be a good idea to join the translation-team-fa mailing list as
>> well.
>>
>> <https://translationproject.org/html/translators.html> contains general
>> instructions for translators.
> 
> This is very much correct.  You just need to edit the PO file from
> <https://translationproject.org/team/fa.html> in a PO editor and after
> adding some translations submit it to the Translation Project.  But
> you should first talk to your team.
> 
> However I see little activity on
> <https://translationproject.org/team/fa.html>.  Please report back if
> there are any problems reaching the team lead.  Also the Guix System
> installer does not support right-to-left scripts yet (the bug was
> reported here <https://issues.guix.info/issue/35319>).
> 
> Regards,
> Florian
> 

-- 
Ali Reza Hayati 
www.alirezahayati.com



signature.asc
Description: OpenPGP digital signature


Re: Persian translation

2020-08-04 Thread Ali Reza Hayati
There is a law that supports companies/people what it's not strict nor good 
enough. No law like what we see in other countries. 

On August 5, 2020 2:15:29 AM UTC, aviva  wrote:
>On 8/4/20 1:08 PM, pelzflorian (Florian Pelz) wrote:
>> On Tue, Aug 04, 2020 at 12:57:37PM -0400, Amin Bandali wrote:
>>> Hi Ali Reza,
>>>
>>> Ali Reza Hayati writes:
>>>
>>>> Hey guys.
>>>> I hope you all are well.
>>>>
>>>> I wanted to contribute to GNU and Guix but I'm not a programmer so I
>>>> thought maybe I can translate Guix to Persian if it's needed. Can you
>>>> guys help me to start? What should I do? Where should I start?
>>>>
>>>> I have a GNU Savannah account now. What's the next step?
>
>
>Does Iran have a legal context for copyright? 
>
>
>
>

-- 
Ali Reza Hayati 
www.alirezahayati.com



Allow to add more than one group for service user

2020-08-19 Thread Reza Alizadeh Majd
Hi Guix, 

coming from this thread: 
https://lists.gnu.org/archive/html/help-guix/2020-07/msg00088.html

I had defined a service that needs to run by a specific user. regarding
application creates a unix domain socket during start and change the
ownership of socket file to specific group.

the problem is that daemon user (the user that runs the service) only
detects it's primary group and don't have permission to `chown` the
socket file. 

I also performed another test and run a bash instance inside a `screen`
using the service. when I check for the user groups, I had seen that
only primary group is detected as group for service user. 

I assume that that this might be a bug on group assignment for service
user. or I might missed something in service definition. 

kind regards,
Reza


-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Re: Allow to add more than one group for service user

2020-08-19 Thread Reza Alizadeh Majd
Hi Julien,

On Wed, 19 Aug 2020 07:11:25 -0400
Julien Lepiller  wrote:

> This kind of message should probably go to guix-help instead. Can you
> send your user and groups definition you're using? Then we should see
> if there's anything wrong with it, or if we can reproduce the issue.


sorry for interruption, since I assumed this could be a bug I continue
previous discussion in this mailing list, if you think `help-guix` is
the proper place to discuss about this issue we can continue on
following thread: 

https://lists.gnu.org/archive/html/help-guix/2020-07/msg00088.html

by the way, here is the user account and groups that I'm using for my
service definition:

--8<---cut here---start->8---
(define %kyc-accounts
  (list (user-group (name "kyc-service"))
(user-group (name "kyc-rpc"))
(user-account
  (name "kyc-service")
  (group "kyc-service")
  (system? #f)
  (supplementary-groups '("wheel" "kyc-rpc" "video"))
  (comment "KYC service user"
--8<---cut here---end--->8---

later I add these definitions using `account-service-type` extension:

--8<---cut here---start->8---
(define kyc-service-type
   ...
   (extensions (list ...
(service-extension account-service-type
  (const 
%kyc-accounts
   ...
--8<---cut here---end--->8---


-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Re: Allow to add more than one group for service user

2020-08-19 Thread Reza Alizadeh Majd
On Wed, 19 Aug 2020 14:13:43 -0400
Julien Lepiller  wrote:

> From what I understand, the generated /etc/group is correct, but
> loging as kyc-service, even after a reboot, you don't see the
> additional groups?

when I login normally, using `su - kyc-service` all groups are in place
and I can see both the primary and supplementary groups using `groups`
command. 

but, when I switch to a shell that is run by service, `groups` command
shows me only the primary group of the user:

--8<---cut here---start->8---
sh-5.0$ whoami 
kyc-service
sh-5.0$ groups
kyc-service
--8<---cut here---end--->8---

-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Re: Allow to add more than one group for service user

2020-08-19 Thread Reza Alizadeh Majd
On Wed, 19 Aug 2020 14:13:43 -0400
Julien Lepiller  wrote:

> From what I understand, the generated /etc/group is correct, but
> loging as kyc-service, even after a reboot, you don't see the
> additional groups?

in order to replicate this issue I had prepared a `test-service` that
provides bash access inside a screen for a test user:

--8<---cut here---start->8---
(use-modules (gnu)
 (gnu system)
 (gnu system shadow)
 (gnu packages admin)
 (gnu packages bash)
 (gnu packages base)
 (gnu packages screen)
 (gnu services shepherd)
 (guix gexp)
 (guix records)
 (ice-9 match))

(define-record-type* 
  test-configuration make-test-configuration
  test-configuration?
  (package test-configuration-package
   (default bash)))

(define test-shepherd-service
  (match-lambda
(($  package)
  (list (shepherd-service
  (provision '(test-service))
  (documentation "run a bash instance inside screen")
  (requirement '(user-processes))
  (start #~(make-forkexec-constructor
(list (string-append #$screen "/bin/screen")
  "-D" "-m" "-S" "test-service" 
  (string-append #$package "/bin/sh"))
#:user "test"
#:group "users"))
  (stop #~(make-kill-destructor)))

(define (test-accounts config)
  "return the user accounts for test-service"
  (list (user-group (name "testgrp"))
(user-account
  (name "test")
  (group "testgrp")
  (system? #t)
  (comment "test user")
  (supplementary-groups '("users" "wheel"))
  (home-directory "/home/test"

(define test-service-type
  (service-type
(name 'test-service)
(extensions (list (service-extension shepherd-root-service-type
 test-shepherd-service)
  (service-extension account-service-type
 test-accounts)))
(default-value (test-configuration

--8<---cut here---end--->8---

using above snippet, I realized that the only group which is set to
`#:group` parameter of `make-forkexec-constructor` (`users` in this
test) is available for service.

--8<---cut here---start->8---
root@panther ~# su - test
-bash-5.0$ groups
testgrp users wheel

-bash-5.0$ screen -r test-service
sh-5.0$ groups
users
--8<---cut here---end--->8--- 

-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Re: Allow to add more than one group for service user

2020-08-20 Thread Reza Alizadeh Majd
Hi Oleg, 

Thanks for your response

On Thu, 20 Aug 2020 09:04:36 +0300
Oleg Pykhalov  wrote:

> Addional groups which could be specified via ‘supplementary-groups’
> will be available for processes launched as services after Shepherd's
> next release with merged patch https://issues.guix.info/41573

Glad to hear about that, I assume this could fix my issue, so I just
need to wait for next release of Shepherd.

Regards, 
Reza

-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Service implementation for LXQt desktop

2020-09-02 Thread Reza Alizadeh Majd
Hi Guix, 

working on a service definition for LXQt desktop, I need to perform a
series of default configurations. for example to set the window manager,
prepare default panel, set the default theme, etc.

these configurations should be located $XDG_CONFIG_DIRS so the default
paths are:

/run/current-system/profile/etc/xdg
/home/$USER/.guix-profile/etc/xdg
/home/$USER/.config/

I wanted to use `activation-service-type` to prepare default
configurations in users home directory, but don't know how to access
each user's home directory. 

the other option is to provide default configurations in store and
symlink them in system profile. could anyone help me to do this using
activation snippet? 

this is the service implementation that I'm working on:

--8<---cut here---start->8---
(define-record-type* 
  lxqt-desktop-configuration make-lxqt-desktop-configuration
  lxqt-desktop-configuration?
  (package lxqt-package (default lxqt-modified-dev)))


(define %lxqt-activation
  #~(begin
  (let* ((conf-dir "DON'T KNOW HOW TO SET PATH FOR PROFILE")
 (session-conf (string-append conf-dir "/session.conf")))
(use-modules (guix build utils))
(mkdir-p conf-dir)
(unless (file-exists? session-conf)
  (call-with-output-file session-conf
(lambda (port)
  (format port "# Auto Generated by Lxqt Service
[General]
window_manager=openbox")))


(define lxqt-desktop-service-type
  (service-type
   (name 'lxqt-desktop)
   (extensions
(list (service-extension profile-service-type
 (compose list lxqt
  (service-extension activation-service-type
 (const %lxqt-activation))
   (default-value (lxqt-desktop-configuration))
   (description "Run the LXQt desktop environment.")))

--8<-------cut here---end--->8---

Kind regards,
Reza

-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Re: Service implementation for LXQt desktop

2020-09-07 Thread Reza Alizadeh Majd
Hi Ludovic,

On Mon, 07 Sep 2020 11:45:01 +0200
Ludovic Courtès  wrote:

> Instead of accessing each users’s home directory, I strongly recommend
> adding a new “skeleton”: a set of files that are automatically added
> to new home directories when a new user account shows up.

as I know, skeletons only apply on new home directories, and for
example if an existing user wants to switch from XFCE to LXQt desktop,
related skeleton files wont be applied on their home directory.

> To do that, the lxqt service can extend ‘account-service-type’ with
> new skeletons.  I can’t find an example of that but let us know if
> it’s harder than it seems!

as I understand from the documents, `account-service-type` extension
returns a list of `user-account` and `user-group` records. I also
didn't find any reference related to ad skeletons to `user-account`.



a solution that I was thinking of was to add these configurations, to
the related `$XDG_CONFIG_DIRS` path in system profile located in
`/run/current-system/profile/etc/xdg/...` just don't know which service
extension I should extend for this purpose. 

Thanks,
Reza

-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Re: Service implementation for LXQt desktop

2020-09-27 Thread Reza Alizadeh Majd
On Thu, 3 Sep 2020 11:11:42 +0430
Reza Alizadeh Majd  wrote:

> Hi Guix, 
> 
> working on a service definition for LXQt desktop, I need to perform a
> series of default configurations. for example to set the window
> manager, prepare default panel, set the default theme, etc.
> 
> these configurations should be located $XDG_CONFIG_DIRS so the default
> paths are:
> 
> /run/current-system/profile/etc/xdg
> /home/$USER/.guix-profile/etc/xdg
> /home/$USER/.config/
> 
> I wanted to use `activation-service-type` to prepare default
> configurations in users home directory, but don't know how to access
> each user's home directory. 
> 
> the other option is to provide default configurations in store and
> symlink them in system profile. could anyone help me to do this using
> activation snippet? 
> 
> this is the service implementation that I'm working on:
> 
> --8<---cut here---start->8---
> (define-record-type* 
>   lxqt-desktop-configuration make-lxqt-desktop-configuration
>   lxqt-desktop-configuration?
>   (package lxqt-package (default lxqt-modified-dev)))
> 
> 
> (define %lxqt-activation
>   #~(begin
>   (let* ((conf-dir "DON'T KNOW HOW TO SET PATH FOR PROFILE")
>  (session-conf (string-append conf-dir "/session.conf")))
> (use-modules (guix build utils))
> (mkdir-p conf-dir)
> (unless (file-exists? session-conf)
>   (call-with-output-file session-conf
> (lambda (port)
>   (format port "# Auto Generated by Lxqt Service
> [General]
> window_manager=openbox")))
> 
> 
> (define lxqt-desktop-service-type
>   (service-type
>(name 'lxqt-desktop)
>(extensions
> (list (service-extension profile-service-type
>  (compose list lxqt
>   (service-extension activation-service-type
>  (const %lxqt-activation))
>(default-value (lxqt-desktop-configuration))
>(description "Run the LXQt desktop environment.")))
> 
> --8<---cut here---end--->8---
> 
> Kind regards,
> Reza
> 

does anyone have any suggestion about this initial configurations for a
new desktop service (LXQt)? 

check the other desktop services, I didn't find any reference about
this type of initial configurations in service definitions, is this
type of modifications need to be applied on package definition instead?

Regards,
Reza

-- 
Reza Alizadeh Majd
PantherX Team
https://www.pantherx.org/



Re: Reviewing KDE Plasma state on Guix System

2019-09-26 Thread Reza Alizadeh Majd
Hi Guix, 

On behalf of PantherX team just wanted to mention that our bounty program is
still active for whom interested to work on `kwin` package.

Anyone interested to work on `kwin` package and provide a working version could
reach us both here on this thread or by contacting bou...@pantherx.org. 

The bounty results will be published to the community and whoever does that
gets the full credit. 

At the end just wanted to mention The bounty is really just a motivation that 
hopefully benefits the whole community.

---
Regards
Reza Alizadeh Majd
PantherX Team




right location for gitlab-runner

2019-12-28 Thread Reza Alizadeh Majd
Hi, 

I had prepare a package for `gitlab-runner`: 
https://docs.gitlab.com/runner/ 

but I'm not sure about the right place to submit regarding 
patch. is the `gnu/packages/ci.scm` is a good location to 
submit this package?

--
Regards
Reza Alizadeh Majd
PantherX Team



Re: right location for gitlab-runner

2019-12-31 Thread Reza Alizadeh Majd
Hi,

On Tue, Dec 31, 2019, at 1:07 AM, Ludovic Courtès wrote:
> Hello!
> 
> "Reza Alizadeh Majd"  skribis:
> 
> > I had prepare a package for `gitlab-runner`: 
> > https://docs.gitlab.com/runner/ 
> >
> > but I'm not sure about the right place to submit regarding 
> > patch. is the `gnu/packages/ci.scm` is a good location to 
> > submit this package?
> 
> Sure, sounds good!
> 
> Ludo’.
>

thanks, regarding patch submitted:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=38827

-- 
Regards
Reza Alizadeh Majd
PantherX Team