Re: [arch-projects] [arch-ports] [devtools] Rebasing devtools32 to contribute upstream

2018-01-15 Thread Erich Eckner
Hi Luke,

yeah, sure, we/I can switch to a rebasing workflow. Thanks for the
suggestion. In retrospect, I have no Idea anymore, why I started with a
merging workflow :-/

Cheers,
Erich

On 15.01.2018 18:24, Luke Shumaker wrote:
> Hi all,
> 
> As the maintainer of Parabola's devtools, I know that with a merging
> workflow, it can be a huge pain to rebase out changes to have patchset
> that you can contribute upstream.
> 
> If any of the Arch Linux 32 team ever decide that you want to
> contribute changes from devtools32 into upstream devtools, I expect
> that you will find the "lukeshu/rebase/archlinux32" branch of
> https://git.parabola.nu/packages/devtools-par.git/ to be useful.  It
> is simply devtools32's "master" branch, rebased so that it looks like
> it used a rebasing workflow instead of a merging workflow.
> 
> I'll generally keep it up-to-date as I keep an eye out for anything
> that I might want to backport into Parabola.  (And indeed, there's
> already one such change
> https://lists.archlinux.org/pipermail/arch-projects/2018-January/004704.html )
> 



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [devtools] [PATCH v2 1/1] arch-nspawn: ignore localhost for repository mirror

2018-07-23 Thread Erich Eckner
On 23.07.2018 09:16, Christian Hesse wrote:
> From: Christian Hesse 
> 
> My system has a mirror configuration where only the host can access a
> local caching service on localhost. So ignore localhost urls.

I'm curious, how this can happen / why this is desirable. Shouldn't the
client be able to access the same network resources as the host?
In general, my feeling is, that it is rather desired to repair the
caching for the client than skipping it.

regards,
deep42thought

> 
> Signed-off-by: Christian Hesse 
> ---
>  arch-nspawn.in | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch-nspawn.in b/arch-nspawn.in
> index b9c846e..020ed71 100644
> --- a/arch-nspawn.in
> +++ b/arch-nspawn.in
> @@ -60,7 +60,7 @@ fi
>  
>  pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
>  # shellcheck disable=2016
> -host_mirror=$($pacconf_cmd --repo extra Server 2> /dev/null | head -1 | sed 
> -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#')
> +host_mirror=$($pacconf_cmd --repo extra Server 2> /dev/null | grep -E -v 
> '(127\.0\.0\.1|localhost)' | head -1 | sed -r 
> 's#(.*/)extra/os/.*#\1$repo/os/$arch#')
>  # shellcheck disable=2016
>  [[ $host_mirror == *file://* ]] && host_mirror_path=$(echo "$host_mirror" | 
> sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g')
>  
> 



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [devtools] [PATCH v2 1/1] arch-nspawn: ignore localhost for repository mirror

2018-07-23 Thread Erich Eckner
On 23.07.2018 09:48, Christian Hesse wrote:
> Erich Eckner  on Mon, 2018/07/23 09:20:
>> On 23.07.2018 09:16, Christian Hesse wrote:
>>> From: Christian Hesse 
>>>
>>> My system has a mirror configuration where only the host can access a
>>> local caching service on localhost. So ignore localhost urls.  
>>
>> I'm curious, how this can happen / why this is desirable. Shouldn't the
>> client be able to access the same network resources as the host?
>> In general, my feeling is, that it is rather desired to repair the
>> caching for the client than skipping it.
> 
> The host is running pacredir [0][1], which listens on localhost and redirects
> to hosts it found on local network. But pacredir returning 404 is a valid
> answer, it just means the file is not available in local network. In this
> case pacman just uses the next mirror.
> 
> In fact pacredir is accessible form client, but things would break
> as it has just this single server configured. There is no fallback to a real
> mirror that has all the files required.
> 
> [0] https://www.archlinux.org/packages/community/x86_64/pacredir/
> [1] https://github.com/eworm-de/pacredir#pacredir
> 

So the core problem is, that archbuild - in contrast to pacman - only
considers the first mirror. Wouldn't it be better to drop the "head -n1"
then?

regards,
deep42thought



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [devtools] [PATCH 1/2] arch-nspawn, mkarchroot: Allow not sharing the cache directories.

2019-01-15 Thread Erich Eckner
>>> It also allows building packages for different Arch based distros on the
>>> same host more easily.
>>
>> Arch Linux 32 has the same issue and solved it using this much simpler
>> patch:
>> https://github.com/eli-schwartz/devtools/commit/c0681c0ec0a93a4a4eaf9b2fd85ce48a30702a03
>>
>> The solution would then be to add the different cachedirs to the
>> pacman.conf you use, which is anyways going to be different due to being
>> i686-specific.
> 
> But this will still bind a directory from the host into the container right?
> It would require me to create separate cache directories on the host
> and create matching pacman.conf files.
> It would indeed be a simpler patch to devtools, but the whole process is 
> harder.

This is inevitable if you want to have a cache which persist through
cleaning the root/ chroot (the option is -c, IIRC) - which is IMHO a
good thing to have.

> 
> I do think these patches make sense.

Only if you plan to use no (persistent) cache at all.

regards,
Erich



signature.asc
Description: OpenPGP digital signature


Re: [arch-projects] [netctl] netctl, cloud-init, and systemd

2019-06-17 Thread Erich Eckner via arch-projects

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Hi,

- --- snip ---


In case you are not familiar with cloud-init, the idea is that you can
build a single OS image that runs cloud-init on boot, and cloud-init
will take care of such things as network configuration, so that the same
image will work regardless of the network setup you choose for the cloud
instance.


Does cloud-init run before or after systemd? In other words: is it a
systemd unit of some kind or is it rather an init daemon itself which
chain-loads systemd?


The current cloud-init implementation for Arch uses netctl [3]. The
implementation is correct in such a way that it does indeed render the
right netctl profile(s) and enables them. However there is a problem:
they are not being started. AFAICT this is because cloud-init does this
while the systemd boot is already in process, and changing the
dependency graph (by adding new units) does not have any effect until
the next run (everything works right on second boot). Note that I even
tried having cloud-init run `systemd daemon-reload` after enabling the
units, but it didn't help either.


Did you try cloud-init to issue "systemctl start $unitname.service" 
additionally to "systemctl enable $unitname.service"? This seems to me to 
be the right way.




The reason I am posting this here is that this seems to be an issue due
to the particular way netctl use systemd units. Since you don't know the
names or the number of profiles (units) that will be generated during
image creation, you cannot enable them at that time. But doing so during
first boot does not seem to work.


I would rather say it's due to the way, cloud-init uses systemd units: it
enables them, but that's only relevant for successive boots, so it should
rather enable and start them (systemd should still honor the dependencies
of the units and postpone the start to the point where all of the
dependencies are loaded, too).



Just for comparison, if one were to use e.g. systemd-networkd instead,
you would just enable the systemd-networkd unit during image creation,
cloud-init could generate the appropriate config for any number of
devices, and when the unit starts it will do the right thing. Likewise
on other distros, e.g. Debian with /etc/network/interfaces or such.

Now, from my point of view, there could be several approaches to solve

this:


1. systemd supports updates of the dep graph during boot
2. support such a use case in netctl
3. change cloud-init to use systemd-networkd for Arch

Let me quickly elaborate:

1. is intentionally not phrased as something to be done. It might
already be a thing, I just couldn't figure out how to do it. If someone
knows more about this, I would love to hear about it. If this works, it
would be the easiest solution. However, if it doesn't, I don't have my
hopes up high for this being added to systemd anytime soon.


This would mean, if I "systemctl enable $some.service", it will be started
right away, too - probably not, what systemd devs want (at least it's
not, what systemd currently does).



2. is the main reason I am writing this. Things that came to mind were
another special unit (netctl-all?), or even just a well-defined
interface to write devices into the state file, so that the plain netctl
unit would work. I would be very interested to hear how such a thing
sounds to you, the developers?


There is currently netctl-auto@.service, but this requires to know the
interfaces in advance. Maybe the netctl devs can consider adding another
unit which is interface agnostic? "netctl-auto.service" maybe? (I'm not 
familiar with netctl's interna - maybe this is not possible at all)




3. Is of course an option, but would require quite a bit of work in
cloud-init. That work, if done right, might however at some point
benefit other distros, should they be using systemd-networkd as well.
The main reason I am also bringing this up that I was wondering if there
are possibly any plans to abandon netctl anyways at some point in favor
of distro-agnostic solutions (be it systemd-networkd or any other).

So, sorry for the long mail, but I probably omitted a few crucial
details already, so don't hesitate to ask for clarifications :)

I would love to hear your thoughts on this!

Thanks a lot,
Conrad

[1] https://aur.archlinux.org/packages/cloud-init/
[2] https://aur.archlinux.org/packages/growpart/
[3] https://git.launchpad.net/cloud-init/tree/cloudinit/distros/arch.py



regards,
Erich

-BEGIN PGP SIGNATURE-

iQIzBAEBCAAdFiEE3p92iMrPBP64GmxZCu7JB1Xae1oFAl0H7csACgkQCu7JB1Xa
e1pDBg//ad20dxPOMwkBx6ZXFK6W/Cq9qsG0T0iUP3p8pazDQkDUCV9B6UNSFLPf
dY9uGXSnKKq4N/HsXGce4SySl6dCpRMLeVEd3oAFfXem9XhLdFQbqA2OhF4Xe3k/
4lXDJW2rQciuKw8gxAwRodZ5pRXDnW8LYcFyCy/eT84SZwQAztjM//Evdn805I4T
kc8M55sEzjOr7lYPnBafMYx2gzVMGtLBB3nV+Ln0D0Tq53nIU7i3GSOfnihbzg3X
HtH78scbH44EYeEjTjZBw/heU6UmQReZls4pSI5bL5lF7EpvpiCakVXNZJ5VOyfn
pT9tQ9Z8b9ok3+DRfyYpuQACSK+PAL5d10mizVvvZn6XyfdfgYLTMUIw1wm/7rha