Re: [DNG] Netinstall iso

2016-07-10 Thread Jaromil
On Sun, 10 Jul 2016, Daniel Reurich wrote:

> Hi Rowland, I can't understand the thinking behind the includes
> everything torrent, but the individual images can be found at
> https://files.devuan.org/devuan_jessie_beta/

it was done so that we could hold the beta release traffic back at a
time in which not many mirrors were still in place. having all files
in one torrent groups up all downloaders to share bandwidth. it is
still possible to select which files to download in most torrent
clients.

given the fact we have now big organizations covering our back with
bandwidth on mirrors, we may as well change this. However it does make
sense to have one single torrent for the big download IMHO which
should also include an archive of all sources contained in the isos.

> Also the basic net-installer iso can also be downloaded from
> https://packages.devuan.org/devuan/dists/jessie/main/installer-amd64/current/images/netboot/mini.iso
> 
> Why it's not included in the above folder I don't know.

it is included, the files are tagget NETINST


here the file naming scheme is briefly explained
https://devuan.org/os/filenaming

this naming was thought to be consistent and parsable by scripts. the
filenaming page was not visibile anymore because of a redirect, but
I've just restored it now.

ciao
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Netinstall iso

2016-07-10 Thread Paweł Cholewiński

W dniu 10.07.2016 o 10:17, Jaromil pisze:

Also the basic net-installer iso can also be downloaded from
> 
https://packages.devuan.org/devuan/dists/jessie/main/installer-amd64/current/images/netboot/mini.iso
>
> Why it's not included in the above folder I don't know.

it is included, the files are tagget NETINST


Hi Jaromil,

mini.iso has 28 MB instead of 212 MB for 
devuan_jessie_1.0.0-beta_amd64_NETINST.iso. I prefer 28 MB iso :-)


I think that PXE installer should be explicitly added to 
https://files.devuan.org/devuan_jessie_beta/ too.


Best Regards,
Paweł
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Netinstall iso

2016-07-10 Thread KatolaZ
On Sun, Jul 10, 2016 at 10:47:53AM +0200, Paweł Cholewiński wrote:
> W dniu 10.07.2016 o 10:17, Jaromil pisze:
> >>Also the basic net-installer iso can also be downloaded from
> >>> https://packages.devuan.org/devuan/dists/jessie/main/installer-amd64/current/images/netboot/mini.iso
> >>>
> >>> Why it's not included in the above folder I don't know.
> >it is included, the files are tagget NETINST
> 
> Hi Jaromil,
> 
> mini.iso has 28 MB instead of 212 MB for
> devuan_jessie_1.0.0-beta_amd64_NETINST.iso. I prefer 28 MB iso :-)

But they are two different beasts, indeed. I also prefer netboot, as I
said earlier in this thread, and I think we should offer it as an
option.

HND

KatolaZ

-- 
[ ~.,_  Enzo Nicosia aka KatolaZ - GLUGCT -- Freaknet Medialab  ]  
[ "+.  katolaz [at] freaknet.org --- katolaz [at] yahoo.it  ]
[   @)   http://kalos.mine.nu ---  Devuan GNU + Linux User  ]
[ @@)  http://maths.qmul.ac.uk/~vnicosia --  GPG: 0B5F062F  ] 
[ (@@@)  Twitter: @KatolaZ - skype: katolaz -- github: KatolaZ  ]
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Netinstall iso

2016-07-10 Thread Jaromil

OK! thanks everyone for the recommendations, this is all useful to
smooth the edges for next release.

we will include both the mini.iso and the PXE setup in the next
Devuan release folder. Meanwhile, these are all found here

https://auto.mirrors.devuan.org/devuan/dists/jessie/main/installer-amd64/current/images/netboot/


ciao
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Studying C as told. (For help)

2016-07-10 Thread karl
Edward Bartolo:
...
> I am attaching the source file for comments for all those who may want
> to comment.

 If you want to compare, have a look:

http://turkos.aspodata.se/git/c/libaspoutil/parse.h
http://turkos.aspodata.se/git/c/libaspoutil/parse.c

Regards,
/Karl Hammar

---
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57


___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[DNG] Studying C as told. (For help)

2016-07-10 Thread Edward Bartolo
Hi,

Syntax:
a)  (a+!b).(c+(!q))
b)  (q+r).!w


For the simple syntax rules I have, code was getting too complicated
using recursive descent parsing. So, I switched algorithm to use an
old algorithm I used some 20 years ago to implement algebraic
expression parsing. In this algorithm tokens are checked for the
presence of acceptable tokens that  precede and succeed them. If the
presence or absence of some nearby tokens implies a different context,
a deeper checking is done.

This time the code is very simple compared to what I was getting using
recursive descent parsing. Yet, the code seems to do its job.

I am attaching the source code for the parser for comments in case
readers want to make some comments.

Edward
#include 
#include 
#include 
#include 

#define INVALID 0
#define VALID   1

typedef char* pchar;
pchar* tokens; /* global variable to hold token list */
int token_count = 0;   /* global variable to keep track of token count */
int error_pos = 0; /* global variable to hold error position */

#define token_delta 50

typedef struct {
  int start_bracket;
  int stop_bracket;
  int consecutive_brackets;
} t_bracket_values;

void tokenise(char* expression) {
  char ch;  /* character at iterator's position */
  char* atoken; /* token to be added to token list  */
  char* start = NULL;   /* holds a char* to point to start of multicharacter token */
  char* string_token;   /* holds multicharacter token */
  int char_count = 0;   /* keeps track of number of characters in multicharacter token */
  
  int while_counter = 0;
  /* expr_len_and_null holds the total length of input string including null terminator */
  int expr_len_and_null = strlen(expression) + 1;
  while (while_counter++ <= expr_len_and_null) {
ch = *expression++; 
switch (ch) {
  case '(': 
  case ')':
  case '.':
  case '+':
  case '!':
  case '\0':
if (start && char_count > 0) {
  string_token = malloc((char_count + 1)*sizeof(char));
  strncpy(string_token, start, char_count);
  tokens[token_count++] = string_token;
  
  start = NULL;
  char_count = 0;
}
  
if (ch == '\0') return;
atoken = malloc(2*sizeof(char));
atoken[0] = ch;
atoken[1] = '\0';
tokens[token_count++] = atoken;
break;

  case '\n':
break;  

  default:
if (start == NULL)
  start = expression - 1;
char_count++;  
}
  }
}

void free_memory() {
  int k = token_count;
  
  while (--k >= 0) free(tokens[k]);
  free(tokens);
}

/PARSER*/

static char* getToken(pchar* tokens, int i) {
  if (i < token_count)
return tokens[i];
else return NULL;
}
#define alpha  "abcdefghijklmnopqrstuvwxyz"

/* succeeds ". + )" end */
#define alpha_cl_br")"alpha

/* succeeds "! alpha " */
#define oper_op_br "!+.("

/* at the beginning of expression */
#define alpha_excl_op_br   "!("alpha

static int isOperand(pchar* tokens, int i) {
  char* atoken = getToken(tokens, i);
  
  if (atoken == NULL) 
return 0;
  else {
if (strlen(atoken) > 1)
  return 1;
  else return (strchr(alpha, atoken[0]) != NULL);
  }  
}

int getErrorPosn(pchar* tokens) {
  int i = -1;
  char prev_ch = '\0', ch;
  int error_pos1 = -1, error_pos2 = -1;
  char* atoken;
  
  if (token_count == 1) {
if (!isOperand(tokens, 0))
  i = 0;
  
error_pos = i;
return error_pos;  
  }  
  
  while (++i < token_count) {
atoken = getToken(tokens, i);
ch = atoken[0];

if (i > 0 && i < token_count - 1) {
  if ( (ch == '+' || ch == '.' || ch == ')') && 
   (prev_ch == ')' ||  isOperand(tokens, i - 1))  )
  {
prev_ch = ch;  
continue;
  }

  if ( (ch == '!' || ch == '(' || isOperand(tokens, i)) &&
   strchr(oper_op_br, prev_ch) )
  {
prev_ch = ch;
continue;
  }
}
prev_ch = ch;

/* at the end of token list */
if ( (i == token_count - 1) && (ch == ')' || isOperand(tokens, i)) )
  continue;
/* at the beginning of token list */  
if ( (i == 0) && (ch == '!' || ch == '(' || isOperand(tokens, i)) )
  continue; 
  
error_pos1 = i;
break;   
  }
  
  int brackets = 0;
  for (i = 0; i < token_count; i++) {
atoken = getToken(tokens, i);
ch = atoken[0];

if (ch == '(') brackets++;
  else if (ch == ')')
brackets--;

if (brackets < 0) {
  error_pos2 = i;
  break;
}
  }
  
  if (brackets > 0)
error_pos2 = i;
  
  /* choose the earlier error for output */
  if (error_pos1 > error_pos2)
error_pos = error_pos1;
else error_pos = error_pos2;

  return error_pos;  
}


/***/

int main() {
  extern int error_pos;

  char input[101];

  toke

Re: [DNG] lilo

2016-07-10 Thread karl
Joel Roth:
> I'm revisiting this thread, after reading more about the
> automatic kernel and bootloader upgrading policies in Debian and
> Ubuntu.
> 
> Personally, I'm astonished that a casual upgrade will 
> end up trying to update a working bootloader.
...

This used to fend off the automatic updating of the bootloader

# cat /etc/kernel-img.conf 
do_symlinks = no
do_bootloader = no
silent_modules = yes
warn_initrd = no

I don't think that is still working since [1] says:

  Most of those tasks are offloaded to hook scripts in the
  /etc/kernel/*.d/ directories. For instance, the integration
  with grub relies on /etc/kernel/postinst.d/zz-update-grub
  and /etc/kernel/postrm.d/zz-update-grub to call update-grub
  when kernels are installed or removed. 

so have a look into your /etc/kernel/ directories to find a way to
disable automatic updating of the bootloader.

Regards,
/Karl Hammar

[1] https://debian-handbook.info/browse/stable/sect.kernel-installation.html

---
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57


___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Studying C as told. (For help)

2016-07-10 Thread Edward Bartolo
Hi,

Yes, I tried to use recursive descent parsing techniques but ended up
with too many complications that are not justified for the simple
syntax rules that I have.

In short I am trying to parse Boolean expressions like the following
to verify their syntax.
a) (a+!b).(!!c+d)
b) ((w+!!!c).(!e+((!!!q

To avoid having overly complicated code for a seemingly simple task, I
switched to use an old algorithm I devised some 20 years ago.

In my algorithm, tokens are checked for acceptable preceding and
succeeding tokens. In case the presence or absence of a nearby token
changes the rules, deeper checking is employed. The resultant code is
simple and seems to work as intended.

I have tried to send this mail to this mailing thread several times
unsuccessfully. For some reason gmail is sending it to the wrong
thread.

The code follows from here:

#include 
#include 
#include 
#include 

#define INVALID 0
#define VALID   1

typedef char* pchar;
pchar* tokens; /* global variable to hold token list */
int token_count = 0;   /* global variable to keep track of token count */
int error_pos = 0; /* global variable to hold error position */

#define token_delta 50

typedef struct {
  int start_bracket;
  int stop_bracket;
  int consecutive_brackets;
} t_bracket_values;

void tokenise(char* expression) {
  char ch;  /* character at iterator's position */
  char* atoken; /* token to be added to token list  */
  char* start = NULL;   /* holds a char* to point to start of
multicharacter token */
  char* string_token;   /* holds multicharacter token */
  int char_count = 0;   /* keeps track of number of characters in
multicharacter token */

  int while_counter = 0;
  /* expr_len_and_null holds the total length of input string
including null terminator */
  int expr_len_and_null = strlen(expression) + 1;
  while (while_counter++ <= expr_len_and_null) {
ch = *expression++;
switch (ch) {
  case '(':
  case ')':
  case '.':
  case '+':
  case '!':
  case '\0':
if (start && char_count > 0) {
  string_token = malloc((char_count + 1)*sizeof(char));
  strncpy(string_token, start, char_count);
  tokens[token_count++] = string_token;

  start = NULL;
  char_count = 0;
}

if (ch == '\0') return;
atoken = malloc(2*sizeof(char));
atoken[0] = ch;
atoken[1] = '\0';
tokens[token_count++] = atoken;
break;

  case '\n':
break;

  default:
if (start == NULL)
  start = expression - 1;
char_count++;
}
  }
}

void free_memory() {
  int k = token_count;

  while (--k >= 0) free(tokens[k]);
  free(tokens);
}

/PARSER*/

static char* getToken(pchar* tokens, int i) {
  if (i < token_count)
return tokens[i];
else return NULL;
}
#define alpha  "abcdefghijklmnopqrstuvwxyz"

/* succeeds ". + )" end */
#define alpha_cl_br")"alpha

/* succeeds "! alpha " */
#define oper_op_br "!+.("

/* at the beginning of expression */
#define alpha_excl_op_br   "!("alpha

static int isOperand(pchar* tokens, int i) {
  char* atoken = getToken(tokens, i);

  if (atoken == NULL)
return 0;
  else {
if (strlen(atoken) > 1)
  return 1;
  else return (strchr(alpha, atoken[0]) != NULL);
  }
}

int getErrorPosn(pchar* tokens) {
  int i = -1;
  char prev_ch = '\0', ch;
  int error_pos1 = -1, error_pos2 = -1;
  char* atoken;

  if (token_count == 1) {
if (!isOperand(tokens, 0))
  i = 0;

error_pos = i;
return error_pos;
  }

  while (++i < token_count) {
atoken = getToken(tokens, i);
ch = atoken[0];

if (i > 0 && i < token_count - 1) {
  if ( (ch == '+' || ch == '.' || ch == ')') &&
   (prev_ch == ')' ||  isOperand(tokens, i - 1))  )
  {
prev_ch = ch;
continue;
  }

  if ( (ch == '!' || ch == '(' || isOperand(tokens, i)) &&
   strchr(oper_op_br, prev_ch) )
  {
prev_ch = ch;
continue;
  }
}
prev_ch = ch;

/* at the end of token list */
if ( (i == token_count - 1) && (ch == ')' || isOperand(tokens, i)) )
  continue;
/* at the beginning of token list */
if ( (i == 0) && (ch == '!' || ch == '(' || isOperand(tokens, i)) )
  continue;

error_pos1 = i;
break;
  }

  int brackets = 0;
  for (i = 0; i < token_count; i++) {
atoken = getToken(tokens, i);
ch = atoken[0];

if (ch == '(') brackets++;
  else if (ch == ')')
brackets--;

if (brackets < 0) {
  error_pos2 = i;
  break;
}
  }

  if (brackets > 0)
error_pos2 = i;

  /* choose the earlier error for output */
  if (error_pos1 > error_pos2)
error_pos = error_pos1;
else error_pos = error_pos2;

  return error_pos;
}


/***/

int main() {
  extern int error_pos;

  char input[101];

  tokens = malloc(token_del

Re: [DNG] lilo

2016-07-10 Thread Joel Roth
On Sun, Jul 10, 2016 at 12:16:38PM +0200, k...@aspodata.se wrote:
> Joel Roth:
> > I'm revisiting this thread, after reading more about the
> > automatic kernel and bootloader upgrading policies in Debian and
> > Ubuntu.
> > 
> > Personally, I'm astonished that a casual upgrade will 
> > end up trying to update a working bootloader.
> ...
> 
> This used to fend off the automatic updating of the bootloader
> 
> # cat /etc/kernel-img.conf 
> do_symlinks = no
> do_bootloader = no
> silent_modules = yes
> warn_initrd = no

That *would* be convenient.
 
> I don't think that is still working since [1] says:
> 
>   Most of those tasks are offloaded to hook scripts in the
>   /etc/kernel/*.d/ directories. For instance, the integration
>   with grub relies on /etc/kernel/postinst.d/zz-update-grub
>   and /etc/kernel/postrm.d/zz-update-grub to call update-grub
>   when kernels are installed or removed. 

> so have a look into your /etc/kernel/ directories to find a way to
> disable automatic updating of the bootloader.

That would be a good place to change permissions.  

Thanks.

> Regards,
> /Karl Hammar
> 
> [1] https://debian-handbook.info/browse/stable/sect.kernel-installation.html
> 

-- 
Joel Roth
  

___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] Netinstall iso

2016-07-10 Thread Steve Litt
On Sun, 10 Jul 2016 10:04:55 +0100
KatolaZ  wrote:

> On Sun, Jul 10, 2016 at 10:47:53AM +0200, Paweł Cholewiński wrote:
> > W dniu 10.07.2016 o 10:17, Jaromil pisze:  
> > >>Also the basic net-installer iso can also be downloaded from  
> > >>> https://packages.devuan.org/devuan/dists/jessie/main/installer-amd64/current/images/netboot/mini.iso
> > >>>
> > >>> Why it's not included in the above folder I don't know.  
> > >it is included, the files are tagget NETINST  
> > 
> > Hi Jaromil,
> > 
> > mini.iso has 28 MB instead of 212 MB for
> > devuan_jessie_1.0.0-beta_amd64_NETINST.iso. I prefer 28 MB iso :-)  
> 
> But they are two different beasts, indeed. I also prefer netboot, as I
> said earlier in this thread, and I think we should offer it as an
> option.

What I can add to this discussion is back when I was a Wheezy user, I
was *never* able to successfully install from anything but a network
installation.

SteveT

Steve Litt 
July 2016 featured book: Troubleshooting Techniques
 of the Successful Technologist
http://www.troubleshooters.com/techniques
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[DNG] Just giving the devuan-sdk a try out

2016-07-10 Thread Ozi Traveller
Hi

I thought this was working the last time I tried it out.

Maybe I should wait until the next beta is out?

Ozi

ozi@devuan:~$ zsh --no-rcs
devuan% cd devuan-sdk
devuan% source sdk
 (*) Devuan SDK loaded
devuan% sdk-init
Devuan
 (*) Downloading bootstrap source packages
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: You must put some 'source' URIs in your sources.list
receiving incremental file list
debian-keyring.gpg
 37,592,859 100%3.62MB/s0:00:09 (xfr#1, to-chk=0/1)
GnuPG debian maintainers keyring succesfully imported
 (*) Devuan SDK succesfully initialized
  .  For usage information refer to the README.
devuan% sdk-chroot-arch amd64

 (*) Chroot selected: amd64
  .  no built chroot found (run sdk-chroot-build)
devuan% sdk-chroot-build
 amd64
[devuan-amd64]
type=directory
directory=/home/ozi/devuan-sdk/chroot/amd64
description=Devuan SDK amd64
users=ozi
root-users=ozi
aliases=jessie-amd64
 (*) Devuan schroot configuration created for arch amd64
 (*) amd64: all chroot stage(s) succesfully built
devuan% seed xfce
amd64
  .  Selected iso type: xfce
devuan% auto-isoamd64
xfce
mkdir: cannot create directory ‘/home/ozi/devuan-sdk/chroot/amd64/usr’:
Permission denied
 [E] error in: iso-import
 [W] called in: Selected iso type: xfce
 [W] called in: amd64: all chroot stage(s) succesfully built
devuan%
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


[DNG] devuan.org OK?

2016-07-10 Thread Simon Walter
Is there anything going on with devuan.org domain name? Did I miss an 
announcement of down time?


Kind regards,

Simon
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] devuan.org OK?

2016-07-10 Thread Ozi Traveller
It's ok here.
Ozi

On Mon, Jul 11, 2016 at 10:43 AM, Simon Walter  wrote:

> Is there anything going on with devuan.org domain name? Did I miss an
> announcement of down time?
>
> Kind regards,
>
> Simon
> ___
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng
>
___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng


Re: [DNG] devuan.org OK?

2016-07-10 Thread Simon Walter

Oh... My ISP is . Thanks for the heads up.

Simon

On 07/11/2016 10:13 AM, Ozi Traveller wrote:

It's ok here.
Ozi

On Mon, Jul 11, 2016 at 10:43 AM, Simon Walter mailto:si...@gikaku.com>> wrote:

Is there anything going on with devuan.org 
domain name? Did I miss an announcement of down time?

Kind regards,

Simon
___
Dng mailing list
Dng@lists.dyne.org 
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng



___
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng