Re: [leaf-devel] git should not track conf/buildtool.conf globally

2015-10-15 Thread Andrew
Hi.

Use buildtool.local instead.

15.10.2015 00:38, Erich Titl пишет:
> Hi Folks
>
> stupid question...
>
> How do you avoid the following
>
> mega@leafbuilder:~/leaf/devel/bering-uclibc$ git status
> Auf Branch maint
> Ihr Branch ist auf dem selben Stand wie 'origin/maint'.
>
> Änderungen, die nicht zum Commit vorgemerkt sind:
>(benutzen Sie "git add ..." um die Änderungen zum Commit
> vorzumerken)
>(benutzen Sie "git checkout -- ..." um die Änderungen im
> Arbeitsverzeichnis zu verwerfen)
>
>  geändert:   conf/buildtool.conf
>
> I just modified the packager name :-(
>
> cheers
>
> ET
>
>
> --
>
> ___
> leaf-devel mailing list
> leaf-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/leaf-devel


--

___
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel


[leaf-devel] apkg -u, the deception?

2015-10-15 Thread Erich Titl
Hi KP

> I also _believe_ , that integration of apkg -u into the upgrade script will 
> be 
> easier to accomplish the then smaller changes and more helpful, than reinvent 
> apkg and configdb. 

I have been thinking hard about this and I believe you are wrong in this
aspect.
Let me state why I think this is so

- we have a package A of version 1.0 which we just call A
- we have a config file AC belonging to package A , call this AC
- we have an installed package A with a modified config file AC, call
this AC'
- we can detect the difference between AC and AC', lets call this D
- we have a package A of version 1.1, lets call this A1
- we have a config file AC belonging to package A1, lets call this AC1
- let us assume that AC <> AC1
- we want an installed package A1 with the adjusted config file AC1'

therefore we need a transformation from AC' to AC1'

- there is no direct transformation from AC' to AC1'
- we can build AC1' by applying D to AC1

Right now we do not save D, but we save AC'

If we replace AC by AC1 (by replacing the corresponding package A by A1)
then we lose the capability to generate the difference D and as a
consequence we loose the transformation from AC1 to AC1'

This leads me to the conclussion that the transformation of AC' to AC1'
cannot only work if either

- D is saved, because then we can apply D to AC1
- AC, AC1 and AC1' are available, because then we can calculate D

So a tool like apkg -u cannot work unless it is applied from a location
different from the original boot location, because once the package A
has been overwritten by A1 the reference to AC is lost.

Is there a description how apkg -u is to be used?

cheers

ET


--

___
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel


Re: [leaf-devel] apkg -u, the deception?

2015-10-15 Thread Erich Titl
Am 15.10.2015 um 20:17 schrieb kp kirchdoerfer:
> Hi Erich;
> 
> Am Donnerstag, 15. Oktober 2015, 19:16:19 schrieb Erich Titl:
>> Hi KP
>>
>> Am 15.10.2015 um 18:41 schrieb kp kirchdoerfer:
>>> Hi Erich;
>>
>> ..
>>
>>> No; we only need the new package with the AC1 and the AC', which is in
>>> configdb.lrp.
>>> If you call apkg -u it will detect the changed file and it will offer you
>>> to either Keep your version, Show differences, Edit a merge file or to go
>>> with the new version.
>>
>> How can you merge if you don't have a difference
> 
>>> I've checked that it even works, if you replace the original package with
>>> the new version on /mnt.
>>
>> Yes, that works and it corresponds to
>>
>> - AC, AC1 and AC' are available, because
>> from AC and AC' we can calculate D and apply it to AC1
> 
> In my tests D was calculated from AC1 and AC'.
> Have you tested or did I something wrong when testing?

Yes, but this is not the changes the user made between AC and AC'
The changes between AC1 and AC' are not D.

> 
>> In my previous mail there was a typo in the condition above
>>
>>> Pls test.
>>>
>>> So what upgrade can do is to copy the package to /mnt and run apkg -u
>>> afterwards from /mnt. If there are changes, the user can decide how to
>>> proceed.
>>
>> This was the first test I did and I did not like it. It is noisy like
>> hell. 
> 
> I'm running apkg -u very often and find it very convenient :)

Most of the time it is and often AC == AC1, but that is not a safe
assumption, as could be seen in the ez-ipupd case. Applying apkg -u to
ez-ipupd.lrp would have led to something different.

The correct sequence is to first calculate D and apply it to AC1. I am
about to test this in upgrade. The only problem I see is the existence
of local.lrp, which may contain just about anything,

> 
>> And most importantly (at least to me) is _the user should not need
>> to intervene_. This is because the average user has either forgotten the
>> changes or applied them using a web interface of some sort.
>>
>> For example, if you use webconf to configure /etc/network/interfaces
>> then the generated file will look a lot different from the one included
>> in the distribution. The user may never have seen the original, how
>> could he make an intelligent choice?
> 
> In that case webconf has to be fixed IMHO.

Webconf creates a very clean interface file. This is normal because it
is machine generated and machines tend to do repetitive tasks better
than hman beings. The original interface file is is a pretty crufty hand
maintained file. If anything, then the initial interface file needs to
be cleaned. But I don't believe this is necessary, as it is possible to
correctly calculate the difference D.

> 
>> Blindly just use the old configuration has it's problems, as seen
>> before, even calculating the difference and applying it to the new
>> config file may be error prone, but probably a lot safer than human
>> intervention.
>>
>>> There has been introduced a safety feature, that every upgrade needs a
>>> response (y/n) , even it doesn't touch any config etc..., but if changes
>>> in the config are detected, you'll be  offered with the menu to deal with
>>> the changes.
>> I messed around with apkg -u and looked at the implementation of
>> apkg.merge and apkg.mergefile. These two scripts do nothing more than
>> what 'diff -r' and 'patch' would do, probably just a lot slower.
>>
>> I would like to enable these two applets in busybox and I have done so
>> in my local branch. Tests are encouraging. It could make the scripts a
>> lot easier and more consistent than an implementation in bash. Any
>> objections to enhance busybox?
> 
> Ok; this is an IMHO a somewhat different/additional  issue.

I believe those are the tools for a solution.

> You may either merge maint into next or pu (proposed updates) and add your 
> changes there so we can test.
> Or you make a new (remote) branch with your changes so we can test.

Sounds reasonable, I branched of 5.2 but can easily rebase it to maint.

cheers

ET



--

___
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel


Re: [leaf-devel] apkg -u, the deception?

2015-10-15 Thread kp kirchdoerfer
Hi Erich;

Am Donnerstag, 15. Oktober 2015, 08:27:56 schrieb Erich Titl:
> Hi KP
> 
> > I also _believe_ , that integration of apkg -u into the upgrade script
> > will be easier to accomplish the then smaller changes and more helpful,
> > than reinvent apkg and configdb.
> 
> I have been thinking hard about this and I believe you are wrong in this
> aspect.
> Let me state why I think this is so
> 
> - we have a package A of version 1.0 which we just call A
> - we have a config file AC belonging to package A , call this AC
> - we have an installed package A with a modified config file AC, call
> this AC'
> - we can detect the difference between AC and AC', lets call this D
> - we have a package A of version 1.1, lets call this A1
> - we have a config file AC belonging to package A1, lets call this AC1
> - let us assume that AC <> AC1
> - we want an installed package A1 with the adjusted config file AC1'
> 
> therefore we need a transformation from AC' to AC1'
> 
> - there is no direct transformation from AC' to AC1'
> - we can build AC1' by applying D to AC1
> 
> Right now we do not save D, but we save AC'
> 
> If we replace AC by AC1 (by replacing the corresponding package A by A1)
> then we lose the capability to generate the difference D and as a
> consequence we loose the transformation from AC1 to AC1'
> 
> This leads me to the conclussion that the transformation of AC' to AC1'
> cannot only work if either
> 
> - D is saved, because then we can apply D to AC1
> - AC, AC1 and AC1' are available, because then we can calculate D
> 
> So a tool like apkg -u cannot work unless it is applied from a location
> different from the original boot location, because once the package A
> has been overwritten by A1 the reference to AC is lost.

No; we only need the new package with the AC1 and the AC', which is in 
configdb.lrp.
If you call apkg -u it will detect the changed file and it will offer you to 
either Keep your version, Show differences, Edit a merge file or to go with the 
new version.
I've checked that it even works, if you replace the original package with the 
new version on /mnt.

Pls test.

So what upgrade can do is to copy the package to /mnt and run apkg -u 
afterwards from /mnt. If there are changes, the user can decide how to 
proceed.

There has been introduced a safety feature, that every upgrade needs a 
response (y/n) , even it doesn't touch any config etc..., but if changes in the 
config are detected, you'll be  offered with the menu to deal with the changes. 
 


> Is there a description how apkg -u is to be used?

Only the source code...

kp

--

___
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel


Re: [leaf-devel] apkg -u, the deception?

2015-10-15 Thread Erich Titl
Hi KP

Am 15.10.2015 um 18:41 schrieb kp kirchdoerfer:
> Hi Erich;
> 
..

> 
> No; we only need the new package with the AC1 and the AC', which is in 
> configdb.lrp.
> If you call apkg -u it will detect the changed file and it will offer you to 
> either Keep your version, Show differences, Edit a merge file or to go with 
> the 
> new version.

How can you merge if you don't have a difference

> I've checked that it even works, if you replace the original package with the 
> new version on /mnt.

Yes, that works and it corresponds to

- AC, AC1 and AC' are available, because
from AC and AC' we can calculate D and apply it to AC1

In my previous mail there was a typo in the condition above

> 
> Pls test.
> 
> So what upgrade can do is to copy the package to /mnt and run apkg -u 
> afterwards from /mnt. If there are changes, the user can decide how to 
> proceed.

This was the first test I did and I did not like it. It is noisy like
hell. And most importantly (at least to me) is _the user should not need
to intervene_. This is because the average user has either forgotten the
changes or applied them using a web interface of some sort.

For example, if you use webconf to configure /etc/network/interfaces
then the generated file will look a lot different from the one included
in the distribution. The user may never have seen the original, how
could he make an intelligent choice?
Blindly just use the old configuration has it's problems, as seen
before, even calculating the difference and applying it to the new
config file may be error prone, but probably a lot safer than human
intervention.

> 
> There has been introduced a safety feature, that every upgrade needs a 
> response (y/n) , even it doesn't touch any config etc..., but if changes in 
> the 
> config are detected, you'll be  offered with the menu to deal with the 
> changes.

I messed around with apkg -u and looked at the implementation of
apkg.merge and apkg.mergefile. These two scripts do nothing more than
what 'diff -r' and 'patch' would do, probably just a lot slower.

I would like to enable these two applets in busybox and I have done so
in my local branch. Tests are encouraging. It could make the scripts a
lot easier and more consistent than an implementation in bash. Any
objections to enhance busybox?

cheers

ET


--

___
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel