Jenkins & Confluence : Pour l’instant cela ne fonctionne pas

29 x served & 3 x viewed

Ce qui est dommage c’est que le plugin n’indique pas quel est l’erreur … il y a seulement une exception sur un pointeur NULL. ( https://wiki.jenkins.io/display/JENKINS/Confluence+Publisher+Plugin )

ERROR: Build step failed with exception
java.lang.NullPointerException
       at rocks.inspectit.releaseplugin.releasenotes.ConfluenceReleaseNotesPublisher.perform(ConfluenceReleaseNotesPublisher.java:99)
       at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
       at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
       at hudson.model.Build$BuildExecution.build(Build.java:206)
       at hudson.model.Build$BuildExecution.doRun(Build.java:163)
       at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
       at hudson.model.Run.execute(Run.java:1818)
       at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
       at hudson.model.ResourceController.execute(ResourceController.java:97)
       at hudson.model.Executor.run(Executor.java:429)
Build step 'Publish Release Notes on Confluence' marked build as failure

Misère.

Jenkins & Docker : /usr/bin/cat: cannot execute binary file

25 x served & 7 x viewed

J’ai donc eu l’erreur : « /usr/bin/cat: cannot execute binary file » , pour voir l’erreur j’ai demandé les logs sur le container lancé par Jenkins.

$ docker logs f5e6fcc16971b888f8609f6436e18fbb8e313114878a15b916eeedd6b780f979
/usr/bin/cat: /usr/bin/cat: cannot execute binary file

Ensuite j’ai essayé de comprendre le problème dans ma pipeline ….

A la base j’avais :

pipeline {
   agent {
       docker {
           image 'my_image'
           args ' --name jenkins_my_image -u root --privileged=true -v /home/BUILD:/root/BUILD'
       }
   }
   ....

Et il fallait mettre :

pipeline {
   agent {
       docker {
           image 'my_image'
           args '--entrypoint="" --name jenkins_my_image -u root --privileged=true -v /home/BUILD:/root/BUILD'
       }
   }
   ....

Sachant que cela ne fonctionnait pas avec :

pipeline {
   agent {
       docker {
           image 'my_image'
           args '--entrypoint="/sbin/bash" --name jenkins_my_image -u root --privileged=true -v /home/BUILD:/root/BUILD'
       }
   }
   ....

Suivant les OS des containers le problème n’est pas visible, le problème est visible avec des anciens OS.

A suivre.

Mac : Adobe download vers fpdownload.macromedia.com

21 x served & 4 x viewed

Bizarre …  com.adobe.fpsaud qui pointe vers fpdownload.macromedia.cm .

Si je regarde plus en détail dans /System/Library/LaunchDaemons/ je n’ai aucun com.adobe.fpsaud . Mais si je regarde dans /Library/LaunchDaemons/ :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.adobe.fpsaud</string>
	<key>ProgramArguments</key>
	<array>
		<string>/Library/Application Support/Adobe/Flash Player Install Manager/fpsaud</string>
	</array>
	<key>StartInterval</key>
	<integer>3600</integer>
	<key>KeepAlive</key>
	<false/>
</dict>
</plist>

On a les ip qui sont en dur dans le programme … misère.

$ hexdump -C /Library/Application\ Support/Adobe/Flash\ Player\ Install\ Manager/fpsaud | grep "download"
0017b030  64 6f 77 6e 6c 6f 61 64  2e 6d 61 63 72 6f 6d 65  |download.macrome|
0017b3e0  20 64 6f 77 6e 6c 6f 61  64 65 72 20 64 6f 65 73  | downloader does|
0017b480  73 20 64 6f 77 6e 6c 6f  61 64 65 64 20 64 61 74  |s downloaded dat|
0017bad0  2f 2f 66 70 64 6f 77 6e  6c 6f 61 64 32 2e 6d 61  |//fpdownload2.ma|
0017bf30  65 20 6f 6e 20 64 6f 77  6e 6c 6f 61 64 65 64 20  |e on downloaded |
00187ef0  00 64 6f 77 6e 6c 6f 61  64 44 69 64 46 61 69 6c  |.downloadDidFail|
00187f00  00 64 6f 77 6e 6c 6f 61  64 44 69 64 50 72 6f 67  |.downloadDidProg|
00187fa0  64 6f 77 6e 6c 6f 61 64  65 64 44 61 74 61 00 67  |downloadedData.g|
00188030  3a 00 6d 5f 64 6f 77 6e  6c 6f 61 64 50 61 74 68  |:.m_downloadPath|
00188040  00 6d 5f 64 6f 77 6e 6c  6f 61 64 46 69 6c 65 48  |.m_downloadFileH|
00188960  64 6f 77 6e 6c 6f 61 64  65 72 00 6d 5f 64 6d 67  |downloader.m_dmg|
002597d0  69 74 68 55 52 4c 3a 64  6f 77 6e 6c 6f 61 64 50  |ithURL:downloadP|
00259a10  6d 5f 64 6f 77 6e 6c 6f  61 64 50 61 74 68 00 5f  |m_downloadPath._|
00259a70  6d 5f 64 6f 77 6e 6c 6f  61 64 46 69 6c 65 48 61  |m_downloadFileHa|
0025af50  74 61 6c 6c 65 72 20 64  6f 77 6e 6c 6f 61 64 50  |taller downloadP|
0025afc0  65 72 2e 6d 5f 64 6f 77  6e 6c 6f 61 64 65 72 00  |er.m_downloader.|
0025d3f0  6e 6c 6f 61 64 20 64 6f  77 6e 6c 6f 61 64 65 64  |nload downloaded|
00264ee0  5f 64 6f 77 6e 6c 6f 61  64 44 61 74 61 52 65 63  |_downloadDataRec|
00264ff0  64 2e 6d 5f 64 6f 77 6e  6c 6f 61 64 53 74 61 74  |d.m_downloadStat|
002654e0  65 72 2e 6d 5f 64 6f 77  6e 6c 6f 61 64 65 72 00  |er.m_downloader.|

Rock64 : Les premiers pas …

133 x served & 21 x viewed

Pour faire suite à mon post : http://www.cyber-neurones.org/2019/03/rock64-2-capteurs-de-debits-deau-debitmetre/ . A noter qu’il faut consommer plus de 0.075 L/s ou 4,5 L/min pour avoir une mesure fiable. Mon but est de mesure un outil qui fait dans les 50 L/min ….

Etapes n°1 : Choisir une version d’OS : http://wiki.pine64.org/index.php/ROCK64_Software_Release

Mon choix : stretch-minimal-rock64-0.7.8-1061-arm64.img.xz

  • Login avec
    • username: rock64
    • password: rock64

Etape n°2 : Décompresser :

unxz stretch-minimal-rock64-0.7.8-1061-arm64.img.xz

du -h stretch-minimal-rock64-0.7.8-1061-arm64.img 
1,8G	stretch-minimal-rock64-0.7.8-1061-arm64.img

Etape n°3 : Mettre sur la SDCard avec ApplePi.

Etape n°4 : Boot et ssh :

Etape n°5 : Mise à jours :

rock64@rock64:~$ sudo apt-get update

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for rock64: 
...

rock64@rock64:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  linux-rock64-package u-boot-rockchip-rock64
The following NEW packages will be installed:
  board-package-rock64-0.7-30 linux-headers-4.4.132-1075-rockchip-ayufan-ga83beded8524
  linux-image-4.4.132-1075-rockchip-ayufan-ga83beded8524 u-boot-rockchip-rock64-2017.09-rockchip-ayufan-1025-g482cd6ec8b
The following packages will be upgraded:
  apt apt-transport-https apt-utils base-files curl dirmngr firmware-brcm80211 firmware-realtek git git-man gnupg gnupg-agent gpgv
  libapt-inst2.0 libapt-pkg5.0 libc-bin libc-dev-bin libc-l10n libc6 libc6-dev libcurl3 libcurl3-gnutls libgnutls30 libnm0
  libpam-systemd libperl5.24 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libpython3.5-minimal
  libpython3.5-stdlib libseccomp2 libssl1.0.2 libssl1.1 libsystemd0 libudev1 libxapian30 linux-libc-dev linux-rock64 locales
  multiarch-support network-manager openssh-client openssh-server openssh-sftp-server openssl perl perl-base perl-modules-5.24
  policykit-1 python3.5 python3.5-minimal ssh systemd systemd-sysv tzdata udev wpasupplicant
58 upgraded, 4 newly installed, 2 to remove and 0 not upgraded.
Need to get 76.5 MB of archives.
After this operation, 141 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y

Etape n°6 : Installation pour Python

rock64@rock64:~$ sudo apt-get install python-dev python3-dev
Reading package lists... Done
Building dependency tree       
...
rock64@rock64:~$ sudo apt-get install mercurial
Reading package lists... Done
Building dependency tree       
...

Aie, perl n’est pas contant :

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "fr_FR.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Selecting previously unselected package libjs-excanvas.
(Reading database ... 66469 files and directories currently installed.)
Preparing to unpack .../libjs-excanvas_0.r3-4_all.deb ...
Unpacking libjs-excanvas (0.r3-4) ...
Selecting previously unselected package mercurial-common.
Preparing to unpack .../mercurial-common_4.0-1+deb9u1_all.deb ...
Unpacking mercurial-common (4.0-1+deb9u1) ...
Selecting previously unselected package mercurial.
Preparing to unpack .../mercurial_4.0-1+deb9u1_arm64.deb ...
Unpacking mercurial (4.0-1+deb9u1) ...
Setting up libjs-excanvas (0.r3-4) ...
Setting up mercurial-common (4.0-1+deb9u1) ...
Setting up mercurial (4.0-1+deb9u1) ...
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Creating config file /etc/mercurial/hgrc.d/hgext.rc with new version

On continue :

rock64@rock64:~$ sudo apt-get install python-pip python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  python-pip-whl
Recommended packages:
  python-all-dev python-setuptools python-wheel python3-setuptools python3-wheel
The following NEW packages will be installed:
  python-pip python-pip-whl python3-pip
...

Maintenant la gestion GPIO :

rock64@rock64:~$ pip install R64.GPIO
Collecting R64.GPIO
  Could not find a version that satisfies the requirement R64.GPIO (from versions: )
No matching distribution found for R64.GPIO

Aie …

rock64@rock64:~$ sudo apt-get install git
...
rock64@rock64:~$ git clone https://github.com/Leapo/Rock64-R64.GPIO.git
Cloning into 'Rock64-R64.GPIO'...
remote: Enumerating objects: 254, done.
remote: Total 254 (delta 0), reused 0 (delta 0), pack-reused 254
Receiving objects: 100% (254/254), 79.38 KiB | 0 bytes/s, done.
Resolving deltas: 100% (125/125), done.
...
rock64@rock64:~$ sudo apt-get install python-setuptools           
Reading package lists... Done
Building dependency tree       
Reading state information... Done
...
rock64@rock64:~$ pip install spidev
Collecting spidev
  Downloading https://files.pythonhosted.org/packages/fb/14/4c2e1640f0cb04862c76d9d76ed7c945b0f67876e503ac02f7f675fe86a0/spidev-3.4.tar.gz
Building wheels for collected packages: spidev
  Running setup.py bdist_wheel for spidev ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-f9zDi7/spidev/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmp2UN7bFpip-wheel- --python-tag cp27:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help
  
  error: invalid command 'bdist_wheel'
  
  ----------------------------------------
  Failed building wheel for spidev
  Running setup.py clean for spidev
Failed to build spidev
Installing collected packages: spidev
  Running setup.py install for spidev ... done
Successfully installed spidev-3.4
...
rock64@rock64:~$ ln -s Rock64-R64.GPIO/R64/ .
...

Les GPIO que je vais utiliser : n°12 et n°16

La photo :

smacap_Bright

Le premier programme de test en Python :

rock64@rock64:~/Rock64-R64.GPIO$ cat R64-GPIO-test.py 
#!/usr/bin/env python

# Allison Creely, 2018, LGPLv3 License
# Rock 64 GPIO Library for Python

import R64.GPIO as GPIO
from time import sleep

print("Testing R64.GPIO Module...")

# Test Variables
print("")
print("Module Variables:")
print("Name           Value")
print("----           -----")
print("GPIO.ROCK      " + str(GPIO.ROCK))
print("GPIO.BOARD     " + str(GPIO.BOARD))
print("GPIO.BCM       " + str(GPIO.BCM))
print("GPIO.OUT       " + str(GPIO.OUT))
print("GPIO.IN        " + str(GPIO.IN))
print("GPIO.HIGH      " + str(GPIO.HIGH))
print("GPIO.LOW       " + str(GPIO.LOW))
print("GPIO.PUD_UP    " + str(GPIO.PUD_UP))
print("GPIO.PUD_DOWN  " + str(GPIO.PUD_DOWN))
print("GPIO.VERSION   " + str(GPIO.VERSION))
print("GPIO.RPI_INFO  " + str(GPIO.RPI_INFO))
# Set Variables
var_gpio_in = 12
var_gpio_in2 = 16
# GPIO Setup
GPIO.setwarnings(True)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(var_gpio_in, GPIO.IN, pull_up_down=GPIO.PUD_UP)  # Set up GPIO as an input, pullup enabled
GPIO.setup(var_gpio_in2, GPIO.IN, pull_up_down=GPIO.PUD_UP)  # Set up GPIO as an input, pullup enabled
print("Testing GPIO Input:")
# Test Input
var_gpio_state = GPIO.input(var_gpio_in)                    # Return state of GPIO
print("Input State  : " + str(var_gpio_state))              # Print results
sleep(20)
# Test interrupt
print("")
print("Waiting 3 seconds for interrupt...")
var_interrupt = GPIO.wait_for_edge(var_gpio_in, GPIO.FALLING, timeout=3000)
if var_interrupt is None:
    print("Timeout!")
else:
    print("Detected!")
print("Testing GPIO Input:")
# Test Input
var_gpio_state2 = GPIO.input(var_gpio_in2)                    # Return state of GPIO
print("Input State  : " + str(var_gpio_state2))              # Print results
sleep(20)
# Test interrupt
print("")
print("Waiting 3 seconds for interrupt...")
var_interrupt2 = GPIO.wait_for_edge(var_gpio_in2, GPIO.FALLING, timeout=3000)
if var_interrupt2 is None:
    print("Timeout!")
else:
    print("Detected!")
GPIO.cleanup([var_gpio_in, var_gpio_in2])                   # Perform cleanup on specified GPIOs
print("")
print("Test Complete")

résultat :

rock64@rock64:~/Rock64-R64.GPIO$ python R64-GPIO-test.py 
Testing R64.GPIO Module...

Module Variables:
Name           Value
----           -----
GPIO.ROCK      ROCK
GPIO.BOARD     BOARD
GPIO.BCM       BCM
GPIO.OUT       out
GPIO.IN        in
GPIO.HIGH      1
GPIO.LOW       0
GPIO.PUD_UP    0
GPIO.PUD_DOWN  1
GPIO.VERSION   0.6.3
GPIO.RPI_INFO  {'P1_REVISION': 3, 'RAM': '1024M', 'REVISION': 'a22082', 'TYPE': 'Pi 3 Model B', 'PROCESSOR': 'BCM2837', 'MANUFACTURER': 'Embest'}
Error: Unable to export GPIO
Error: Unable to set GPIO direction
Error: Unable to export GPIO
Error: Unable to set GPIO direction
Testing GPIO Input:
You must setup() the GPIO channel (BOARD 12) first
Input State  : None

Waiting 3 seconds for interrupt...
You must setup() the GPIO channel (BOARD 12) as an input first
Timeout!
Testing GPIO Input:
You must setup() the GPIO channel (BOARD 16) first
Input State  : None

Waiting 3 seconds for interrupt...
You must setup() the GPIO channel (BOARD 16) as an input first
Timeout!

Test Complete

Oups il faut le faire en root, et je suis passer à 10 sec. pour l’interruption :

rock64@rock64:~/Rock64-R64.GPIO$ sudo python R64-GPIO-test.py 
Testing R64.GPIO Module...

Module Variables:
Name           Value
----           -----
GPIO.ROCK      ROCK
GPIO.BOARD     BOARD
GPIO.BCM       BCM
GPIO.OUT       out
GPIO.IN        in
GPIO.HIGH      1
GPIO.LOW       0
GPIO.PUD_UP    0
GPIO.PUD_DOWN  1
GPIO.VERSION   0.6.3
GPIO.RPI_INFO  {'P1_REVISION': 3, 'RAM': '1024M', 'REVISION': 'a22082', 'TYPE': 'Pi 3 Model B', 'PROCESSOR': 'BCM2837', 'MANUFACTURER': 'Embest'}
Testing GPIO Input:
Input State  : 0

Waiting 10 seconds for interrupt...
Detected!
Testing GPIO Input:
Input State  : 1

Waiting 10 seconds for interrupt...
Detected!

Test Complete

Donc quand je souffle, je détecte l’interruption.

La première étape est donc faite.

A noter cette documentation : https://github.com/Leapo/Rock64-R64.GPIO/wiki/GPIO-Modes , ils ne sont pas tous fonctionnel :

Et a noter aussi que la fonction suivante n’est pas disponible : Error: GPIO.add_event_detect() Not implemented.

Ce qui complique le programme ….

MeWe : Une alternative à Google+ ?

130 x served & 29 x viewed

MeWe : https://mewe.com/ , semble être une bonne alternative à Google+ . Pour l’instant tout n’est pas traduit mais c’est prometteur. A noter aussi qu’il est possible de faire un import de Google+ vers MeWe. Et sur MeWe il y a 8 Go de gratuit, ensuite il faut payer :

J’espère pouvoir voir un prix à 2 Euros/mois pour 20 Go. Il est aussi possible de récupérer son contenu :

Pour la migration sur Google+ c’est sur JVC : 50% français / 50% anglais :

Pour la confidentialité je propose les réglages suivants :

A suivre.

Quelques articles sur MeWe :

MeWe, le réseau social en faveur de la protection de la vie privée, compte aujourd’hui plus de 4 millions de membres, ce qui en fait le premier réseau social de cette nouvelle génération de réseaux sociaux. Le réseau social « NO BS » (pour No Bullshits), c’est-à-dire pas de baratin, attire de nombreux membres de Facebook, Twitter et d’autres sites confrontés à la censure et aux atteintes à la vie privée, selon son fondateur.

La page de MeWe dans le Google Play Store semble être une démonstration symbolique que ses utilisateurs n’approuvent pas le manque de Facebook d’intimité de données