LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 01-02-2016, 12:10 PM   #376
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161

[edit] I wrote that before read latest phenixia2003 post.

The bug was introduced in Version 1.5.2 - 18/Dec/2015

I don't know why [[:digit:]] does not work as [0-9], and only if used together sudo su -
Just what I know is that grep uses a limited set of regular expression (that is what we need in that part of code), and I don't know the limits.
Some other (italian) user had the same problem, so I was able to compare more outputs and replicate on my machine (both slackware64-current multilib), and from experiment I discovered that [0-9] does work and [[:digit:]] does not.


May be a grep or sudo or su or enviroment or permission or kernel bug. Or may not.


slackpkg+-1.6.1-noarch-6mt.txz should fix.


@Didier: I not missing to read your post about the a stable release (or an LTS release) of slackpkg+. I'm just thinking about the feasibility of that.

@All: What do you think about the ConnochaetOS problem?
I know nothing about legal pratices.
The patch in post #356 (that is not pushed on github) disallow haary to use slackpkg+ unless he re-sign all slackware packages, and a patch that I have not posted deny to sign the official packages without the official slackware GPG key, disallowing haary to use slackpkg+ in a full-free distribution unless he does not use CHECKGPG=off.
If a user import a key from another link than official, however he has imported one trusted key.

We can add a slackpkgplus.conf directive that allow to download and install packages signed with external keys (that in effect is more secure than re-sign official packages with an non-official key, that means that a user must 'appropriate' himself package of other users)

Last edited by zerouno; 01-02-2016 at 12:11 PM. Reason: [edit] I wrote that before read latest phenixia2003 post.
 
Old 01-02-2016, 12:34 PM   #377
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-14.2.1 on Lenovo Thinkpad W520
Posts: 8,712

Rep: Reputation: Disabled
In any case maybe using GNU grep (but hey, that's what we have) can make hard to predict the results in some cases, as it lacks a "--posix" option as e.g. bash.

For instance I see in "man grep":
Quote:
In GNU grep, there is no difference in available functionality between basic and extended syntaxes
which is worrying IMHO as e.g. then in a basic regular expression you have to write \+ so that + be considered as a repetition operator, whilst for a POSIX compliant grep in such a case + is a repetition operator only in extended regular expressions, and has to be escaped with \ to loose this role then... Room for confusion here. But I guess that we have to live with that.
 
Old 01-02-2016, 12:42 PM   #378
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161
By further analisys, the grep that fails is not the latest but the second:

Code:
# grep -n '^SLACKPKGPLUS_multilib ' /tmp/slackpkg.rqANuJ/pkglist| grep -w '.*'| grep -m 1 '^[[:digit:]]\+:SLACKPKGPLUS_multilib gcc-java '
6:SLACKPKGPLUS_multilib gcc-java 5.3.0_multilib x86_64 1alien gcc-java-5.3.0_multilib-x86_64-1alien ./SLACKPKGPLUS_multilib txz
grep: write error: Broken pipe
root@rossini:~# echo ${PIPESTATUS[*]}
0 2 0
Code:
#  grep -n '^SLACKPKGPLUS_multilib ' /tmp/slackpkg.rqANuJ/pkglist| strace -f grep -w '.*'| grep -m 1 '^[[:digit:]]\+:SLACKPKGPLUS_multilib gcc-java '
execve("/usr/bin/grep", ["grep", "-w", ".*"], [/* 36 vars */]) = 0
brk(0)                                  = 0x122f000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d75e9c000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=322132, ...}) = 0
mmap(NULL, 322132, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e4d000
close(3)                                = 0
open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\25\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=451376, ...}) = 0
mmap(NULL, 2546856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d75a0d000
mprotect(0x7f2d75a7b000, 2093056, PROT_NONE) = 0
mmap(0x7f2d75c7a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6d000) = 0x7f2d75c7a000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\7\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2106488, ...}) = 0
mmap(NULL, 3979840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d75641000
mprotect(0x7f2d75803000, 2097152, PROT_NONE) = 0
mmap(0x7f2d75a03000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c2000) = 0x7f2d75a03000
mmap(0x7f2d75a09000, 14912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2d75a09000
close(3)                                = 0
open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0a\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=142536, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d75e4c000
mmap(NULL, 2217136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d75423000
mprotect(0x7f2d7543c000, 2093056, PROT_NONE) = 0
mmap(0x7f2d7563b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f2d7563b000
mmap(0x7f2d7563d000, 13488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2d7563d000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d75e4b000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d75e4a000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d75e49000
arch_prctl(ARCH_SET_FS, 0x7f2d75e4a700) = 0
mprotect(0x7f2d75a03000, 16384, PROT_READ) = 0
mprotect(0x7f2d7563b000, 4096, PROT_READ) = 0
mprotect(0x7f2d75e9d000, 4096, PROT_READ) = 0
munmap(0x7f2d75e4d000, 322132)          = 0
set_tid_address(0x7f2d75e4a9d0)         = 20904
set_robust_list(0x7f2d75e4a9e0, 24)     = 0
rt_sigaction(SIGRTMIN, {0x7f2d75428ba0, [], SA_RESTORER|SA_SIGINFO, 0x7f2d75434290}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f2d75428c30, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f2d75434290}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
brk(0)                                  = 0x122f000
brk(0x1250000)                          = 0x1250000
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2997, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d75e9b000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2997
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2d75e9b000, 4096)            = 0
open("/usr/lib64/locale/en_US/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=366, ...}) = 0
mmap(NULL, 366, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e9b000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=28, ...}) = 0
mmap(NULL, 28, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e9a000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_TELEPHONE", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=64, ...}) = 0
mmap(NULL, 64, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e99000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_ADDRESS", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=160, ...}) = 0
mmap(NULL, 160, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e98000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_NAME", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=82, ...}) = 0
mmap(NULL, 82, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e97000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_PAPER", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
mmap(NULL, 39, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e96000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=30, ...}) = 0
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=62, ...}) = 0
mmap(NULL, 62, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e95000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_MONETARY", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=291, ...}) = 0
mmap(NULL, 291, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e94000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_TIME", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2459, ...}) = 0
mmap(NULL, 2459, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e93000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=59, ...}) = 0
mmap(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e92000
close(3)                                = 0
open("/usr/lib64/locale/en_US/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=237196, ...}) = 0
mmap(NULL, 237196, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2d75e58000
close(3)                                = 0
fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib64/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=56095, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d75e57000
read(3, "# GNU libc iconv configuration.\n"..., 4096) = 4096
read(3, "1002//\tJUS_I.B1.002//\nmodule\tJUS"..., 4096) = 4096
read(3, "ISO-IR-110//\t\tISO-8859-4//\nalias"..., 4096) = 4096
read(3, "\t\tISO-8859-14//\nalias\tISO_8859-1"..., 4096) = 4096
read(3, "IC-ES//\nalias\tEBCDICES//\t\tEBCDIC"..., 4096) = 4096
read(3, "DIC-CP-ES//\t\tIBM284//\nalias\tCSIB"..., 4096) = 4096
read(3, "//\nalias\tCSIBM864//\t\tIBM864//\nal"..., 4096) = 4096
read(3, "BM939//\nmodule\tIBM939//\t\tINTERNA"..., 4096) = 4096
read(3, "EUC-CN//\nalias\tCN-GB//\t\t\tEUC-CN/"..., 4096) = 4096
read(3, "T//\nmodule\tISO-2022-CN-EXT//\tINT"..., 4096) = 4096
read(3, "//\t\tISO_5428//\nalias\tISO_5428:19"..., 4096) = 4096
read(3, "CII-8\t1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tc"..., 4096) = 4096
brk(0x1271000)                          = 0x1271000
read(3, "\tfrom\t\t\tto\t\t\tmodule\t\tcost\nalias\t"..., 4096) = 4096
read(3, "712//\t\tINTERNAL\t\tIBM12712\t\t1\nmod"..., 4096) = 2847
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2d75e57000, 4096)            = 0
futex(0x7f2d75a088e8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/usr/lib64/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\5\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=12472, ...}) = 0
mmap(NULL, 2105432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2d75220000
mprotect(0x7f2d75222000, 2093056, PROT_NONE) = 0
mmap(0x7f2d75421000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7f2d75421000
close(3)                                = 0
mprotect(0x7f2d75421000, 4096, PROT_READ) = 0
ioctl(1, TCGETS, 0x7ffc0525b3f0)        = -1 ENOTTY (Inappropriate ioctl for device)
open("/usr/share/locale/en_US/LC_MESSAGES/grep.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/grep.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
fstat(0, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
ioctl(0, TCGETS, 0x7ffc0525b250)        = -1 ENOTTY (Inappropriate ioctl for device)
read(0, "1:SLACKPKGPLUS_multilib gcc 5.3."..., 32768) = 25869
fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2d75e57000
write(1, "1:SLACKPKGPLUS_multilib gcc 5.3."..., 4096) = 4096
6:SLACKPKGPLUS_multilib gcc-java 5.3.0_multilib x86_64 1alien gcc-java-5.3.0_multilib-x86_64-1alien ./SLACKPKGPLUS_multilib txz
write(1, "mpat32 sqlite-compat32-3.9.2-x86"..., 4096) = 4096
write(1, "x86_64 1compat32 gstreamer-compa"..., 4096) = -1 EPIPE (Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=20904, si_uid=0} ---
write(2, "grep: ", 6grep: )                   = 6
write(2, "write error", 11write error)             = 11
write(2, "\n", 1
)                       = 1
exit_group(2)                           = ?
+++ exited with 2 +++
[edit] but only if running with the latest grep in pipe
[edit2] and only if something break the pipe before output does not finish, for example with head -1
But the output is correct, so technically may be sufficient a 2>/dev/null after second grep (but will not be that the solution)

Last edited by zerouno; 01-02-2016 at 12:54 PM.
 
Old 01-02-2016, 01:31 PM   #379
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161
the problem seems to be the "grep -w '.'"

cat anyfile|grep .|head -1

for 'anyfile' I ve tried a log of file from 5kB to 10kB

seems to fail when first row match

Code:
$ sudo su -
Password: 
# cat /var/lib/slackpkg/pkglist|grep 7|head -1
extra aspell-fi 0.7_0 noarch 4 aspell-fi-0.7_0-noarch-4 ./extra/aspell-word-lists txz
# cat /var/lib/slackpkg/pkglist|grep 0|head -1
extra aspell-af 0.50_0 noarch 4 aspell-af-0.50_0-noarch-4 ./extra/aspell-word-lists txz
grep: write error
cat: write error: Broken pipe

when use 'su -' the grep is closed from SIGPIPE properly
Code:
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9d3629e000
write(1, "extra aspell-af 0.50_0 noarch 4 "..., 4096) = 4096
extra aspell-af 0.50_0 noarch 4 aspell-af-0.50_0-noarch-4 ./extra/aspell-word-lists txz
read(0, "", 28672)                      = 0
write(1, "0.50_0-noarch-4 ./extra/aspell-w"..., 316) = -1 EPIPE (Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=23757, si_uid=0} ---
+++ killed by SIGPIPE +++
#
when use 'sudo su -' SIGPIPE closes the pipe, but grep try to run munmap() system call
Code:
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa7b1e30000
write(1, "extra aspell-af 0.50_0 noarch 4 "..., 4096) = 4096
extra aspell-af 0.50_0 noarch 4 aspell-af-0.50_0-noarch-4 ./extra/aspell-word-lists txz
read(0, "", 28672)                      = 0
write(1, "0.50_0-noarch-4 ./extra/aspell-w"..., 316) = -1 EPIPE (Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=23651, si_uid=0} ---
close(1)                                = 0
munmap(0x7fa7b1e30000, 4096)            = 0
write(2, "grep: ", 6grep: )                   = 6
write(2, "write error", 11write error)             = 11
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, ": Broken pipe", 13: Broken pipe)           = 13
write(2, "\n", 1
)                       = 1
exit_group(2)                           = ?
+++ exited with 2 +++




boh!!!!!
 
Old 01-02-2016, 01:44 PM   #380
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-14.2.1 on Lenovo Thinkpad W520
Posts: 8,712

Rep: Reputation: Disabled
Probably nothing to do with that, but I'd tend to avoid an UUOC. Instead of:
Code:
cat /var/lib/slackpkg/pkglist|grep 7|head -1
I would write
Code:
</var/lib/slackpkg/pkglist grep 7|head -1
At least that's one less pipe
 
Old 01-02-2016, 01:49 PM   #381
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161
Yes, but slackpkg+ have not a cat but a grep. I post cat as a simulation of the real grep
 
Old 01-02-2016, 01:56 PM   #382
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-14.2.1 on Lenovo Thinkpad W520
Posts: 8,712

Rep: Reputation: Disabled
OK but then can't this simulation change the behavior?
 
Old 01-02-2016, 04:24 PM   #383
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161
slackpkg+-1.6.1-noarch-7mt.txz released
 
Old 01-02-2016, 06:19 PM   #384
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161
Quote:
Originally Posted by Didier Spaier View Post
One thing could be to write specs for the "stable" version, voluntarily limited but that could be extended in the "current" or "devel" branch. I am ready to participate in writing down these limited specs with anyone interested.

I never thought a my script (becouse that was slackpkg+sl at start) would become what it is now and that someone would have ever used.
For that reason I add function when I need one (all, included remote and local repositories, are primarily added becouse I did need it).
And I never thought that it could enter into a distribution.


How do you think that I should proceed?

The problem is that the community is not high for testing a development release; if most use the stable/LTS release, no one can test new feature; when I can consider it stable?

There is on github the master and the devel branch.
In past I did make packages "slackpkg+dev-...".
But there was a moment when I was writing a large update; during this time was needed some bugfix on master branch and the devel branch was not ready to test patch to backport on stable tree. Also there was a moment when I had very few time (no time really) to developing slackpkg+. So master and devel tree diverged a lot, until the devel branch was oldest and bugged becouse the not backported patches from master. I reverted development tree aligning it to master.

Currently devel and master diverge for a code restyling, but no function modifications, so to merge I was waiting to solve the 'write error' bug (that was not a real bug; all functionality was not impacted; just a non beautiful error on video).


P.S.: In development tree, on github, I added slint repository.
Note that you have a small bug in HOW-TO:
MIRRORPLUS['slint']=http:/slint.fr/packages/14.1-i486/
should be
MIRRORPLUS['slint']=http://slint.fr/packages/14.1-i486/
 
Old 01-03-2016, 12:03 PM   #385
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-14.2.1 on Lenovo Thinkpad W520
Posts: 8,712

Rep: Reputation: Disabled
Hi Matteo,

Unfortunately I have no experience with respect to git repositories, thus I am not able to give you a valuable advice about the management of your two branches (master/devel) on github.com.

However, from a user's point of view there have been recently a lot of updates in the "official" download location, i.e. sourceforge.net, and that can be slightly worrisome, at least for someone who doesn't follow this thread.

To put it in simple terms I would suggest that you publish on Sourceforge only updates including major bug fixes and propose new features less frequently.

Of course the definition of the "core" scope is only useful if you consider maintaining this tool on the long term with a possible inclusion in distributions. On the other hand if you only want to share a tool to which you continue adding features that you use for yourself my suggestion becomes moot. Only you can decide on that.

I will make sure Slint stays compatible with usage of slackpkg+ and, at least in the next version, also provide an already configured slapt-get, as it is widely used in SlackLand and I wish to make sharing packages among Slackware and derivatives or spin-off as easy as possible.

Thanks for adding the slint repositories in the development tree and for the heads-up about the bug in HOW-TO, now fixed. And of course, thanks for sharing slackpkg+!

Last edited by Didier Spaier; 01-03-2016 at 12:10 PM.
 
Old 01-03-2016, 06:12 PM   #386
bamunds
Member
 
Registered: Sep 2013
Location: Mounds View MN
Distribution: Slackware64-14.2 FVWM
Posts: 592

Rep: Reputation: 173Reputation: 173
I would agree with Didier's suggestion. Only publish the stable version of slackpkg+. Then post on linuxquestions a test version, asking for testers. While I fully appreciate your patches and response to the bugs I found, I would have preferred to known the version was a testing version so I could decide if there was time in my work load to help with some testing. The current version (7mt) certainly seems to be stable as of today. Thank You for all you do to promote and extend Slackware. BrianA_MN
 
Old 01-04-2016, 03:35 PM   #387
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161
@haary: note: your slackware repository https://connochaetos.org/slack-n-fre...lackware-14.1/ does not contains the 'testing' directory (not tested the others).

Code:
Download file..
https://connochaetos.org/slack-n-free/salix/i486/slackware-14.1/testing/MANIFEST.bz2:
2016-01-04 20:48:44 ERROR 404: Not Found.
You can add an empty CHECKSUMS.md5 (with relative CHECKSUMS.md5.asc) and an empty bizziped2 MANIFEST, and in all tree the PACKAGES.TXT should not gzipped.


I'm developing a version that check the GPG-KEY, but allow to use the legacy mode with a configuration in slackpkgplus.conf.

However (it is valid also with current version of slackpkg+) you must find a way to import the official gpg key. If you NEVER do a slackpkg update gpg using the offical mirror you will not import the slackware key, so you will not able to verify slackware signed packages in your replica-repository.



@All
I'm developing slackpkg+ 1.7; I will release that as a -beta, -rc, ... in the devel tree.
After release -stable, I will try to make it an LTS release (*); all new functions will be freezed and developed in a >=1.8 version, and all bugfix will be backported in slackpkg+ 1.7
slackpkg+ 1.6 will be supported for bugfix backporting until slackpkg+ 1.7 will be released; after that it will be declared EOL.

I ask you for more possible testing before releasing it.
Currently the only new planned feature is the strict gpg check.

(*) I will TRY that. Also depends for the time that I will find for developing it.


[EDIT] Someone have never tested slackpkg+ for arm or other architectures or have a way to test it? slackpkg support it, and also some part of slackpkg+ code, but there are parts of code in very doubt. I saw somewhere a slackpkplus.conf customized for arm (but I cannot find it now)

Last edited by zerouno; 01-04-2016 at 03:48 PM.
 
1 members found this post helpful.
Old 01-04-2016, 05:34 PM   #388
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161
This is the first.
slackpkg+-1.7.a1-noarch-1mt.txz

You can find it in
http://slakfinder.org/slackpkg+all/
or setting
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+dev/

You can also download manually
http://slakfinder.org/slackpkg+dev/src/slackpkgplus.sh
or from github
https://github.com/zuno/slackpkgplus...lackpkgplus.sh

to install copy it in /usr/libexec/slackpkg/functions.d and remove zdialogplus.sh from the same directory.

Also you must add in slackpkgplus.sh

STRICTGPG=on

Quote:
Version 1.7.a1 - 04/Jan/2015
It's the time for a stable version of slackpkg+. Currently it is just a
development version to fix older feature and add/test new. I'll need more
test possible to make it bugfree .
- Code reordering; now slackpkg+ is only slackpkgplus.sh
- Added repositories; improved checkrepos.sh
- BugFix: slackpk give 'grep: write error' when running with "sudo su -"
- SecurityFix: Strict GPG Check. Packages MUST to be signed with root-GPG-KEY.
If can disable it via CHECKGPG in slackpkgplus.sh; see README
- New repository for slackpkg+ development version
Thankyou.
 
Old 01-07-2016, 12:46 PM   #389
phenixia2003
Member
 
Registered: May 2006
Location: France
Distribution: Slackware
Posts: 845

Rep: Reputation: 712Reputation: 712Reputation: 712Reputation: 712Reputation: 712Reputation: 712Reputation: 712
Hello,

@ZeroUno

The patch to fix the grep error can causes noticeable slowdowns as you can see below :

1. current slackpkg+
Code:
$ slackpkg -dialog=off upgrade-all

Checking local integrity... DONE
Looking for packages to upgrade. Please wait... 
upgrade-all -> 26 s elapsed

[snip]

Total package(s): 281
2. previous slackpkg+
Code:
$ slackpkg -dialog=off upgrade-all

Checking local integrity... DONE
Looking for packages to upgrade. Please wait... 
upgrade-all -> 23 s elapsed

[snip]

Total package(s): 281
Looking at the code "responsible" to the grep error, I don't see any reason to not simply redirect grep errors to /dev/null :
Code:
PKGINFOS=$(grep -n "^${DIR} " ${TMPDIR}/pkglist | grep -w "${PAT}" | grep -m 1 "^[[:digit:]]\+:${DIR} ${ARGUMENT} ")
                                                  vvvvvvvvvvvvvvvv
                                               grep 2>/dev/null "${PAT}"
furthermore, this code can be optimized this way :
Code:
       if [ ! -e ${TMPDIR}/${REPOSITORY}-pkglist ] ; then
                grep -n "^${DIR} " ${TMPDIR}/pkglist > ${TMPDIR}/${REPOSITORY}-pkglist
        fi

        if [ "${PAT}" = ".*" ] ; then
                PKGINFOS=$(grep -m 1 "^[0-9]\+:${DIR} ${ARGUMENT} " ${TMPDIR}/${REPOSITORY}-pkglist)
        else
                PKGINFOS=$(grep 2>/dev/null -w "${PAT}" ${TMPDIR}/${REPOSITORY}-pkglist | grep -m 1 "^[0-9]\+:${DIR} ${ARGUMENT} ")
        fi
which gives :
Code:
$ slackpkg -dialog=off upgrade-all

Checking local integrity... DONE
Looking for packages to upgrade. Please wait... 
upgrade-all -> 21 s elapsed

[snip]

Total package(s): 281
--
SeB
 
Old 01-08-2016, 06:29 PM   #390
zerouno
Member
 
Registered: Oct 2009
Location: Italy
Distribution: Slackware
Posts: 565

Rep: Reputation: 161Reputation: 161
Quote:
Originally Posted by phenixia2003 View Post
The patch to fix the grep error can causes noticeable slowdowns as you can see below :
I know that TEORICALLY that fix can introduce lag becouse it write a file MANY MANY times (50KB every time on my pc; pkglist is 150KB), but I don't see any difference

1.6.1-6mt
Code:
# time echo n|slackpkg -dialog=off upgrade-all 2>&1|grep -v t.z


NOTICE: pkglist is older than 24h; you are encouraged to re-run 'slackpkg update'

Checking local integrity... DONE
Looking for packages to upgrade. Please wait... DONE

[ Repository               ] [ Package                                  ]

Total package(s): 708

Do you wish to upgrade selected packages (Y/n)? 

real    0m26.871s
user    0m5.599s
sys     0m6.971s

1.6.1-7mt
Code:
# time echo n|slackpkg -dialog=off upgrade-all 2>&1|grep -v t.z


NOTICE: pkglist is older than 24h; you are encouraged to re-run 'slackpkg update'

Checking local integrity... DONE
Looking for packages to upgrade. Please wait... DONE

[ Repository               ] [ Package                                  ]

Total package(s): 708

Do you wish to upgrade selected packages (Y/n)? 

real    0m26.813s
user    0m5.747s
sys     0m7.444s

also I tried mounting /tmp as tmpfs
mount -t tmpfs tmpfs /tmp
but I continue to no see differences


Quote:
I don't see any reason to not simply redirect grep errors to /dev/null :
Yes, it is most elegant

Quote:
furthermore, this code can be optimized this way :
With this code I obtain
Code:
real    0m24.837s
user    0m4.545s
sys     0m6.100s
(2 seconds less), but I not obtain the same result:
Total package(s): 707 instead 708.
Code:
# slackpkg -dialog=off upgrade-all >2    (new code)
# slackpkg -dialog=off upgrade-all >1    (-7mt)

root@homepc:~# diff 1 2
6c6
< Looking for packages to upgrade. Please wait... DONE
---
> Looking for packages to upgrade. Please wait... DONE
53c53
<   slackware                    bridge-utils-1.4-i486-1.txz               
---
>                                bridge-utils-1.4-i486-1.txz               
409c409
<   patches                      openssl-1.0.1q-i486-1_slack14.1.txz       
---
>   slackware                    openssl-1.0.1e-i486-1.txz                 
429d428
<   slackware                    pinentry-0.8.3-i486-1.txz                 
718c717
< Total package(s): 708
---
> Total package(s): 707
 
  


Reply

Tags
slackpkg


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Holding a package update from slackpkg gazj Slackware 2 01-25-2011 05:58 PM
Where can I find a 3rd Party Repository for RHEL 5? tightlikethat Linux - Newbie 3 02-27-2010 09:46 PM
Best 3rd Party RPM Repository for FC9 kromberg Fedora 11 11-13-2008 09:04 PM
Package Kit Error-- "Cannot retrieve repository metadata (repomd.xml) for repository" mbvpixies78 Linux - Newbie 11 08-22-2008 08:20 PM
3rd party package managers? crontab Slackware 3 10-06-2007 11:34 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 03:09 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration