Fedora People

Benutzerwechsel unter Xfce aktivieren

Posted by Fedora-Blog.de on November 24, 2016 08:39 PM
Bitte beachtet auch die Anmerkungen zu den HowTos!

Wer Xfce mit einem anderen Displaymanager als gdm nutzt, bei dem ist standardmäßig die Funktion zum Wechseln des Benutzers deaktiviert.

Um diese Funktion im whiskermenu Plugin zu reaktivieren, muss in den Plugin-Einstellungen im Register „Befehle“ als Befehl für „Benutzer wechseln“

dm-tool switch-to-greeter

eingetragen werden.

Wer hingegen die standardmäßig vorhandenen Aktionsknöpfe nutzt, muss ein wenig mehr Hand anlegen, da hier nach einer Komponente des gdm gesucht wird, die man den Aktionsknöpfen vortäuschen muss, damit die Funktion auch hier aktiviert wird.

Dazu muss zuerst die Datei gdmflexiserver erzeugt werden

su -c'nano /usr/local/bin/gdmflexiserver'

Diese wird anschließend mit folgendem Inhalt gefüllt

#!/bin/sh
/usr/bin/dm-tool switch-to-greeter

Zum Schluss muss die Datei noch mittels

su -c'chmod +x /usr/local/bin/gdmflexiserver'

ausführbar gemacht werden. (Quelle)

Fedora 25 is out, virt-builder images available

Posted by Richard W.M. Jones on November 24, 2016 12:17 PM
$ virt-builder -l | grep fedora-25
fedora-25                x86_64     Fedora® 25 Server
fedora-25                i686       Fedora® 25 Server (i686)
fedora-25                aarch64    Fedora® 25 Server (aarch64)
fedora-25                armv7l     Fedora® 25 Server (armv7l)
fedora-25                ppc64      Fedora® 25 Server (ppc64)
fedora-25                ppc64le    Fedora® 25 Server (ppc64le)
$ virt-builder fedora-25
$ qemu-system-x86_64 -machine accel=kvm:tcg \
      -cpu host -m 2048 \
      -drive file=fedora-25.img,format=raw,if=virtio

Or to try out Fedora on a different architecture:

$ virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img
$ qemu-system-ppc64 -cpu POWER8 -m 2048 \
      -drive file=fedora-25-ppc64le.img,format=raw,if=virtio

virt-builder RISC-V edition

Posted by Richard W.M. Jones on November 24, 2016 12:15 PM
$ file builder/virt-builder
builder/virt-builder: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), dynamically linked, interpreter /lib/ld.so.1, for 
GNU/Linux 2.6.32, BuildID[sha1]=184c9522f22abc5c325ac5a1ee2d272b225d5503, not stripped

Probably the least useful copy of virt-builder since there’s no qemu and no network. However it does demonstrate that we can now build large mixed C / OCaml binaries on RISC-V successfully.


How to create heat maps to show who’s trying to connect your router

Posted by Peter Czanik on November 24, 2016 11:44 AM

Last week after publishing my Elasticsearch 5 blog, I finally had a little time to take a look at the logs coming from my Turris Omnia router. It is running in a quiet neighborhood of Budapest, but looking at my logs it shows that I’m living in a busy part of the Internet. After checking a few IP addresses from rejected incoming connections, I decided to display them on a map instead of checking them one by one. Here’s the visualization for a few hours’ worth of logs:

dashboard2

Read on if you want to learn how to visualize your log data using such a heat map.

Log source

My log source was iptables running on my ARM Linux router. It is logging all incoming connections. Normally, there shouldn’t be anybody trying to connect to my router, but in practice it happens all the time, even from countries I have never heard of before. They are mostly trying to connect to telnet, ssh, http/https ports, sometimes some other protocols. If you don’t have iptables, other firewalls might also provide you with useful logs. To be able to use my configuration or to adopt it, the firewall needs to log using key=value pairs.

As my router is too small to run Elasticsearch, all of the logs are forwarded from the device over a TCP syslog connection to a virtual machine running the ESK stack (Elasticsearch + syslog-ng + Kibana).

Software

My test environment included syslog-ng 3.8.1 and Elasticsearch / Kibana 5.0 running on RHEL 7.3. This setup is described in detail in my syslog-ng and Elasticsearch 5 getting started guide. Version 3.7 of syslog-ng also includes support for the key=value parser and Elasticsearch 1.X, but mapping support in Kibana needs at least Elasticsearch 2.X, so you really need to use syslog-ng 3.8 for this project. If you are still unsure wether you want to install syslog-ng 3.8, there are a few more interesting features making the upgrade worthwhile, including disk-based buffering.

Configuration

Here are the steps to complete to create your heat map:

1. Before configuring syslog-ng, you should prepare Elasticsearch for handling geo-location data properly. It is called mapping. Be careful because once you use a property, you cannot change its type. The related configuration is copied here from the syslog-ng documentation:

{
   "mappings" : {
      "_default_" : {
         "properties" : {
            "geoip" : {
               "properties" : {
                  "country_code" : {
                     "index" : "not_analyzed",
                     "type" : "string",
                     "doc_values" : true
                  },
                  "latitude" : {
                     "index" : "not_analyzed",
                     "type" : "string",
                     "doc_values" : true
                  },
                  "longitude" : {
                     "type" : "string",
                     "doc_values" : true,
                     "index" : "not_analyzed"
                  },
                  "location" : {
                     "type" : "geo_point"
                  }
               }
            }
         }
      }
   }
}

2. Next, we configure syslog-ng. As a first step, we run the logs through the key=value parser. This creates a new value-pair for each key=value of the iptables logs. The name of these start with “kv.”, so the source IP address of the incoming connection is stored under the “kv.SRC” name.

parser p_kv {kv-parser(prefix("kv.")); };

3. The next parser turns the IP addresses stored in “kv.SRC” into geo-location data. It uses the GeoIP parser for that, and if you are interested in longitude / latitude information instead of just a country name, you should download the “GeoLiteCity” database and locate that in your configuration.

parser p_geoip { geoip( "${kv.SRC}", prefix( "geoip." ) database( "/usr/share/GeoIP/GeoLiteCity.dat" ) ); };

4. The following rewrite transforms the location data into a format used by Elasticsearch and makes sure that no empty value is forwarded.

rewrite r_geoip {
  set(
    "${geoip.latitude},${geoip.longitude}",
    value( "geoip.location" ),
    condition(not "${geoip.latitude}" == "")
  );
};

5. Here comes the log path, which connects all of the above building blocks together. In my case, logs are coming from a TCP source. Next, the logs are parsed and rewritten. Finally, they are sent off to Elasticsearch.

log {
  source(s_tcp);
  parser(p_kv);
  parser(p_geoip);
  rewrite(r_geoip);
  destination(d_elastic);
};

6. Once you are done configuring syslog-ng, reload it, so the configuration takes effect.

7. You can now go back to Elasticsearch and Kibana and start creating dashboards. If you are not yet familiar with Kibana, I recommend doing a short tutorial before starting to analyze your logs.

By default, the world map shows “scaled circle markers” under the Options menu. Change it to “heat map”. You should also change the “minimum opacity” setting to a higher value, otherwise some of the interesting locations are barely visible on the map.

Are you stuck?

If you have questions or comments related to syslog-ng, do not hesitate to contact us. You can reach us by email or you can even chat with us. For a long list of possibilities, check our contact page at https://syslog-ng.org/contact-us/. On Twitter I am available as @PCzanik.

JSON Home Tests and Keystone API changes

Posted by Adam Young on November 24, 2016 03:31 AM

If you change the public signature of an API, or add a new API in Keystone, there is a good chance the Tests that confirm JSON home layout will break.  And that test is fairly unfriendly:  It compares a JSON doc with another JSON doc, and spews out the entirety of both JSON docs, without telling you which section breaks.  Here is how I deal with it:

First, run the test in a manner that you can do some qyerying. I did this:

 

tox -e py27 -- keystone.tests.unit.test_versions.VersionTestCase.test_json_home_v3 2>&1 | less

That lets me search through the output dynamically.  It runs only the one test.

 

Here is the change I made to the keystone/assignment/routers.py file:

 
routers.append(
    router.Router(controllers.AccessV3(),
    'url_patterns',
    'url_pattern',
    resource_descriptions=self.v3_resources))

If I run the test and search through the output for the value url_pattern I see that this section is new:

 u'http://docs.openstack.org/api/openstack-identity/3/rel/url_pattern': {u'href-template': u'/url_patterns/{url_pattern_id}',
 u'href-vars': {u'url_pattern_id': u'http://docs.openstack.org/api/openstack-identity/3/param/url_pattern_id'}},
 u'http://docs.openstack.org/api/openstack-identity/3/rel/url_patterns': {u'href': u'/url_patterns'},

Sorry for the formatting:  it is really long lines in the output.

To start, I modify the test_versions.py file to add something that I think will be comparable:

 json_home.build_v3_resource_relation('url_pattern'): {
 'href-template': '/url_pattern/{url_pattern_id}',
 'href-vars': {
 'url_pattern_id': json_home.Parameters.URL_PATTERN_ID},

Rerunning the test, I now see that it matches earlier:  this is in the expected output:

 'http://docs.openstack.org/api/openstack-identity/3/rel/url_pattern': {'hints': {'status': 'experimental'},
 'href-template': '/url_patterns/{url_pattern_id}',
 'href-vars': {'url_pattern_id': 'http://docs.openstack.org/api/openstack-identity/3/param/pattern_id'}},

Which looks good, but I need the second line, with url_patterns.  So I add:

 json_home.build_v3_resource_relation('url_patterns'): {
 'href': '/url_patterns'},

Note that it is href, and not href-template.

 

 

Conferencia: HackLab Almería, un modelo de dinamización tecnológica hiperlocal

Posted by Ismael Olea on November 23, 2016 11:00 PM

El 24 de noviembre he sido invitado a charlar para hablar de la experiencia de HackLab Almería en un evento en Antequera organizado por IBM. He aprovechado para seguir trabajando en el material retrospectiva del HackLab Almería que preparé para el GDG Spain Summit y lo he adaptado a formato de transparencias con mi agradecido Slidy.

Las transparencias están disponibles en https://olea.org/conferencias/doc-conf-20161124-Encuentro-IBM/

captura de pantalla de las transpas

Además voy a tener la oportunidad de volver a impartir la conferencia en un par más de ocasiones así que creo que refinaré más aún este material, que también me sirve para profundizar la retrospectiva de los dos años largos que he dedicado a «la movida HackLab Almería».

Gracias a Haroldo Díaz Armas por la invitación, a Elisa Martín Garijo por sugerir mi persona y a Javier Bentabol por su entusiasmo con nosotros.

FUDCon Phnom Penh 2016 – day 0

Posted by Robert Mayr on November 23, 2016 08:59 PM

After a long trip through Venice, Dubai and Saigon I finally arrived to Phnom Penh and the first thought I had was: wow, so hot and humid, that will be fun! At the exit of the airport a Tuk Tuk driver was waiting for me with a nice Fedora banner. He took my luggage and ten seconds later were in the middle of Phnom Penh’s rush hour. I think there is not really a word for it, you need to see the traffic with your eyes to understand that. Although I’m italian and I was several times to Naples and other cities of South Italy, it is nothing compared to Phnom Penh.

We reached the hotel where Sirko was already waiting, and after a bit also Bryan showed up and we decided to take a shower and go to a Khmer ‘all you can eat’ barbecue. So we took another Tuk Tuk and started a discussion about Fedora world, ideas, plans, etc. It was a very nice and useful discussion, and we did it on a cool Tuk Tuk. The barbecue was really awesome, Sirko showed us how to cook and we had a great evening.

IMG_20161103_191829 IMG_20161103_191842

The next day was still partially free, so we decided to do some sightseeing with Ryan, Alex and Noriko. We went to the Royal Palace, got some food and then got separate directions. I decided to change my “Public Transport” and took a Mototaxi to the Russian Market. It’s cheaper and faster, and from that moment I always chose Mototaxis.

IMG_20161104_134049

The Russian Market is great, something like the Zoo Market in Beijing, but instead of having it in a building it’s located on a square. I got some souvenirs for my kids and then got back to the Hotel. We had some more beers and then went to sleep.

IMG_20161104_085913

SQL Server in a Fedora Docker Container

Posted by Fedora Magazine on November 23, 2016 06:04 PM

You might have seen the Magazine’s previous article on running SQL Server v.Next on Fedora.  That post talks about how to install it directly in to your Fedora installation. However, containers are an incredibly popular way to deploy apps especially if you just want to try it out.  Read on for how to run the SQL Server public preview in a Docker container on Fedora.

Docker

First you need to get docker installed. In short, run these commands:

sudo dnf install docker
sudo systemctl start docker

By default, you’ll need to run docker as root or with sudo, but you can change that if desired. Check out the Fedora Developer page on docker for more details and more elaborate setups. You may also be interested in other things you can do with docker and Fedora based on one of my past posts.

Setting up SQL Server

To pull the Docker image with SQL Server, run this command:

docker pull langdon/fedora-mssqlserver

You will see it download all the layers. The process goes faster if you’ve pulled a Fedora docker image in the past. To run it, use this command (copy and paste makes this easier):

docker run -d -t -p 1433:1433 -v $DATADIR:/var/opt/mssql/data:rw,z -v $LOGDIR:/var/opt/mssql/log:rw,z -e ACCEPT_EULA=$ACCEPT_EULA -e SA_PASSWORD=$SA_PASSWORD langdon/fedora-mssqlserver

To explain this long command a bit:

  • -p 1433:1433 — This is the port exposed from the container to connect to SQL Server. This command binds 1433 on your machine to the container port. You can also use an arbitrary port by just using -P if you’re using 1433 for something else.
  • $DATADIR — Either replace this with a local directory, or set an environment variable for where SQL Server should store its data.
  • $LOGDIR — Just like $DATADIR except for logs.
  • $ACCEPT_EULA — You need to accept the Microsoft license agreement to use this software.
  • $SA_PASSWORD — The default admin user in SQL Server is SA and this is where you set its password. Probably better to replace this than set an environment variable.

Technically speaking, you don’t need to pull the image first. I believe it makes the explanation simpler. I also have a handy script you can run to make this easier, but you still have to provide the password.

Check to ensure your container is running:

docker ps

There should be an entry similar to this:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
381a922c2a3e langdon/fedora-mssqlserver "/start.sh" 3 seconds ago Up 2 seconds 0.0.0.0:1433->1433/tcp angry_jepsen

Connecting to SQL Server

Finally, you can connect to the container. To get the tools, run these commands:

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
dnf install -y --allowerasing mssql-tools

Note that –allowerasing may be needed depending on your package set. The mssql-tools package requires a different version of unixODBC than is shipped in Fedora.

Now you have a sqlcmd utility you can use to connect like this:

sqlcmd -U sa -P $SA_PASSWORD

For $SA_PASSWORD use the password you provided when you started the container running. Finally, to prove SQL Server is up and working, use these commands:

1> SELECT Name from sys.Databases;
 

 


2> GO

You’ll see the default tables. You can read more in this Getting Started from Microsoft.

More information

If you’re looking for more information on SQL Server on Linux, refer to the official website.  If you’re interested in other ways to use Docker, there are several interesting docker posts in Fedora Magazine. I also have this all in a Github repo, including a Vagrantfile to try this process in a controlled environment. Please check it out and submit a pull request if you find any problem.


Image courtesy of Boba Jovanovic — originally posted to Unsplash.

Big multimedia repository update (CUDA enablements, rebases, new software)

Posted by Simone Caronni on November 23, 2016 02:43 PM

Merging of the Nvidia repository into Multimedia

The whole multimedia repository has been rebased with recent releases, and it now features FFmpeg 3.2 as the foundation. Most of the programs that suppport some Nvidia integration are now enabled and compiled with support for CUDA/NVENC/CUVID; leveraging the previous reorganization of CUDA 8 in the various subpackages.

This means that all the Nvidia packages are now included in the repository as well, so if you have an Nvidia card and you are interested in both repositories, you can just have the multimedia repository enabled. If you still just want the Nvidia stuff (as enabled in Fedora 25) then it’s still available as a separate repository; and that will not change.

Why all of this? Because I can’t keep them separated anymore. The Nvidia repository can exist on its own, but the multimedia one can’t, due to the dependencies and the constant rebases (also of main Fedora and CentOS/RHEL packages). You can use the Nvidia repository alone, if you just need that, or use the multimedia one if you need everything else.

The repository is now exposed also at this URL, and contains Delta RPM support:

http://negativo17.org/repos/multimedia

All repository files and configurations have been updated, so this means that in the future this would be the place where the metadata and repository information will be placed and any new installation will get the repository from there. If you are reading this blog post, you can switch now. I will add a negativo17-release package soon, along with a few mirrors; I’m sorting out the details now with the mirror owners.

FFmpeg and other CUDA enablements

To make proper use of the Nvidia hardware encode features (NVENC/CUVID) and CUDA kernel support (i.e. Blender GPU rendering) in the various programs you need the Nvidia driver installed (nvidia-driver-cuda), and for Nvidia Performance Primitives you require the CUDA driver and the NPP library package (cuda-npp).

This means that for most people NOT requiring CUDA support or not using an Nvidia video card, the following 2 packages will be installed anyway:

$ ls -alghs nvidia-driver-cuda-libs*.rpm cuda-npp*.rpm 
92M -rw-r--r-T. 1 mock 92M Nov 16 12:35 cuda-npp-8.0.44-6.fc25.x86_64.rpm
22M -rw-r--r-T. 1 mock 22M Nov 19 15:00 nvidia-driver-cuda-libs-375.20-1.fc25.x86_64.rpm

Both packages contain just libraries, and they will be on your system as much as other libraries for multimedia codecs you don’t actually need. Example, with most multimedia programs you will get Xvid libraries for opening Xvid files, even though the format is pretty much abandoned. Having them installed does not enable any unwanted feature in your system. Also, NPP libraries should decrease 50% in size in one of the next CUDA updates, being the monolithic version of the library being deprecated in favor of split functionality.

There are some patches being evaluated to make those libraries loadable at runtime, but they have not been merged yet and there’s no guarantee that they ever will. Also, they are available for FFmpeg but not for all the other programs where support has been enabled for; so depending on your installation, you might get them anyway.

As of today, from the Multimedia repository the following programs have been enabled with some Nvidia hardware enablement:

  • MPV (video decoding through CUVID)
  • FFmpeg (encoding through NVENC, decoding through CUVID and filtering through CUDA NPP)
  • Avidemux (encoding, through NVENC)
  • GStreamer (NVENC plugin)
  • Blender (GPU rendering)

VDPAU for decoding was already enabled where possible.
Of course anything that is using FFmpeg (like the GStreamer plugins) could theoretically benefit from the same enablements as in FFMpeg:

$ for i in encoders decoders filters; do
    echo $i:; ffmpeg -hide_banner -${i} | egrep -i "npp|cuvid|nvenc|cuda"
done
encoders:
 V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)
decoders:
 V..... h263_cuvid           Nvidia CUVID H263 decoder (codec h263)
 V..... h264_cuvid           Nvidia CUVID H264 decoder (codec h264)
 V..... hevc_cuvid           Nvidia CUVID HEVC decoder (codec hevc)
 V..... mjpeg_cuvid          Nvidia CUVID MJPEG decoder (codec mjpeg)
 V..... mpeg1_cuvid          Nvidia CUVID MPEG1VIDEO decoder (codec mpeg1video)
 V..... mpeg2_cuvid          Nvidia CUVID MPEG2VIDEO decoder (codec mpeg2video)
 V..... mpeg4_cuvid          Nvidia CUVID MPEG4 decoder (codec mpeg4)
 V..... vc1_cuvid            Nvidia CUVID VC1 decoder (codec vc1)
 V..... vp8_cuvid            Nvidia CUVID VP8 decoder (codec vp8)
 V..... vp9_cuvid            Nvidia CUVID VP9 decoder (codec vp9)
filters:
 ... hwupload_cuda     V->V       Upload a system memory frame to a CUDA device.
 ... scale_npp         V->V       NVIDIA Performance Primitives video scaling and format conversion

I think this will be much appreciated for you users out there that are already using CUDA for deep learning and FFMpeg to process data 🙂

Rebases: FFmpeg, HandBrake, VLC, OpenH264, WebP (CentOS/RHEL), MPV.

A note on Blender: Blender with CUDA support is still at 2.78 built with CUDA 7.5, and not 2.78a built with CUDA 8; so no Nvidia Pascal GPU support. I’m working on it.

GNOME Software integration

Most of the graphical software is now enabled in GNOME software for Fedora 25, meaning that you can search stuff with a keyword and that if you have the repository enabled it will just pop-up:

gnome-software-handbrake

gnome-software-makemkv

gnome-software-vlc

There is still some packages that need AppStream metadata, but that will come.

As usual, feedback, bugs and comments are welcome.

Frase do Dia pq tudo é tão lerdo, será q o Fedora é feito em uma repartição pública? esta frase veio...

Posted by Itamar Reis Peixoto on November 22, 2016 09:11 PM
Frase do Dia

pq tudo é tão lerdo, será q o Fedora é feito em uma repartição pública?

esta frase veio de um brasileiro que esta aguardando para se tornar embaixador do Projeto.


Episode 14 - David A Wheeler: CII Badges

Posted by Open Source Security Podcast on November 22, 2016 08:54 PM
Josh and Kurt have a guest! David A. Wheeler talks about open source security and the CII Badges project.

Download Episode
<iframe frameborder="no" height="150" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/294303517&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true" width="100%"></iframe>

Show Notes


Factory 2, Sprint 4 Report

Posted by Ralph Bean on November 22, 2016 06:29 PM

Work continues on Factory 2.0...

Recall that we have 1000 different problems we're trying to solve, but we're attempting to focus on an isolated subset for now: problems we've picked so that their solutions can enable higher-level problem solving in the coming months. The work currently includes a focus on:

  • Preparing elementary build infrastructure for the Fedora 26 Alpha release.
  • Deserializing pipeline processes that could be done more quickly in parallel.
  • Building a dependency chain database, so that we can build smarter rebuild automation and pipeline analytics.
  • Monitoring pipeline performance metrics, so that as we later improve things we can be sure we had an effect.

Overall, I'm happy with the work output of this sprint, but there are complications.

  • We made significant progress on the module build infrastructure. The stack is maturing - the number of new features will be slowing as we start to prepare it for production for F26. Our proposals were approved by FESCo last week. We still have a long way to go, but we're currently on target to build an F26 Edition out of the base modules. Status: Green.
  • Our deserialization effort hit some roadbumps as we negotiate how to interface with existing test-execution environments. We're not blocked at the moment and are in dialogue with our partners. We will slip a few weeks on our MvP deliverable here. Status: Yellow.
  • The dependency chain MvP is ready for deployment efforts in Sprint 5. We underestimated how this work would depend on other message bus enablement pre-requisites, which has pushed our delivery date back a few weeks. Status: Yellow.
  • Our performance metrics work is progressing, but much more slowly than we had initially expected. We promised a delivery date of Dec. 1st for this, but we will miss it by a wide margin and need to adjust expectations. The primary factor is that the metrics are just more complex than we anticipated. The pipeline is complex, therefore exacting meaningful measurements is complex. A separate factor is some unpredictability with write-access to the integration lab's ELK instance we are depending on. The delay in work here does not block our other efforts. Status: Red.

mbs-build-profiles, by threebean

Here we show how we're re-using the "installation profiles" feature of modulemd to define the buildsystem "build groups" for a module. It's a natural extension of the install profiles metadata which furthmore helps unblock the base-runtime team in their quest to produce the first generational core!

<video autobuffer="autobuffer" controls="controls" height="350" width="600"> <source src="https://fedorapeople.org/groups/factory2/sprint-004//threebean-mbs-build-profiles.ogv"> </video>

mbs-config, by fivaldi

In this video I'm trying to explain changes in configuration internals of Module Build Service. This aims to split configuration data/logic so that it will be simplier to use and understand for contributors/users.

<video autobuffer="autobuffer" controls="controls" height="350" width="600"> <source src="https://fedorapeople.org/groups/factory2/sprint-004//fivaldi-mbs-config.ogv"> </video>

modulemd1-mock, by jkaluza

In this demo I inform about the support of modulemd-1.0 format in Module Build Service, describes the build-order feature and shows how the module using this feature builds using the mock builder.

<video autobuffer="autobuffer" controls="controls" height="350" width="600"> <source src="https://fedorapeople.org/groups/factory2/sprint-004//jkaluza-modulemd1-mock.ogv"> </video>

resultsdb-updater, by mprahl

This video shows the new microservice ResultsDB-Updater which listens on the CI message bus for test results and adds them to ResultsDB.

<video autobuffer="autobuffer" controls="controls" height="350" width="600"> <source src="https://fedorapeople.org/groups/factory2/sprint-004//mprahl-resultsdb-updater.mp4"> </video>

umb-brew, by mikeb

A demo of message publication from Brew to the Unified Message Bus. Explains the topic hierarchy and the message format.

<video autobuffer="autobuffer" controls="controls" height="350" width="600"> <source src="https://fedorapeople.org/groups/factory2/sprint-004//mikeb-umb-brew.ogv"> </video>

umb-dist-git-demo, by mikeb

A demo showing the publication of messages from a dist-git repo to the Unified Message Bus. Shows how the repos are configured for publication on the server side, and explains a little bit about message format.

<video autobuffer="autobuffer" controls="controls" height="350" width="600"> <source src="https://fedorapeople.org/groups/factory2/sprint-004//mikeb-umb-dist-git-demo.ogv"> </video>

Internet connection sharing with NetworkManager

Posted by Juan Orti Alcaine on November 22, 2016 05:59 PM

With this recipe we will create a wireless access point in our laptop to share our wired Internet connection. This is quite useful where you only have a wired Internet connection (e.g. my work place) for giving access to your phone.

This is done in Fedora 25 Workstation with NetworkManager.

In my laptop I have two network interfaces: enp1s0 for the wired ethernet and wlp2s0 for the wireless. I also have the default firewall configuration (all interfaces are in the default zone FedoraWorkstation).

We have to create the hotspot connection in NetworkManager. Change the PSK password to something more secure.

# nmcli connection add con-name Hotspot autoconnect no ifname wlp2s0 type wifi connection.zone trusted 802-11-wireless.mode ap 802-11-wireless.ssid my-AP 802-11-wireless-security.key-mgmt wpa-psk 802-11-wireless-security.proto rsn 802-11-wireless-security.pairwise ccmp 802-11-wireless-security.psk 12345678 ipv4.method shared ipv6.method ignore

Connection 'Hotspot' (c5fcb9b1-4d90-4847-9467-335315ba2288) successfully added.

The magic here happens with ipv4.method=shared, as NetworkManager launches a dnsmasq process and creates the appropriate NAT rules automatically.

Now you can enable/disable the hotspot with one command:

# nmcli connection up Hostspot
# nmcli connection down Hotspot

2016/11/24 Edit: Replace the script with ipv4.method=shared. Thanks to Lubomir Rintel for the tip.


Como actualizar a Fedora rawhide

Posted by Alexis Solanas on November 22, 2016 04:22 PM
Rawhide la versión de desarrollo de Fedora, y contiene las últimas versiones de todos los paquetes, y se actualiza de forma diaria. Primero comprobamos la versión actual que tenemos instalada: # cat /etc/fedora-release Fedora release 24 (Twenty Four) # uname -a Linux alxrh 4.8.6-201.fc24.x86_64 #1 SMP Thu Nov 3 14:38:57 UTC 2016 x86_64 x86_64 x86_64 […]

Upgrading Fedora 24 to Fedora 25

Posted by Fedora Magazine on November 22, 2016 03:00 PM

Fedora 25 was just officially released. You’ll likely want to upgrade your system to the latest version of Fedora. Fedora offers a command-line method for upgrading Fedora 24 to Fedora 25. The Fedora 24 Workstation also has a graphical method.

Upgrading Fedora 24 Workstation to Fedora 25

Soon after release time, a notification appears to tell you an upgrade is available. You can click the notification to launch the GNOME Software app. Or you can choose Software from GNOME Shell.

Choose the Updates tab in GNOME Software and you should see a window like this:

If you don’t see anything on this screen, try using the reload tool at the top left. It may take some time after release for all systems to be able to see an upgrade available.

Choose Download to fetch the upgrade packages. You can continue working until you reach a stopping point, and the download is complete. Then use GNOME Software to restart your system and apply the upgrade. Upgrading takes time, so you may want to grab a coffee and come back to the system later.

Using the command line

If you’ve upgraded from past Fedora releases, you may be familiar with the dnf upgrade plugin. This method is the recommended and supported way to upgrade from Fedora 24 to Fedora 25. Using this plugin will make your upgrade to Fedora 25 simple and easy.

1. Update software and back up your system

Before you do anything, you will want to make sure you have the latest software for Fedora 24 before beginning the upgrade process. Additionally, make sure you back up your system before proceeding. One popular tool available in Fedora for this purpose is deja-dup. To update your software, use GNOME Software or enter the following command in a terminal.

$ sudo dnf upgrade --refresh

2. Install the DNF plugin

Next, open a terminal and type the following command to install the plugin:

$ sudo dnf install dnf-plugin-system-upgrade

3. Start the update with DNF

Now that your system is up-to-date, backed up, and you have the DNF plugin installed, you can begin the upgrade by using the following command in a terminal:

$ sudo dnf system-upgrade download --releasever=25

This command will begin downloading all of the upgrades for your machine locally to prepare for the upgrade. If you have issues when upgrading because of packages without updates, broken dependencies, or retired packages, add the --allowerasing flag when typing the above command. This will allow DNF to remove packages that may be blocking your system upgrade.

Upgrading to Fedora 25: Starting upgrade

4. Reboot and upgrade

Once the previous command finishes downloading all of the upgrades, your system will be ready for rebooting. To boot your system into the upgrade process, type the following command in a terminal:

$ sudo dnf system-upgrade reboot

Your system will restart after this. In past releases, the fedup tool would create a new option on the kernel selection / boot screen. With the new dnf-plugin-system-upgrade package, your system reboots into the current kernel installed for Fedora 24; this is normal. Shortly after the kernel selection screen, your system begins the upgrade process.

Now might be a good time for a coffee break! Once it finishes, your system will restart and you’ll be able to log in to your newly upgraded Fedora 25 system.

Upgrading Fedora: Upgrade in progress

Upgrading Fedora: Upgrade complete!

Resolving upgrade problems

On occasion, there may be unexpected issues when you upgrade your system. If you experience any issues, please visit the DNF system upgrade wiki page for more information on troubleshooting in the event of a problem.

If you are having issues upgrading and have third-party repositories installed on your system, you may need to disable these repositories while you are upgrading. For support with repositories not provided by Fedora, please contact the providers of the repositories.

Further information

For more detailed instructions on using dnf for upgrading, including a breakdown of other flags, check out the DNF system upgrade wiki article. This page also has frequently asked questions you may have during an upgrade.

Happy upgrades!

Fedora 25 est de sortie, Wayland enfin par défaut !

Posted by Charles-Antoine Couret on November 22, 2016 02:06 PM

En ce mardi 22 novembre 2016, le projet Fedora est fier d’annoncer la sortie de la distribution GNU/Linux Fedora 25.

Comme à son habitude, le projet Fedora propose le dernier cru des environnements GNOME, GNOME 3.22.

Cette version de Fedora s'est surtout concentrée sur deux axes : couche graphique et simplicité.

Couche graphique

La nouveauté la plus importante est sans conteste la mise à disposition par défaut de Wayland pour l'environnement bureautique GNOME. Fedora devient ainsi la première distribution majeure à faire ce choix, pour promouvoir ce projet novateur annoncé il y a huit ans maintenant. Wayland consiste en une remise à plat du serveur graphique historique X11 (qui a plus de 30 ans) en tenant compte de l'évolution des usages et de l'architecture de nos machines aujourd'hui. Wayland vise à améliorer la sécurité du système, en évitant qu'une application quelconque puisse dessiner sur d'autres applications par exemple. Il pourrait à terme améliorer les performances, en exploitant pleinement l'accélération matérielle par les cartes graphiques. Puis il devrait améliorer la fiabilité du système, en améliorant l'architecture du programme et en facilitant sa maintenance.

Cependant, si Wayland commence à devenir mûr, de nombreuses fonctionnalités restent à proposer par rapport à l'expérience proposée par X11. C'est pourquoi, à l'ouverture de la session GNOME, il reste possible de choisir X11. Pour ceux qui n'ont pas besoin de ces fonctions, l'usage de Wayland devrait être totalement transparent.

La distribution propose de mieux exploiter les machines avec deux cartes graphiques, une intégrée au processeur et une autre externe. Cette configuration, très populaire sur les ordinateurs portables récents, permet en temps normal d'avoir une carte graphique minimale suffisante pour la bureautique qui consomme peu d'énergie et d'utiliser la carte externe pour les applications gourmandes. Jusqu’ici, votre environnement fonctionnait avec une carte graphique seulement et sans possibilité de changer celle en fonction. Aujourd'hui, celle intégrée au processeur est utilisée par défaut. Puis, en cas de besoin, vous pouvez lancer un logiciel sur l'autre carte graphique. Cela nécessite de lancer le programme avec la variable d'environnement DRI_PRIME=1 ou via un clic droit pour lancer l'application dans l'interface GNOME Shell.

Simplicité

L'assistant à la saisie IBus a bénéficié de deux améliorations importantes. Tout d'abord, son aide à la saisie rapide peut proposer les emoji. Plutôt que d'insérer manuellement les caractères UNICODE correspondants, ici ils seront donc suggérés. Ce même assistant, qui suggère des mots durant la frappe peut gérer plusieurs langues à la fois. Ainsi il est possible d'autocompléter le terme en cours en anglais alors que la phrase est en français et inversement.

Nous en avions parlé pour Fedora 24, l'utilitaire LiveUSB Tools est la méthode de téléchargement de Fedora par défaut. L'objectif est en effet que l'utilitaire télécharge et installe très simplement une version spécifiée de Fedora, qui peut être un Spin par exemple. Cela évite notamment de devoir graver l'image disque à la main sur clé USB ou CD, étape compliquée pour trop d'utilisateurs potentiels. Cette fois, l'utilitaire est disponible pour Windows et macOS également, d'où la mise en avant pour cette version.

Et comme d'habitude, Fedora 25 réserve bien d'autres surprises à découvrir.

Liens

Fedora & openSUSE: what is common in the latest releases?

Posted by Peter Czanik on November 22, 2016 10:18 AM

The second half of November brought us two exciting new Linux distribution releases: openSUSE Leap 42.2 and Fedora 25. While both of them are based on the RPM packaging format and cover everything from embedded through desktops to servers, there are also considerable differences.

Fedora 25

Fedora is a bleeding edge Linux distribution. It often provides brand new technologies for the first time in a Linux release. Some of these don’t stick around for long, but those which prove to be useful are often included in the next Red Hat Enterprise Linux release. This is why Fedora is my distribution of choice for syslog-ng packaging: I can test syslog-ng in an ever-changing environment, which helps me to detect early if syslog-ng needs to be adopted to some of the new technologies.

As usual, Fedora 25 brought tons of new features to the distribution. From the syslog-ng point of view, the addition of the Rust compiler is interesting, as syslog-ng 3.8 added support for developing parsers in the Rust programming language. For a complete list of new features, check the ChangeSet page in the Fedora Wiki.

openSUSE Leap 42.2

openSUSE Leap is a healthy mix of two Linux distributions. It is based on the rock solid foundations of SUSE Linux Enterprise Server, while many of its applications are coming from Tumbleweed, the bleeding edge rolling release of openSUSE. This provides stability combined with up-to-date desktop and development environments. And since I appreciate both stability and the latest desktop technologies, my desktop uses openSUSE Leap.

Leap 42.2 brought over a thousand new packages to the distribution. It has a new “server” mode of installation and stability is also coming to the desktop side thanks to using an LTS release of KDE. For a more detailed list of new features, check the release announcement.

So, what is common? syslog-ng 3.8.1

Fedora 25 and openSUSE Leap 42.2 are the first two distribution releases that feature syslog-ng 3.8.1, the latest syslog-ng. The most awaited new feature of this release was the addition of disk-based buffering, but of course there are many other features available as well. Most of the features are available in the distribution packages, but some of them could not be included due to policies or technical problems. Missing features include Rust-based parsers and Java-based Big Data destination modules. If you need those, check the 3rd party binaries page where you can download ready-to-use binaries for your distribution of choice.

Are you stuck?

If you have questions or comments related to syslog-ng, do not hesitate to contact us. You can reach us by email or you can even chat with us. For a long list of possibilities, check our contact page at https://syslog-ng.org/contact-us/. On Twitter, I am available as @PCzanik.

Fedora 25 released!

Posted by Fedora Magazine on November 22, 2016 09:30 AM

The Fedora Project is pleased to announce the immediate availability of Fedora 25, the next big step our journey into the containerized, modular future!

Fedora is a global community that works together to lead the advancement of free and open source software. As part of the community’s mission the project delivers three editions, each one a free, Linux-based operating system tailored to meet specific use cases: Fedora 25 Atomic Host, Fedora 25 Server, and Fedora 25 Workstation.

Each edition is built from a common set of base packages, which form the foundation of the Fedora operating system. As with all new versions of Fedora, Fedora 25 provides many bug fixes and tweaks to these underlying components, as well as new and enhanced packages, including:

  • Docker 1.12 for building and running containerized applications
  • Node.js 6.9.1, the latest version of the popular server-side JavaScript engine
  • Support for Rust, a faster and more stable system programming language
  • PHP 7, offering improved performance and reduced memory usage
  • Multiple Python versions — 2.6, 2.7, 3.3, 3.4 and 3.5 — to help run test suites across several Python configurations, as well as PyPy, PyPy3, and Jython

Fedora Workstation

Providing many of the latest open source developer and desktop tools, Fedora 25 Workstation delivers a host of new features, including the long-awaited official debut of the Wayland display server. Replacing the legacy X11 system, Wayland has been under development for several years and seeks to provide a smoother, richer experience for graphical environments and better capabilities for modern graphics hardware. To further enhance ease-of-use, Fedora 25 Workstation also features GNOME 3.22, which offers multiple file renaming, a redesigned keyboard settings tool and additional user interface improvements. Workstation users will also be pleased with the inclusion of decoding support for the MP3 media format.

Fedora 25 Workstation now makes it easier to for Windows and OS X users to get started, with Fedora Media Writer serving as the default download for those operating systems. This tool helps users find and download the current Fedora release and write it to removable media, like a USB stick, allowing potential Fedora users to “test drive” the operating system from that media environment. Fedora can then be installed to their systems with the same process.

For current Fedora users, the upgrade path from Fedora 24 to Fedora 25 has been simplified and streamlined, with typical upgrades taking less than 30 minutes, depending on system configuration and network speed. Upgrades can be started from the command line or from the GNOME Software tool, just like regular security and bugfix updates.

For developers, beyond the new docker engine and language support included in the base Fedora 25 packages, Fedora 25 Workstation introduces improved Flatpak support. This tweak makes it easier to install, update and remove Flatpak software and enables this application packaging standard to be more user friendly at the workstation level.

GNOME Shell extensions are also no longer checked for compatibility with the current version of the Shell. This was originally required because the GNOME interfaces were changing rapidly during the early days of GNOME 3. Now these interfaces have stabilized, and extensions can generally be expected to work with new releases.

Fedora Server

In addition to the flexible multi-role functionality provided by rolekit, Fedora 25 Server now delivers a new SELinux Troubleshooter module for Cockpit. Similar to what is available on Fedora Workstation, the module helps provide suggestions for a user when an SELinux denial is encountered, which otherwise requires log checking and manual workarounds.

Fedora 25 Server also will now display SSH keys in the Cockpit system dashboard to make it easier for administrators to see what keys are connecting to a given machine. Additionally, support is now included for multi-step (including two-factor) authentication services.

The FreeIPA identity management system has also been upgraded to 4.4 series, which offers a set of new features for servers deployed in an identity management role. Some of these enhancements include:

  • Topology management: FreeIPA web UI can now be used to visually manage topology graph for large deployments.
  • DNS sites: DNS management in FreeIPA now supports location-specific placement of services.
  • Subordinate Certificate Authorities: FreeIPA Certificate Authority now is able to create subordinate CAs to issue certificates with a specific scope.
  • Kerberos Authentication Indicators: Kerberos KDC now takes Authentication Indicators into account when issuing service tickets. For example, two-factor authenticated Kerberos credentials can now be required prior to obtaining tickets to a VPN service (supported by OpenConnect Server).

Fedora Atomic

New in Fedora 25 is the addition of Fedora 25 Atomic Host as one of Fedora’s three editions, replacing Fedora Cloud. While a Fedora Cloud Base image will continue to be available for users seeking to run workloads on a general purpose host, Fedora Atomic Host provides an optimized host designed to create and deploy container-based workloads.

Fedora 25 Atomic Host is shipped in several formats, to allow users to spin up virtual machines or install Atomic Host on bare metal. To keep pace with innovations in the world of Linux containers, Fedora Atomic Host is expected to be refreshed on a two-week release cycle (with major releases coinciding with new Fedora versions) and provides an easy upgrade path to accommodate rapid application development.

Fedora will also offer a docker-formatted base image, to be updated monthly along with critical security updates, for use in building Linux containers.

Spins and More

These are not the only parts of Fedora that are seeing changes in the release today. Our KDE spin features new and improved packages for music, video, and personal information management. Xfce includes improvements to the terminal, notifications, and power management. Mate-Compiz features an update to Mate 1.16 and a complete switch to the GTK+3 toolkit.

Downloads

You can download the new Fedora 25 starting today! Download Fedora 25 from our Get Fedora site:

Or, check out one of our popular variants:

Architectures

As always, Fedora is available for 32-bit ARM and 64-bit Intel architecture systems, and select Spins are also available for 32-bit x86. We’re also simultaneously releasing for 64-bit ARM, Power (including a little endian variant), and s390x. For these, see:

Of particular note to many enthusiasts, this is the first release where we officially run on the Raspberry Pi (versions 2 and 3). More details are available in this Fedora Magazine Article:

Upgrades

If you’re already running Fedora, you don’t need to download or create a boot image. Instead, start the upgrade process from GNOME Software or using DNF System Upgrade at the command line. For instructions, refer to our Fedora Magazine article:

Documentation and Common Bugs

Read the full release notes for Fedora 25:

Fedora 25 common bugs are documented at:

Thank You!

Fedora would not be possible without the hard work of the very dedicated contributor community. Thanks to the thousands of Fedora contributors and millions of upstream developers who made this release!

Fedora 25 est là, regard sur le travail des traducteurs

Posted by Jean-Baptiste Holcroft on November 21, 2016 11:00 PM

Pour Fedora 25, les traducteurs se sont chargés de traduire intégralement ibus-typing-booster, qu’on pourrait appeler l’accélérateur de saisie ! Il vise à faciliter l’écriture de langues asiatiques, mais peut aussi permettre aux européens, outre l'accélération de la saisie par prédiction, d’accéder à leurs propres symboles : les émoticônes ! En saisissant le drapeau, on nous suggère « 🏳‍ » ou le chat « 🐈 ».

Dans la continuité, nous avons également traduit/finalisé des outils plus anciens ibus, ibus-anthy, ibus-chewing, ibus-libpinyin. permettant la saisie en japonais et chinois.

Évidemment, l’outil Fedora Media Writer, qu’on appellerait l’installateur de médias, est intégralement traduit pour faciliter l’installation. Les sites internet et tous les outils principaux sont toujours à complètement traduits.

L’outil de signalement automatique ABRT et ses dépendances devraient être également complètement traduits pour faciliter la remontée de rapports d’anomalie, ainsi que Storaged pour le partitionnement.

La page des téléchargements alternatifs Fedora a été finalisée par l’équipe Websites, puis traduite dans la foulée : https://alt.fedoraproject.org. Tous les sites Fedora sont donc traduits !

L’équipe de Documentation a toujours besoin de bras pour actualiser ses documents et publier nos traductions. [http://www.winglemeyer.org/technology/2016/09/20/fedora-docs.html Ils refondent leurs outils et chaînes de production], n’hésitez pas à les aider !

Que faire pour aider ?

Dès que vous voyez un logiciel (que vous utilisez) qui est incomplet voire même non traduit :

  • remontez jusqu’à son code,
  • trouvez sa plateforme de traduction,
  • battez-vous pour obtenir une traduction à 100 %,
  • relisez trois fois pour un 100 % en qualité,
  • suivez son cycle de parution pour s’assurer que les nouvelles traductions parviennent jusqu’à votre ordinateur.

La dernière étape peut prendre du temps ;)

Traduisez également les notes de version de vos logiciels et outils pour faciliter leur compréhension.

Un doute dans la traduction d’un programme ?

Vous pouvez préciser dans quelle langue lancer le programme en surchargeant la valeur de '“LANG”'

Si votre système est configuré en Français, vous pouvez tout de même lancer l’éditeur OpenStreetMap en anglais, en faisant :

LANG="en_US" josm

Organisation de Fedora

L’organisation de la traduction d’une distribution est particulière de part la diversité des sources des contenus fournis à l’utilisateur.

La communauté Fedora :

  • utilise majoritairement Zanata comme plateforme de traduction de ses productions internes http://fedora.zanata. org/

Des logiciels peuvent être majoritairement utilisés par Fedora, mais être pensés dans une optique plus large, on les retrouvera sur la plateforme « publique » de Zanata. C’est d’ailleurs là qu’on trouvera Zanata ou Publican ;)

Pour tout le reste, il faut remonter à la source du code pour trouver où traduire. Voici quelques exemples parmi les plus connus :

John Steinbeck: Øst for Eden

Posted by Ingvar Hagelund on November 21, 2016 09:36 PM

Jeg mente det måtte være på tide med litt allmendannelse igjen. Jeg har lest Øst for Eden.

Adam Trask lever sammen med sin bror Charles og sin far Cyrus. Faren gir dem forskjellig behandling, han er tilsynelatende mer glad i Adam enn i Charles. Det er i alle fall slik Charles oppfatter det, og selv om han er glad i Charles, klarer han ikke la være å hate ham. Når faren dør driver de farmen sammen, selv om de begge har arvet en stor formue. En dag finner de en vakker men nesten ihjelslått kvinne på trammen. Adam faller pladask for henne, tar henne til ekte, og flytter tvers over landet til California. I Salinas-dalen følger vi de to familiene Trask og Hamilton. Den velstående Adam med hans svikefulle kone, og den fattige men kloke Samuel Hamilton og hans etterkommere, inntil neste generasjon står alene.

Det er ikke småtteri Steinbeck gaper over i denne fortellingen. Han går nemlig løs på spørsmålet om godt og ondt, og selveste arvesynden, med mange referanser til fortellingen om Kain og Abel (eller Charles og Adam, eller Caleb og Aron, om du vil). Kan man unngå å gjøre det onde, når man ønsker å være god, selv om trangen til å gjøre ondt trekker og drar i en? Konklusjonen er timshel. Og hva det betyr må det flere vise menn til, noe vi heldigvis får i løpet av boka.

Dette er helt fantastisk mesterlig. Hovedtemaet blir kraftig belyst fra alle bauer og kanter. Landskap og personer beskrives så levende at det støver rundt støvlene, og vi gråter med sorgene. Ved siden av kreti og pleti finnes det rollefigurer som er mer eller mindre gjennomført gode eller onde. Samuel, og senere Adams trofaste tjener, Lee, står for det godhet, miskunn og visdom, og redder dagen gang på gang når ondskapen gjør sine herjinger. Samuel og Lee gir oss dessuten et lynkurs i barneoppdragelse som står støtt mot hva som helst den dag i dag. Cathy er gjennomført ond og grusom. Eller, hva var ondskap igjen? Vi blir godt kjent med, og glad i hovedpersoner og bifigurer, og ønsker å støtte dem når de faller. Nei, nei, ikke gjør det! Men så snakk sammen da! Stol på Samuel! Hør på Lee!

Underveis får vi et lite men innsiktsfullt snitt av USAs historie fra århundreskiftet og fram til og med første verdenskrig. Steinbeck selv dukker opp som seg selv i en cameo i byen der Trask og Hamiltons bodde. Tilsynelatende er Samuel Hamilton modelert etter hans egen bestefar, og han viser en sterk kjærlighet til ikke bare fortellingen, men området og menneskene som bor der. I følge Steinbeck var Øst for Eden hans hovedverk, og alt han har skrevet og lært har han tatt med her. Resultatet er en bok som fremdeles står som en påle over 60 år etterpå.

Clickable Pungi logs

Posted by Lubomír Sedlář on November 21, 2016 02:52 PM

When debugging problems with composes, the logs left behind by all stages of the compose run are tremendously helpful. However, they are rather difficult to read due to the sheer volume. Being exposed to them quite intensively for close to a year helps, but it still is a nasty chore.

The most accessible way to look at the logs is via a web browser on kojipkgs. It's just httpd displaying the raw log files on the disk.

It took me too long to figure out this could be made much more pleasant that copy-pasting stuff from the wall of text.

How about a user script that would run in Greasemonkey and allow clicking through to different log files or even Koji tasks?

<figure> Is this not better?<figcaption>Is this not better?</figcaption> </figure>

Turns out it's not that difficult.

Did you know that when Firefox displays a text/plain file, it internally creates an HTML document with all the content in one <pre> tag.

The whole script essentially just runs a search and replace operation on the whole page. We can have a bunch of functions that take the whole content as text and return it slightly modified.

First step will make URLs clickable.

function link_urls(str) {
  let pat = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g;
  return str.replace(pat, '<a href="$&">$&</a>');
}

I didn't write the crazy regular expression myself. I got from Stack Overflow.

Next step can make paths to other files in the same compose clickable.

function link_local_files(url, pathname, mount, str) {
  let pat = new RegExp(mount + pathname + '(/[^ ,"\n]+)', 'g');
  return str.replace(pat, function (path, file) {
    return '<a href="' + url + file + '">' + path + '</a>';
  });
}

The last thing left is not particularly general: linking Koji tasks identifiers.

function link_tasks(taskinfo, str) {
  return str.replace('\d{8,}/m', '<a href="' + taskinfo + '$&">$&</a>')
            .replace(/(Runroot task failed|'task_id'): (\d{8,})/g,
                     '$1: <a href="' + taskinfo + '$2">$2</a>');
  }
}

Tying all these steps together and passing in the extra arguments is rather trivial but not very generic.

window.onload = function () {
  let origin = window.location.origin;
  let pathname = window.location.pathname.split('/', 4).join('/');
  let url = origin + pathname;
  let taskinfo = 'https://koji.fedoraproject.org/koji/taskinfo?taskID=';
  let mount = '/mnt/koji';

  var content = document.getElementsByTagName('pre')[0];
  var text = content.innerHTML;
  content.innerHTML = link_local_files(
    url, pathname, mount,
    link_tasks(taskinfo, link_urls(text))
  );
}

If you find this useful, feel free to grab the whole script with a header.

Last batch of ColorHugALS

Posted by Richard Hughes on November 21, 2016 11:43 AM

I’ve got 9 more ColorHugALS devices in stock and then when they are sold they will be no more for sale. With all the supplier costs going recently up my “sell at cost price” has turned into “make a small loss on each one” which isn’t sustainable. It’s all OpenHardware, both hardware design and the firmware itself so if someone wanted to start building them for sale they would be doing it with my blessing. Of course, I’m happy to continue supporting the existing sold devices into the distant future.

colorhug-als1-large

In part the original goal is fixed, the kernel and userspace support for the new SensorHID protocol works great and ambient light functionality works out of the box for more people on more hardware. I’m slightly disappointed more people didn’t get involved in making the ambient lighting algorithms more smart, but I guess it’s quite a niche area of development.

Plus, in the Apple product development sense, killing off one device lets me start selling something else OpenHardware in the future. :)

What’s new in Fedora 25 Workstation

Posted by Fedora Magazine on November 21, 2016 08:00 AM

Fedora 25 Workstation is the latest release of our free, leading-edge operating system. You can download it from the official website here starting tomorrow. There are several new and noteworthy changes in Fedora Workstation.

GNOME 3.22

The default environment comes courtesy of the GNOME community. They’ve put a great deal of effort into the newest 3.22 release. Examples of improvements include:

  • Multiple file renaming in the Files app
  • Integrated compressed file capabilities in Files
  • New, redesigned keyboard settings tool
  • Revamped landing page in the Software app
  • Easier category browsing in Software
  • Variable speed playback in Videos
  • …and much more!

Wayland display server

Wayland now replaces the old X11 display server by default. Its goal is to provide a smoother, richer experience when navigating Fedora Workstation. Like all software, there may still be some bugs. You can still choose the old X11 server if required. After selecting the login user, use the settings icon to switch. But this newer display server is designed to keep up with the modern OS and hardware.

Fedora Media Writer

The new Fedora Media Writer makes it easier than ever to download and install Fedora Workstation. You can also use it to download and install other Fedora editions, Spins, or Labs. This tool helps you find and download the current Fedora release and write to removable media like a USB stick. You can then “test drive” the OS live. If you like the experience, you can then install Fedora to your system. While Live USB has been around for a while, the Fedora Media Writer is a highly polished and user-friendly experience.

MP3 decoding support

This release includes a plugin for MP3 decoding such as playing music. If you play a MP3 file from your collection, GNOME Software detects it and helps you install the plugin.

Flatpak support

For developers, Fedora 25 Workstation introduces improved Flatpak support. These enhancements now make it easier to install, update and remove Flatpak software. The improvements make this application packaging standard more user friendly.

Extensions don’t expire

Finally, GNOME Shell extensions are no longer compatibility checked against the GNOME Shell version. This check was required in the early days of GNOME 3 because interfaces underneath were changing quickly. Now these interfaces have stabilized. So your extensions will work better from release to release.

Other notes

These are only some of the improvements in Fedora 25. Fedora also gives you access to thousands of software apps our community provides. Many have been updated since the previous release as well.

The Fedora 25 release is scheduled for availability tomorrow, Tuesday November 22!

Deploy de app Django no Nginx

Posted by Daniela Morais on November 21, 2016 05:43 AM
Deploy de app Django no Nginx

Deploy de app Django no Nginx Após o desenvolvimento e testes de uma aplicação, é necessário torná-la disponível para o cliente final configurando o servidor. Essa etapa é denominada deployment e é a parte mais legal (só que não) de todo o processo: inúmeros bugs podem surgir e você não faz ideia o por quê não funciona.

Deploy de app Django no Nginx

Para tornar menos problemático o processo de deploy, devops propõe muitas coisas que podem ajudar como entrega contínua, versionamento de código, integração contínua, metodologias ágeis etc. É uma área realmente bacana de estudar.
Infelizmente devido ao curto prazo de entrega desta aplicação, não consegui brincar um pouco com Docker neste projeto mas facilitaria e muito.

Em Java este processo se resume em gerar o .war e configurar o Apache. Caso queira saber mais:
http://pt.stackoverflow.com/questions/58729/o-que-%C3%A9-deploy

Para quem nunca desenvolveu além de aplicações acadêmicas, a grande pergunta é por quê simplesmente não executar:

$ python manage.py runserver
$ python app.py

Este "servidor" serve somente para desenvolvimento e testes locais, não é adequado para lidar com inúmeras requisições de usuários e não possui nenhuma confiabilidade de segurança.

Overview

  • python 3.5.1
  • django 1.10.0
  • gunicorn
  • nginx

Quando alguém enviar alguma requisição http (GET, POST, UPDATE etc.), o nginx é o responsável por dizer o que fazer com ela. Nos arquivos do Django, irá ter um arquivo urls.py que diz ao nginx qual código deverá ser executado de acordo com a path e código http recebido.

from django.conf.urls import url

from . import views

urlpatterns = [  
    url(r'^$', views.index, name='index'),
]

Para seja possível o nginx lidar com o Django, é necessário que o gunicorn faça a ponte entre os dois.
Deploy de app Django no Nginx

Ambiente virtual

É ideal isolar os frameworks usados com o virtualenv para evitar conflitos com outros projetos, ainda mais quando há Python 2.7 e Python 3.5 no mesmo sistema.

Para saber mais leia:
https://pythonhelp.wordpress.com/2012/10/17/virtualenv-ambientes-virtuais-para-desenvolvimento/

Configuração do servidor

Todo processo descrito pode e deve ser automatizado para evitar erros e agilizar o processo. Antes de tudo, não havia feito a configuração do DNS e por se tratar de uma aplicação de site pessoal que exigia atualização somente de imagens, javascript e HTML não foi necessário me preocupar com zero deployment downtime.

Lembre-se de setar o debug para falso antes de liberar para produção, qualquer erro será exibido para o usuário final e pode facilitar o pentest. Após a instalação do nginx, suba para verificar a mensagem default do nginx.

Provavelmente o diretório do projeto é algo como:

.
├── __init__.py
├── settings.py
├── static
│   ├── css
│   │   ├── bootstrap.css
│   │   ├── combo.css
│   │   ├── font-awesome.min.css
│   │   └── raleway.css
│   ├── fonts
│   │   ├── fontawesome-webfont.ttf
│   │   ├── fontawesome-webfont.woff
│   │   ├── FuturaHeavy.ttf
│   │   ├── Futura_ICG.ttf
│   │   └── FuturaLight.ttf
│   ├── html
│   │   ├── footer.html
│   │   └── mainmenu.html
│   ├── img
│   │   ├── estrela.png
│   │   ├── joao-whitaker.jpg
│   │   ├── logo-branco.jpg
│   │   ├── logo-preto.jpg
│   └── js
│       ├── analytics.js
│       ├── angular.min.js
│       ├── bootstrap.min.js
│       ├── connectionfacebook.js
│       ├── jquery-2.1.1.min.js
│       └── w3data.js
├── templates
│   ├── colabore.html
│   ├── index.html
├── urls.py
└── wsgi.py

É essencial inserir o HTML, CSS e JS no diretório static e separar do backend. Edite o arquivo settings.py inserindo a path de static, setando DEBUG=False e adicionando os seus domínios em ALLOWED_HOSTS.

STATIC_URL = '/static/'  
STATIC_ROOT = os.path.join(BASE_DIR, "static")  
STATICFILES_DIRS = (os.path.join(BASE_DIR, "sfiles"), )  

Crie um diretório no servidor em /var/www/seu_projeto, todo seu projeto django deve estar neste diretório. Após configurar o diretório de arquivos estátios, execute:

$ python manage.py collectstatic --digitar yes para confirmar 

Crie o arquivo de script do gunicorn chamando gunicorn_start.sh. Não esqueça de editar.

#!/bin/bash

NAME="seu-projeto"                              #Name of the application (*)  
DJANGODIR=/var/www/seu_projeto/my-website             # Django project directory (*)  
SOCKFILE=/var/www/seu_projeto/run/gunicorn.sock        # we will communicate using this unix socket (*)  
USER=ubuntu                                       # the user to run as (*)  
GROUP=webdata                                     # the group to run as (*)  
NUM_WORKERS=1                                     # how many worker processes should Gunicorn spawn (*)  
DJANGO_SETTINGS_MODULE=seu_projeto.settings             # which settings file should Django use (*)  
DJANGO_WSGI_MODULE=seu_projeto.wsgi                     # WSGI module name (*)

echo "Starting $NAME as `whoami`"

# Activate the virtual environment
cd $DJANGODIR  
source /var/www/seu_projeto/venv/bin/activate  
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE  
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)  
test -d $RUNDIR || mkdir -p $RUNDIR

# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
exec /var/www/seu_projeto/venv/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \  
  --name $NAME \
  --workers $NUM_WORKERS \
  --user $USER \
  --bind=unix:$SOCKFILE

Dê permissão de executável para o script com chmod a+x.

Para configurar o nginx, basta editar o arquivo em /etc/nginx/nginx.conf. A seguinte configuração deveria seguir o padrão do Apache e deixar o nginx.conf somente para configurações de níveis gerais. Leia o artigo de Vitor Lobo sobre confgurações do nginx:

Desvendando o Nginx
http://blog.ti.lemaf.ufla.br/2016/07/29/desvendando-o-nginx-parte-1/

nginx.conf

upstream test_server {  
  server unix:/var/www/seu_projeto/run/gunicorn.sock fail_timeout=10s;
}

# This is not neccessary - it's just commonly used
# it just redirects example.com -> www.example.com
# so it isn't treated as two separate websites
server {  
        listen 80;
        server_name example.com;
        return 301 $scheme://www.example.com$request_uri;
}

server {  
    listen   80;
    server_name www.example.com;

    client_max_body_size 4G;

    access_log /var/www/seu_projeto/logs/nginx-access.log;
    error_log /var/www/seu_projeto/logs/nginx-error.log warn;

    location /static/ {
        autoindex on;
        alias   /var/www/seu_projeto/seu-projeto/static/;
    }

   location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://test_server;
            break;
        }
    }

    #For favicon
    location  /favicon.ico {
        alias /var/www/seu_projeto/seu-projeto/static/img/favicon.ico;
    }
    #For robots.txt
    location  /robots.txt {
        alias /var/www/seu_projeto/seu-projeto/static/robots.txt ;
    }
    # Error pages
    error_page 500 502 503 504 /500.html;
    location = /500.html {
        root /var/www/seu_projeto/seu-projeto/static/;
    }
}

No meu caso, tive muitos problemas com o conteúdo que estava dentro de /static como css e js. Não era redirecionado cada um para a respectiva pasta e tive que inserir manualmente a path inteira:

 location /static/css/ {
    include /etc/nginx/mime.types;
    alias /var/www/seu_projeto/seu-projeto/static/css/;
    }

    location /static/js/ {
    include /etc/nginx/mime.types; 
    alias /var/www/seu_projeto/seu-projeto/static/js/;
    }

Agora basta subir novamente o servidor e executar o gunicorn.

$ pwd
/var/www/seu_projeto/
$ sudo service nginx start
$ ./gunicorn_start.sh 

As únicas alterações do projeto eram em /static então o processo se resumia em git pull, cp -a /static para /var/www/seu_projeto e python manage.py collecstatic para inserir novas atualizações. Lembre-se de automatizar todo seu processo e melhorar os scripts descritos, há vários artigos gratuitos da ThoughtWorks sobre como melhorar o processo de deploy.

E claro, mantenha a calma se algo der errado.
Deploy de app Django no Nginx

Referências

Esse post teve como objetivo ser útil e rápido e por isso, utilizei as etapas essenciais do seguinte artigo. Os scripts são de autoria de seu autor.
http://tutos.readthedocs.io/en/latest/source/ndg.html
Kickstarting Flask on Ubuntu - Setup and Deployment
https://realpython.com/blog/python/kickstarting-flask-on-ubuntu-setup-and-deployment/
WSGI Servers
https://www.fullstackpython.com/wsgi-servers.html
Deploying nginx + django + python 3
http://tutos.readthedocs.io/en/latest/source/ndg.html

Fast security is the best security

Posted by Josh Bressers on November 21, 2016 01:02 AM
DevOps security is a bit like developing without a safety net. This is meant to be a reference to a trapeze act at the circus for those of you who have never had the joy of witnessing the heart stopping excitement of the circus trapeze. The idea is that when you watch a trapeze act with a net, you know that if something goes wrong, they just land in a net. The really exciting and scary trapeze acts have no net. If these folks fall, that's pretty much it for them. Someone pointed out to me that the current DevOps security is a bit like taking away the net.

This got me thinking about how we used to develop and do security, how we do it now, and is the net really gone?

First, some history


If you're a geezer, you remember the days when the developers built something, and operations had to deploy it. It never worked, both groups called the other names. Eventually they put aside their mutual hatred, worked together, and got something that mostly worked. This did provide some level of checks and balances though. Operations could ensure development wasn't doing anything too silly, as development could check on operations. Things mostly made sense. Somehow projects still got deployed by banging rocks together.

That said though, things did move slowly, and it's not a secret that some projects failed due to structural issues after having huge sums of money spent on them. I'll never say things were better back then, anyone who claims the world was a better place isn't someone you should listen to.

The present


In the new and exciting world of DevOps who is responsible for checking on who? Development can't really blame operations anymore, they're all on the same team, sometimes it's even the same person. This would be like that time the Austrian army attacked itself. This is where the idea of the safety net being removed comes in. Who is responsible for ensuring things are mostly secure? The new answer isn't "nobody", it's "everybody".

The real power of DevOps is that the software and systems are grown, not built. This is true of security, it's now grown instead of built. Now you have ample opportunity to make good security decisions along the way. Even if you make some sort of mistake, and you will, it's trivial to fix the problem quickly without much fanfare. The way the world works today is not the way the world worked even ten years ago. If you can't move fast, you're going to fail, especially when security is involved. Fast security is the best security.

And this is really how security has to work. Security has to move fast. The days of having months to fix security problems are long gone. You have to stay on top of what's going on and get things dealt with quickly. DevOps didn't remove the security safety net, it removed the security parachute. Now you can go as fast as you want, but that also means if nobody is driving, you're going to crash into a wall.

Leave your comments on Twitter

A big gathering you probably haven’t heard about!

Posted by Hedayat Vatankhah on November 20, 2016 06:13 PM

The world’s second largest gathering (and the largest annual gathering) is underway, but you don’t hear anything about it in many news media! That’s interesting…

 


Can I interest you in talking about Security?

Posted by Josh Bressers on November 20, 2016 03:53 PM
I had a discussion last week with some fellow security folks about how we can discuss security with normal people. If you pay attention to what's going on, you know the security people and the non security people don't really communicate well. We eventually made our way to comparing what we do to the door to door religious groups. They're rarely seen in a positive light, are usually annoying, and only seem to show up when it's most inconvenient. This got me thinking, we probably have more in common there than we want to admit, but there are also some lessons for us.

Firstly, nobody wants to talk to either group. The reasons are basically the same. People are already mostly happy with whatever choices they've made and don't need someone showing up to mess with their plans. Do you enjoy being told you're wrong? Even if you are wrong, you don't want someone telling you this. At best you want to figure it out yourself but in reality you don't care and will keep doing whatever you want. It's part of being an irrational human. I'm right, you're wrong, everything else is just pointless details.

Let's assume you are certain that the message you have is really important. If you're not telling people something useful, you're wasting their time. It doesn't matter how important a message is, the audience has to want to hear it. Nobody likes having their time wasted. In this crazy election season, how often are you willing to not just hang up your phone when a pollster calls? You know it's just a big waste of time.

Most importantly though, you can't act pretentious. If you think you're better than whoever you're talking to, even if you're trying hard not to show it, they'll know. Humans are amazing at understanding what another person is thinking by how they act. It's how we managed to survive this long. Our monkey brains are really good at handling social interactions without us even knowing. How often do you talk to someone who is acting superior to you, and all you want to do is stop talking to them.

Now what?

It's really easy to point all this stuff out, most of us probably know this already. So what can we start doing different? In the same context of door to door selling, it's far more powerful if someone comes to you. If they come to you, they want to learn and understand. So while there isn't anything overly new and exciting, the thing that's best for us to remember today is just be available. If you're approachable, you will be approached, and when they do, make sure you don't drive your audience away. If someone wants to talk to you about security, let them. And be kind, understanding, and sympathetic.

Fedora 26: xorg-x11-drv-synaptics wird durch xorg-x11-drv-libinput ersetzt

Posted by Fedora-Blog.de on November 20, 2016 09:22 AM

Wie Peter Hutterer in seinem Blog schreibt, wird ab Fedora 26 der Synaptics Touchpad-Treiber (xorg-x11-drv-synaptics) durch den libinput Treiber ersetzt.

Wer weiterhin den Synaptics-Treiber benötigt, kann diesen ab Fedora 26 über den Paket xorg-x11-drv-synaptics-legacy installieren. Dieses Paket bringt dann auch das benötigte xorg.conf.d Snipped mit, damit der Synaptics-Treiber anstelle von libinput benutzt wird.

Die veröffentlichten News werden nach bestem Wissen und Gewissen zusammengetragen. Eine Garantie für die Vollständigkeit und/oder Richtigkeit wird nicht übernommen.

Fedora - retiring xorg-x11-drv-synaptics

Posted by Peter Hutterer on November 20, 2016 03:57 AM

The Fedora Change to retire the synaptics driver was approved by FESCO. This will apply to Fedora 26 and is part of a cleanup to, ironically, make the synaptics driver easier to install.

Since Fedora 22, xorg-x11-drv-libinput is the preferred input driver. For historical reasons, almost all users have the xorg-x11-drv-synaptics package installed. But to actually use the synaptics driver over xorg-x11-drv-libinput requires a manually dropped xorg.conf.d snippet. And that's just not ideal. Unfortunately, in DNF/RPM we cannot just say "replace the xorg-x11-drv-synaptics package with xorg-x11-drv-libinput on update but still allow users to install xorg-x11-drv-synaptics after that".

So the path taken is a package rename. Starting with Fedora 26, xorg-x11-drv-libinput's RPM will Provide/Obsolete [1] xorg-x11-drv-synaptics and thus remove the old package on update. Users that need the synaptics driver then need to install xorg-x11-drv-synaptics-legacy. This driver will then install itself correctly without extra user intervention and will take precedence over the libinput driver. Removing xorg-x11-drv-synaptics-legacy will remove the driver assignment and thus fall back to libinput for touchpads. So aside from the name change, everything else works smoother now. Both packages are now updated in Rawhide and should be available from your local mirror soon.

What does this mean for you as a user? If you are a synaptics user, after an update/install, you need to now manually install xorg-x11-drv-synaptics-legacy. You can remove any xorg.conf.d snippets assigning the synaptics driver unless they also include other custom configuration.

See the Fedora Change page for details. Note that this is a Fedora-specific change only, the upstream change for this is already in place.

[1] "Provide" in RPM-speak means the package provides functionality otherwise provided by some other package even though it may not necessarily provide the code from that package. "Obsolete" means that installing this package replaces the obsoleted package.

OCaml 4.04, RISC-V, S/390, POWER and more …

Posted by Richard W.M. Jones on November 19, 2016 02:46 PM

I pushed OCaml 4.04.0 to Fedora Rawhide last week. There are loads of new features for OCaml users, but the ones that particularly affect Fedora are:

  • New, upstream POWER (ppc64, ppc64le) backend, replacing the downstream one that we have maintained for a few years. I was quite apprehensive about this change because I had tried the new backend during the OCaml 4.03 release cycle and found it to be quite unstable. However the latest version looks rock solid and has no problem compiling the entire Fedora+OCaml software suite.
  • New, upstream S/390x backend. I actually found and fixed a bug, go me!
  • New, non-upstream RISC-V backend. I found a bug in this backend too, but it proved to be easy to fix. You can now install and run most of the OCaml packages on Fedora/RISC-V.

And talking about Fedora/RISC-V, it took a month, but the mass-rebuild of all Fedora packages completed, and now we’ve got about ⅔rds of all Fedora packages available for RISC-V. That’s quite a lot:

$ du -sh SRPMS/ RPMS/
31G	SRPMS/
27G	RPMS/

Fedora Loves Python at SeaGL 2016

Posted by Jeff Sandys on November 19, 2016 06:27 AM
The Seattle GNU/Linux conference, SeaGL, intentionally attracts a variety of attendees, students from Seattle Central College, local Linux enthusiasts, curious neighbors, and programmers from big software companies, indies and start-ups. About 500 people attended the exhibits and talks on the two days. The exhibit area was closed for the keynotes so I saw Corey Quinn tell us the Art of Personal Failure and Allison Randal presented Free as in Freedom. Bill Wright received the Cascadia Community Builder Award for his efforts building LinuxFest NorthWest.

20161111_122903-01.jpeg

With Laura Abbott and John Dulaney, we staffed a table featuring Fedora loves Python. We showed Pippy, the Python learning environment on the One Laptop Per Child, and a Raspberry PI 3 running Fedora 25 with beefy-connection, a Python Flask application created by Scott Williams. The RPI arrived the day before the conference, Fedora 25 was easy to install, John Dulaney got beefy-connection (a kiosk to connect with guests) running smoothly, then he installed Xonsh to show me a Python shell.

We talked to guests about Python and Fedora, many were just learning Python and many were experienced users. I asked guests, ‘What IDE do you use?’ One guest, a web developer, said a multi-line editor (Sublime?) that we talked about. Then they had some technical questions. I’m thankful that Laura Abbott answered her questions and many others. I ran Jupyter with some of Peter Norvig’s notebooks open, like the Monty Hall probability simulation and Regex Golf problems. Peter Norvig is such an elegant programmer, his notebooks are fun to discuss. And the drawings for the Fedora Loves Python tee-shirts were popular.

At Flock I gave a presentation, Spin Your Exhibit, and applied those ideas to the Fedora Loves Python theme. We showed tools for beginner, experienced, and specialized users by talking about IDEs. The OLPC always attracts guests and is a story of Python success. Swag included the Fedora Loves Python trifold, cool buttons and Tee-shirts. Specialized hardware was the Raspberry PI. But I didn’t have a hands on challenge. What sort of quick and easy Python challenge could you set up? I thought of a list comprehension quiz, what ideas do you have? Beefy-connection was hands on but not very challenging or memorable.

This is the fourth year for SeaGL and it is growing. Exhibiting is great to make new friends and discuss new ideas. I met the organizer for Puppy (Puget Sound Programming Python) meet-up and will attend with some swag. Talked to Bill Wright about LinuxFest NorthWest (May 6 & 7, 2017), I want to add a QRcode reader to beefy-connection. The Free Software Foundation invited members to a Friday night meet up, our table discussed rights and freedom between web frameworks and tug boats. Thanks to Fedora for sponsoring this exhibit.

Episode 13 - CVE: The metric system of security

Posted by Open Source Security Podcast on November 18, 2016 08:43 PM
Josh and Kurt talk about CVE, DWF, and the future of flaw reporting.

Download Episode
<iframe frameborder="no" height="150" scrolling="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/293693983&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true" width="100%"></iframe>

Show Notes


Flock Stories 2016, Episode 4: Matthew Miller

Posted by Fedora Community Blog on November 18, 2016 08:15 AM

Flock Stories by Chris WardToday’s guest is Matthew Miller (mattdm)! He’s a long-time Fedora user and contributor, as well as the founder of Boston University Linux. However, perhaps most important of all, he is the current Fedora Project Leader! In this interview, we ask Matthew questions like…

  1. How did you get to where you are today?
  2. What are some of the areas you’re focused on improving in the Fedora community now?
  3. And while we’re here, who else is making waves in the Fedora Project?

LISTEN: soundcloud.com/chris-ward-908424795/flock16-mathew-miller-r3-2016-10-16-chris-ward-flock-stories

I’m Chris Ward. @kejbaly2 on Twitter, Facebook, and even… Brno. Send me a postcard!

Show Notes

Episode License

Free Art CopyLeft License (FAL 1.3)

Music

Funky Standup by Raphael Pistachio

The post Flock Stories 2016, Episode 4: Matthew Miller appeared first on Fedora Community Blog.

Introducing Fedora Hubs

Posted by Fedora Magazine on November 18, 2016 08:00 AM

What is Fedora Hubs?

The goal of the Fedora Hubs project is to provide a consistent contributor experience across all Fedora teams. Hubs serve as an “intranet” for the Fedora Project. The many different projects in Fedora each have different processes and workflows. Hubs will be a single place where contributors can learn about and contribute to these projects in a consistent way.

Hubs is also a social tool for Fedora contributors. It’s designed to help you keep up with everything and everybody across a big open source project in ways that aren’t currently possible. Hubs solves obstacles so new contributors can get in touch with experienced ones.

Do you want to learn more about the history behind Hubs? Fedora Design team lead Máirín Duffy wrote a few blog posts on the progress of Hubs.

Hubs features

Here are some key features in Hubs right now. Development is continuing, so these features will change over time.

Group hubs

The Fedora Project consists of various teams such as Infrastructure, Design, Community Operations, Marketing, Globalization, and more. Group hubs are associated with respective FAS groups.

Screenshot from 2015-12-08 19-23-41
This is a group hub for the Infrastructure team. It lists a feed for the team, as well as their configured widgets. The widgets are listed in the order they were added with their index values. You can see the values in the populate.py file under the infrastructure team.

Using group hubs, anyone can get to know the work of a team and track their progress. Also, it becomes easier to get insights from the other teams on a particular task or project.

User hubs

The user hub page maps to a user’s account in the Fedora Account System (FAS). User hubs are configurable. Again, the hub lists the widgets the user has configured to display on their page.

Screenshot from 2016-03-17 03-28-52

This is the hub for the FAS user devyani7. It lists the widgets configured for this user in the hubs/defaults.py file. Each user can configure their user hub (or profile) as desired to appeal to visitors.

The various sized rectangular cards on a hub page are called widgets. Owners configure a hub page with the widgets they want displayed.

Every user hub page features a Contact-Info widget, for example. This widget lets you know the time zone, contact channels, and other details for the person whose hub you’re viewing. The data is extracted from the FAS information the user has set to be public.

Work-in-progress features

The team is currently working on more features, including:

  • Bookmark: The User hub pages will feature a vertical bookmark bar. Hubs adds the pages the user frequently visits to their bookmarks. We plan to provide the user with the option to re-order the bookmark list as desired. Hubs will offer suggestions based on the frequency of visits to each hub page.
  • Waartaa: Using this widget, a user can chat with developers and not worry about losing logs. We plan to provide an IRC widget that gives users a client in the hub page itself.
  • Badges-Path Widget: Getting a Fedora badge is always a happy occasion, and expresses the experience of the contributor. Here we’ll have a badge contribution pathway to unlock new badges as the user levels up.

Back end infrastructure of Hubs

This diagram explains how Hubs uses messaging on Fedora’s fedmsg bus and other Fedora services to deliver fresh, useful data.

diagram

Want to hack on Hubs?

We designed Hubs to be modular, extensible, and reusable. In the future, we hope other open source projects will participate, build on Hubs, and add their own features. So there’s no better time to hack on Hubs than right now!

We wrote a post featured on the Community blog to provide you with tips to help hack your way into the project. We also covered how to get through some common pitfalls. This post also provides a glossary of Hubs-related terms. It even gives you a walk-through of what to expect once you set up Hubs locally.

Getting Help

Of course we have a number of ways you can reach the Hubs team.

IRC

IRC helps you get to know and interact with the rest of the Fedora Hubs team. It’s a global communication tool where asynchronous chat happens often. You can say hello or just lurk in #fedora-hubs on irc.freenode.net. We have weekly meetings every Tuesday at 14:00 UTC.

Never used IRC before or a little bit intimidated? Check out this IRC Beginner’s Guide here on Fedora Magazine to get started.

Mailing List

If you’ve got questions, want to have a discussion or get feedback, or just catch up with what people are doing on the team, use our mailing list. The mailing list is a subscription-based tool. You have to subscribe to the list if you want to post. You can subscribe to the Fedora Hubs mailing list at this web page.

Use the Sign In button to login with your FAS account. Or you can use any number of third party accounts like Google, Yahoo, Facebook, Twitter, Github, or an OpenID provider. To subscribe to the list, use any email address you prefer. Just drop us an introduction mail on the list, and we’ll reply back.

Hope to see you soon, hacking on Hubs!


Image courtesy of Jody Claborn — originally uploaded to Flickr as Sun Setting at Seattle Airport.

XPS 13 Developer Edition Kaby Lake (9360): working great with Fedora 25

Posted by Adam Williamson on November 18, 2016 02:41 AM

So, that post about not liking computers? Here’s a confession: I partly wrote it as some sort of weird preparation for buying myself another one. That is, the new Kaby Lake XPS 13 developer edition. I’ve been using a second-gen (L322X) XPS 13 developer edition for a few years now, and been generally happy with it, except for a couple of things:

  • That was the last generation before Intel substantially improved battery life, and it shows; I only get 2-3 hours on it.
  • I’m an idiot, so the screen has a crack in it and also has either water or diet Coke (not sure. I’ve spilled both on it) trapped between the screen glass and the substrate, which gives a weird sort of rainbow effect on that edge of the screen.

The new model’s been getting great reviews, and is reported to have good battery life. I think it’s good to send a signal by buying a system with Linux preloaded (even if it’s the wrong one :>). nirik was touting the virtues of the Lenovo Yoga 910, and that sure looks nice too, but I think I’m still happy with this.

So the new XPS 13 arrived today. It’s a very nice bit of hardware, even smaller than the second-gen thanks to those crazy tiny bezels, and with an overall nice design. Keyboard and trackpad feel a bit better than before.

Of course, I installed the brand-new, just-signed-off Fedora 25 (Workstation) on it straight away (public release on Tuesday!), and guess what?

Everything worked. I mean, just everything worked. I didn’t have to lift a damn finger to do anything anywhere. Wifi works, sound works, touchscreen works, the lot. GNOME automatically enables hidpi mode, and the screen looks great. There was just nothing at all I had to do besides set up my apps. Bit boring! But welcome. Heck, even enrolling the system to a FreeIPA domain during gnome-initial-setup worked, except the user’s login keyring didn’t turn out right and I had to poke around a bit to fix that.

There’s only one slightly odd thing: the system’s function keys are lockable, like caps lock or scroll lock. Out of the box, they’re set so just pressing them uses them as multimedia keys – pressing F3 raises the volume, pressing F2 lowers it, etc. To actually get a function key you have to hold fn and press the key. Which is of course awful. But never fear! After ten minutes futilely poking around in the firmware looking for a config setting, I twigged that there’s a little ‘lock’ icon on the Esc key. Just pressing fn+Esc flips the keys over so just pressing them gets you the function key, as the universe intended, and fn+key will do the multimedia key action. Phew.

How to run SQL Server v.Next Public Preview on Fedora

Posted by Fedora Magazine on November 17, 2016 10:48 PM

No, this headline is not a joke! A decade ago, you probably wouldn’t think of Microsoft when you hear Linux or open source. Just this week, though, Microsoft introduced a public preview of one of their top products, SQL Server, for Linux. The SQL Server v.Next Public Preview is available for free download now. This article shows you how to run it on Fedora 25, which is due to release next week.

Of course, Fedora already offers several full-featured, free and open source relational SQL databases. Both mariadba recent fork of MySQL with active community development, and postgresql are popular worldwide. They’re known for ease of use, features, and stability. But SQL Server has many users as well. This is one more way those users can try new features using Fedora.

This process uses packages Microsoft provides for Red Hat Enterprise Linux 7. These packages seem to work fine so far in testing on Fedora 25 as well. However, it’s a preview release, so the usual caveats apply.

Note for existing database servers

To avoid any software conflict, you need to remove the unixODBC package Fedora provides by default. To remove unixODBC, run this command:

sudo dnf remove unixODBC

Be aware this package is required by some other database servers like mariadb. Maybe you don’t want to remove those database server packages, though. No problem — make a virtual guest machine, and run the rest of this process on the guest.

Installing SQL Server v.Next Public Preview

First install the repository definition files:

sudo su -
curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repo
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
exit

Next, install the Microsoft SQL Server v.Next Public Preview packages using dnf:

sudo dnf -y install mssql-server mssql-tools

Open the default port on your firewall:

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

Next, run the setup helper for SQL Server. This lets you add a system administrator (SA) password. Do not start the service when prompted.

sudo /opt/mssql/bin/sqlservr-setup

Finally, start the SQL Server service units using systemd:

sudo systemctl start mssql-server mssql-server-telemetry

Optionally, you can enable them for startup at boot time:

sudo systemctl enable mssql-server mssql-server-telemetry

Testing the installation

To test the server is working properly, use the tools installed earlier. The mssql-tools package provides the sqlcmd utility for connecting to the SQL Server. Use this command on the box where you installed both the server and tools:

sqlcmd -S localhost -U SA

You’ll need to provide the system administrator password you set up earlier.

A prompt 1> appears for you to send SQL commands to the server. Here is an example of a command to list the installed system databases. You need to enter both lines. The GO command tells the server to process the previous line.

SELECT Name from sys.Databases;
GO

You should see an output like this:

Name 
--------------------------------------------------------------------------------------------------------------------------------
master 
tempdb 
model 
msdb 

(4 rows affected)

To quit the sqlcmd session, enter the single command QUIT.

For more information on the SQL Server v.Next Public Preview for Linux, visit the official website.


Featured image contains Database icon by Nancy from the Noun Project

Bodhi 2.3.2 released

Posted by Bodhi on November 17, 2016 09:26 PM

Bodhi 2.3.2 is a bugfix release that addresses the following issues:

  • #1071 - push.py now defaults to the current releases.
  • #1072 - Fixed a typo in the masher in sending an ostree compose message.
  • #1073 - Fixed a typo in looking up an e-mail template.
  • #1079 - The fedmsg name is now passed explicitly.
  • #1095 - The man page was corrected to state that builds should be comma separated.
  • #1111 - Fixed a race condition between robosignatory and the signed handler.
  • e7cb3f13 - Fix querying the updates for resumption in push.py.
  • abeca57e - push.py now prompts for the username if not given.

Release contributors

The following contributors authored patches for 2.3.2:

  • Patrick Uiterwijk
  • Randy Barlow

Google come with Neural Machine Translation.

Posted by mythcat on November 17, 2016 12:48 PM
In 10 years, Google Translate has gone from supporting just a few languages to 103, connecting strangers, reaching across language barriers and even helping people find love. At the start, we pioneered large-scale statistical machine translation, which uses statistical models to translate text. Today, we’re introducing the next step in making Google Translate even better: Neural Machine Translation.
We can learn more about google translate here.

syslog-ng and Elasticsearch 5: getting started on RHEL/CentOS

Posted by Peter Czanik on November 17, 2016 09:30 AM

For the last six months, Elastic’s communication centered around the upcoming Elastic Stack 5.0. And finally it is here: tons of new features, improved performance and a single version number for all Elastic products. Compatibility with syslog-ng was checked already during the alpha phase of development, as syslog-ng is becoming popular among Elasticsearch users: it can greatly simplify logging to Elasticsearch.

As Elastic Stack 5.0.0 is now generally available, here is a quick how-to guide to get you started with syslog-ng 3.8.1 and Elasticsearch 5.0.0 on RHEL/CentOS 7.

Installing applications

As a first step, you have to enable a number of software repositories, and then install applications from them. These repositories contain Elasticsearch, the latest version of syslog-ng, and the dependencies of syslog-ng. These are all required for Elasticsearch 5.0.0 support.

In case of RHEL: You first have to enable the so-called “optional” repository (or repo, in its more popular shorter form), which contains a number of packages that are required to start syslog-ng.

In case of CentOS: The content of this repo is included CentOS, so you do not have to enable it there separately:

subscription-manager repos --enable rhel-7-server-optional-rpms

The Extra Packages for Enterprise Linux (EPEL) contains many useful packages, which are not included in RHEL. It also has an older version of syslog-ng, but that does not support Elasticsearch at all. Still, a few dependencies of syslog-ng are coming from this repo. You can enable it by downloading and installing an RPM package:

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh epel-release-latest-7.noarch.rpm

Next add the repo containing the latest unofficial build of syslog-ng. By the time of writing it is syslog-ng 3.8 and it is available on the Copr build service. Download the repo file to /etc/yum.repos.d/, so you can install and enable syslog-ng:

cd /etc/yum.repos.d/
wget https://copr.fedorainfracloud.org/coprs/czanik/syslog-ng38/repo/epel-7/czanik-syslog-ng38-epel-7.repoyum install syslog-ng
yum install syslog-ng-java
systemctl enable syslog-ng
systemctl start syslog-ng

It is not strictly required, but you can avoid some confusion, if you also delete rsyslog at the same time:

yum erase rsyslog

To install Elasticsearch, you have to use your text editing skills: copy and paste repository information from https://www.elastic.co/guide/en/elasticsearch/reference/5.0/rpm.html into a file under /etc/yum.repos.d

cd /etc/yum.repos.d/
vi elasticsearch.repo
yum install elasticsearch

Before starting Elasticsearch, you should change at least one setting in the configuration file: the name of the Elasticsearch cluster. Make sure there is no other cluster with the same name on your network. What you define here is to be used later also in your syslog-ng configuration. Once you have configured it, you can also enable and start Elasticsearch.

echo cluster.name: syslog-ng >> /etc/elasticsearch/elasticsearch.yml
systemctl enable elasticsearch
systemctl start elasticsearch

Java-based destinations in syslog-ng require libjvm.so in the library path. My blog at https://czanik.blogs.balabit.com/2016/03/troubleshooting-java-support-in-syslog-ng/ describes the topic in detail.

If you only have a single Java version on your system, the commands below add the directory containing libjvm.so to the library path:

echo /usr/lib/jvm/jre/lib/amd64/server > /etc/ld.so.conf.d/java.conf
ldconfig

You can check whether syslog-ng finds the libjvm.so file using the following command:

syslog-ng -V

The version information also includes a warning message if syslog-ng can not find libjvm.so. In this case refer to the blog mentioned above to resolve the problem.

Configuring syslog-ng

As a last step, create a configuration file for syslog-ng. A base configuration is already in place. You can extend it by creating a file under /etc/syslog-ng/conf.d with a .conf extension.

cd /etc/syslog-ng/conf.d
vi es.conf

The following configuration has a few twists, making it possible to have a few name-value pairs to analyze without the need to write PatternDB rules.

The complete configuration will be included at the end of this section; the configuration snippets are used to demonstrate the role of each part.

The first part of the configuration defines a file source for audit.log.

source s_auditd {
  file(/var/log/audit/audit.log);
};

The next part defines the Elasticsearch destination. The name of the Elasticsearch cluster is “syslog-ng”. If you have configured something else as the name of the Elasticsearch cluster, use that name here. Note that the client mode must be “http”, other modes are not supported for Elasticsearch 5.0

destination d_elastic {
  elasticsearch2 (
    cluster("syslog-ng")
    client_mode("http")
    index("syslog-ng")
    type("test")
    template("$(format-json --scope rfc5424 --scope nv-pairs --exclude DATE --key ISODATE)")
  )
};

The first log path sends local logs to the Elasticsearch destination without any processing. The source of the local logs, source(s_sys) is defined in /etc/syslog-ng/syslog-ng.conf, the main configuration file of syslog-ng.

log {
  source(s_sys);
  destination(d_elastic);
};

The second log path parses audit.log with the Linux audit parser, and further parses the MSG field of audit logs, which can contain valuable information (for example source IP address and the status of an SSH login). Just like the other log path, this one also stores the results to Elasticsearch, but in this case it includes many interesting name-value pairs.

log {
  source(s_auditd);
  parser {
    linux-audit-parser (prefix("auditd."));
  };
  parser {
    kv-parser (template("${auditd.msg}") prefix("amsg."));
  };
  destination(d_elastic);
};

And the whole configuration ready for copy & paste:

source s_auditd {
  file(/var/log/audit/audit.log);
};
destination d_elastic {
  elasticsearch2 (
    cluster("syslog-ng")
    client_mode("http")
    index("syslog-ng")
    type("test")
    template("$(format-json --scope rfc5424 --scope nv-pairs --exclude DATE --key ISODATE)")
  )
};
log {
  source(s_sys);
  destination(d_elastic);
};
log {
  source(s_auditd);
  parser {
    linux-audit-parser (prefix("auditd."));
  };
  parser {
    kv-parser (template("${auditd.msg}") prefix("amsg."));
  };
  destination(d_elastic);
};

Displaying results

Most people use Elasticsearch because they want to use Kibana to search and visualize their log messages. To install Kibana, copy-paste the repo information from https://www.elastic.co/guide/en/kibana/5.0/rpm.html to a file under /etc/yum.repos.d/ and then install it using the following command:

yum install kibana

By default the Kibana web interface binds only to 127.0.0.1, making it inaccessible if you want to view it from a remote machine. Change the server.host setting in /etc/kibana/kibana.yml to the server’s IP address or to 0.0.0.0 if you want to reach Kibana remotely. You can now enable and start Kibana:

systemctl enable kibana
systemctl start kibana

When you first open Kibana on port 5601 it will display an initial setup screen. You have to enter the “syslog-ng*” index name here, if you have followed my instructions. Once Kibana has found the index, you have to configure the “Time-field name”. If you use the above configuration for syslog-ng, it is “ISODATE”. Once you click Create, Kibana is ready to use.

Are you stuck?

If you have questions or comments related to syslog-ng, do not hesitate to contact us. You can reach us by email or you can even chat with us. For a long list of possibilities, check our contact page at https://syslog-ng.org/contact-us/. On Twitter I am available as @PCzanik.

News about the Firefox browser.

Posted by mythcat on November 16, 2016 03:36 PM
Come with download protection for a large number of executable file types on Windows, Mac and Linux.
The team improved performance for SDK extensions or extensions using the SDK module loader. This new version come with Guarani (gn) locale.
One of the good feature is WebM EME Support for Widevine on Windows and Mac but nothing about Encrypted WebM streams.
As you know the Encrypted WebM streams are encrypted at the block level with AES-128 CTR encryption.
The AES encryption takes way lesser processing time than decryption.
Last come with new two updates to keyboard shortcuts:
 - set a preference to have Ctrl+Tab cycle through tabs in recently used order;
 - view a page in Reader Mode by using Ctrl+Alt+R (command+alt+r on Mac);

About the new Firefox version 50.0 you can read here.

Another tale, apropos nothing again

Posted by Stephen Smoogen on November 16, 2016 02:55 PM
When Nema got back to her village she found that her house had nothing in it for planting the next year. Her parents were dead, and her younger brothers were used to drinking and gambling at the tavern house with what was left of the inheritance.

Now the Duke's fields had been cleared recently, and it was the law that peasants could gather any seed left over from the harvest. Nema asked her brothers if they would come help her do so. 

"Not I" they said, for they had games they wanted to play.

So Nema went through the fields and gathered as much seed as she could get. 

When the spring came, she needed to plant the seeds. She asked her brothers if they would help.

"Not I" they said, for they had ale they wanted to drink.

The grain grew and it needed to be harvested. Nema asked her brothers again if they would help.

"Not I" they said for their was both ale and games to think about.

The grain was harvested and milled at the miller. It was time to bake the bread, but none of the brothers were around to help out. Yet when the bread was just out of the oven.. who were to show up? All the brothers asking for bread.

Now Nema could have said something like "Thems that works gets to eat." but she was kind hearted and liked to share. So she gave them loaves from the oven and what did they cry out? "We wanted pumpernickel and this is just plain rye". 


A tale apropos nothing

Posted by Stephen Smoogen on November 16, 2016 02:33 PM
Once long ago, there was a war where many soldiers went off to war. In those days, win or lose if the war was over you were dropped out of the army and walked your way back to your home countless miles away.

Now there was one formerly conscripted soldier named Nema who walked through the forests and she came upon a village. Now Nema was very hungry but had no money as whatever payment was either long gone. She begged from house but found that the villagers did not like soldiers and told her to go somewhere else. In fact, the villagers were tired of soldiers and fighting and looting and always being the ones trodden on. They didn't even like each other that much because they were all sure that someone had been a collaborator sending soldiers to their house to take their last food.

When the villager had gone to all the houses, Nema sat in the square wondering what to do. Her grumbling stomach told her that she couldn't walk to another village. She had nothing to trade as the only weapon the army had let her take back, an axe, had broken when she had cut wood for her meal to villages back. Looking at the head of the axe an idea sprang into her mind. Nema remembered that one of the villagers had a large cauldron in her front yard.. probably to clean clothes or something..

Going to the villager hut, Nema asked again if she could borrow the pot to make a soup. She would clean it out as a service but she had a magical axe which just needed some water and a fire to make the tastiest soup ever. The old villager eyed Nema as crazy, but because the cauldron was outside and it did need a good cleaning thought it would be an even score. Nema cleaned the pot and gathered water from the village well. She got a fire going and put her axe in it.

The villagers started to gather around this crazy soldier and with much laughter asking how the water soup tasted. Nema would spoon out a bit and say "hmm it is OK but it just needs something to flavor it up a bit." One of the villagers thought and said "Oh I have some old beans.. maybe that will do it." They got the beans from where ever they were hidden and the soldier put it in the pot. Again the villagers asked "oh how is the soup". The soldier stirred some more and said "Oh the beans helped a lot but now it needs a balance." Another villager remembered some old carrots and onions they had. These were added to the pot. This went on for a while and shortly afterwords there was a wondrous soup for everyone to share and eat.

After all the soup had been divvied up, Nema took her magic axe head out of the bottom and put it back in her pouch. She would make it back to her own village many miles away, and this villagers would talk with each other and make many soups from what they had through the long winter.

Evolution of the SSL and TLS protocols

Posted by Red Hat Security on November 16, 2016 02:30 PM

The Transport Layer Security (TLS) protocol is undoubtedly the most widely used protocol on the Internet today. If you have ever done an online banking transaction, visited a social networking website, or checked your email, you have most likely used TLS. Apart from wrapping the plain text HTTP protocol with cryptographic goodness, other lower level protocols like SMTP and FTP can also use TLS to ensure that all the data between client and server is inaccessible to attackers in between. This article takes a brief look at the evolution of the protocol and discusses why it was necessary to make changes to it.

Like any other standard used today on the internet, the TLS protocol also has a humble beginning and a rocking history. Originally developed by Netscape in 1993 it was initially called Secure Sockets Layer (SSL). The first version was said to be so insecure that "it could be broken in ten minutes" when Marc Andreessen presented it at an MIT meeting. Several iterations were made which led to SSL version 2 and, later in 1995, SSL version 3. In 1996, an IETF working group formed to standardize SSL. Even though the resulting protocol is almost identical to SSL version 3, the process took three years.

TLS version 1.0, with a change in name to prevent trademark issues, was published as RFC 2246. Later versions 1.1 and 1.2 were published which aimed to address several shortcomings and flaws in the earlier versions of the protocol.

Cryptographic primitives are based on mathematical functions and theories

The TLS protocol itself is based on several cryptographic primitives including asymmetric key exchange protocols, ciphers, and hashing algorithms. Assembling all these primitives together securely is non-trivial and would not be practical to implement individually in the same way TLS does. For example, AES is a pretty strong symmetric cipher, but like any other symmetric cipher it needs the encryption key to be securely exchanged between the client and the server. Without an asymmetric cipher there is no way to exchange keys on an insecure network such as the Internet. Hashing functions are used to help authenticate the certificates used to exchange the keys and also ensure integrity of data-in-transit. These hash algorithms, like SHA, have one way properties and are reasonably collision resistant. All these cryptographic primitives, arranged in a certain way, make up the TLS protocol as a whole.

Key Exchanges

The reason two systems that have never met can communicate securely is due to secure key exchange protocols. Because each system must know the same secret to establish a secure communications path using a symmetric cipher, the use of key exchange systems allow those two systems to establish that secret and securely share it with each other to establish the communications path.

The Rivest-Shamir-Adleman (RSA) cryptosystem is the most widely used asymmetric key exchange algorithm. This algorithm assumes that factorization of large numbers is difficult, so while the public key (n) is calculated using n = p x q, it is hard for an attacker to factorize n into the corresponding primes p and q, which can be easily used to calculate the private key.

The Diffie-Hellman key exchange (DHE) uses the discrete log problem and assumes that when given y = g ^ a mod p, it is difficult to solve this equation to extract the private key a. Elliptic-Curve-based Diffie-Hellman key exchange (ECDHE) uses the abstract DH problem, but uses multiplication in elliptic curve groups for its security.

Symmetric algorithms

Symmetric algorithms used today like Advanced Encryption Standard (AES) have good confusion and diffusion properties, which mean that the encrypted data will be statistically different from the input. ChaCha20 is a newer stream cipher that is starting to see some traction and may see additional use in the future as a faster alternative to AES.

Changes as time and technology progresses

Faster computers are now more accessible to the common public via cloud computing, GPUs, and dedicated FPGA devices than they were 10 years ago. New computation methods have also become possible. Quantum computers are getting bigger, making possible attacks on the underlying mathematics of many algorithms used for cryptography. Also, new research in mathematics means that as older theories are challenged and newer methods are invented and researched, our previous assumptions about hard mathematical problems are losing ground.

New design flaws in the TLS protocol are also discovered from time to time. The POODLE flaw in SSL version 3 and DROWN flaw in SSL version 2 showed that the previous versions of the protocol are not secure. We can likely expect currently deployed versions of TLS to also have weaknesses as research continues and computing power gets greater.

Attacks against cryptographic primitives and its future

RSA

The best known attack against RSA is still factoring n into its components p and q. The best known algorithm for factoring integers larger than 10^100 is the number field sieve. The current recommendation from NIST is using a minimum RSA key length of 2048 bits for information needed to be protected until at least the year 2030. For secrecy beyond that year larger keys will be necessary.

RSA's future, however, is bleak! IETF recommended removal of static-RSA from the TLS version 1.3 draft standard stating "[t]hese cipher suites have several drawbacks including lack of PFS, pre-master secret contributed only by the client, and the general weakening of RSA over time. It would make the security analysis simpler to remove this option from TLS version 1.3. RSA certificates would still be allowed, but the key establishment would be via DHE or ECDHE." The consensus in the room at IETF-89 was to remove RSA key transport from TLS 1.3.

DHE and ECC

Like RSA, the best known attack against DHE is the number field sieve. With the current computing power available, a 512-bit DH key takes 10 core-years to break. NIST recommends a key size of 224 bits and 2048-bit group size for any information which needs to be protected till 2030.

As compared to DHE, ECC has still stood its ground and is being increasingly used in newer software and hardware implementations. Most of the known attacks against ECC work only on special hardware or against buggy implementations. NIST recommends use of at least 224-bit key size for ECC curves.

However, the biggest threat to all of the above key exchange methods is quantum computing. Once viable quantum computing technology is available, all of the above public key cryptography systems will be broken. NIST recently conducted a workshop on post-quantum cryptography and several alternatives to the above public cryptography schemes were discussed. It is going to be interesting to watch what these discussions lead to, and what new standards are formed.

Symmetric ciphers and hashes

All symmetric block ciphers are vulnerable to brute force attacks. The amount of time taken to brute force depends on the size of the key; the bigger the key, the more time and power it takes to brute force. The SWEET32 attack has already shown that small block sizes are bad and has finally laid 3DES to rest. We already know that RC4 is insecure and there have been several attempts to deprecate it.

The proposed TLS version 1.3 draft has provision for only two symmetric ciphers, namely AES and ChaCha20, and introduces authenticated encryption (AEAD). The only MAC function allowed is Poly1305.

And in conclusion...

No one knows for sure what will happen next but history has shown that older algorithms are at risk. That's why it is so important to stay up to date on cryptography technology. Developers should make sure their software supports the latest versions of TLS while deprecating older versions that are broken (or weakened). System owners should regularly test their systems to verify what ciphers and protocols are supported and stay educated on what is current and what the risks are to utilizing old cryptography.

Category

Secure

Tags

security tls

How to play Minecraft in Fedora

Posted by Fedora Magazine on November 16, 2016 08:00 AM

Few games are as notorious as the block-breaking sandbox game, Minecraft. Listed as the second best-selling video game of all-time with over 107.8 million copies sold to date, Minecraft is as popular with children as it is adults. It supports many platforms, including Windows, macOS, Android, iOS, and of course, Linux. Playing Minecraft on Linux and Fedora requires a few extra steps to get working. It is possible to set it up as a desktop app to integrate with your desktop environment of choice. Whether you’re setting it up for a friend, a child, or yourself, it’s easy to get started playing Minecraft in Fedora.

Installing dependencies

Minecraft is not available as an RPM package, so you are not able to take advantage of the dependency resolution features of GNOME Software or dnf. Minecraft is a Java-based game, so the only dependency you need to install is a Java run-time environment. Fortunately, this is quick and easy to do in Fedora. If you do not have Java already installed, you can install the Java OpenJDK from the official Fedora repositories. You can run the following command in a terminal window to install it.

$ sudo dnf install java-1.8.0-openjdk

Note: Other online guides may give instructions for you to download and install the Oracle Java run-time environment. For playing Minecraft, it doesn’t matter which one you use, but it is simpler to use the OpenJDK already in Fedora.

Downloading Minecraft

The next step is downloading Minecraft and setting it up on your system. Minecraft for Linux is a Java archive file (JAR) from the official Minecraft website. While it is possible to play the game by directly executing the JAR from the command line, there are a few extra steps to take so that a terminal window is not required to run the game.

When setting up the game, you will need to decide on a common place on your computer to store the Minecraft JAR. If you are not sure about where to store the game, you can follow the steps below to save the file into the /opt/ directory.

$ sudo mkdir -p /opt/minecraft/bin
$ sudo wget -O /opt/minecraft/bin/Minecraft.jar http://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.jar
$ sudo chown -R <your username>:<your username> /opt/minecraft/

After completing these steps, the Minecraft JAR will be ready for use in the /opt/minecraft/bin/ directory.

Creating a desktop app

A desktop application will make Minecraft more intuitive to start up and begin playing. To do this, you will need to create a .desktop file. This will integrate Minecraft into your desktop environment and make it so that it takes a single click to start up the game.

To create the desktop file, execute the following command to open up a text editor. You can replace gedit with a text editor of your choice.

$ sudo gedit /usr/share/applications/minecraft.desktop

Once open, you can insert the following contents into the file.

[Desktop Entry]
Categories=Game;ActionGame;AdventureGame;
Exec=java -jar /opt/minecraft/bin/Minecraft.jar
Path=/opt/minecraft/bin/
Icon=minecraft.png
Terminal=false
Type=Application
Name=Minecraft
Comment=The world's most exciting block simulator, now on Fedora!

You might have noticed the Icon= line and wondered where the app icon was coming from. The desktop application will look into the /usr/share/icons/ directory for an image named “minecraft.png” and use that as the icon that shows up in your desktop environment. You can use any image or your favorite block in Minecraft for the desktop icon if you’d like. If you’re not sure what to use or want the default image, you can use the Minecraft grass block for the icon. Just make sure you save the image as “minecraft.png” in the /usr/share/icons/ directory for it to appear.

Time to mine!

Congratulations! After completing these steps, you will now be able to open the Minecraft client from your desktop environment. If you do not see it immediately after creating the file, try logging out and back into your account. When opening the application, you will be greeted by the Minecraft launcher.

Opening the Minecraft launcher in Fedora Linux

If you’re ready to move on and try running your own Minecraft server, you can set one up with Spigot, an open source Minecraft server implementation. You can see our previous article on how to run a Minecraft server with Spigot.

Happy mining, and may your adventures be fruitful of diamonds and free of surprise creeper attacks!

Free alternatives to Minecraft

Unfortunately, Minecraft is neither free or open source. To gain an account to use the game, you have to pay for an account. The game source code is not available publicly. If you are looking for a free and open source version of the game and don’t mind using alternate software, Minetest is an excellent option. The Minetest client (and its official server software) are already packaged in Fedora. If you’d like to give Minetest a spin, run the following command from a terminal window.

$ sudo dnf install minetest

You can find other versions of Minetest for Windows, macOS, countless Linux distributions, Android, and FreeBSD on their website.

Paris Open Source Public - traducteurs vous n’êtes pas seuls !

Posted by Jean-Baptiste Holcroft on November 15, 2016 11:00 PM

J’ai eu la chance d’être sur le stand Fedora pendant l’open-source summit de Paris. C’était l’occasion de parler de traduction avec de nombreux utilisateurs et contributeurs.

Fedora est plutôt bien connu et l’avis globalement très positif, tant sur ses valeurs que sa stabilité. La qualité des traductions a également été indiqué comme étant bonne, bravo à tous les contributeurs directs ou indirects !

Les contributeurs ou producteurs de projets avec lesquels j’ai parlé de traduction partagent tous un besoin d’échange de la communauté des francophones afin de discuter nos traductions et faire évoluer notre vocabulaire. De Framasoft à Mozilla, en passant par Doudou Linux et GIMP, de nombreux cas d’utilisations ont été évoqués.

Les points que j’ai abordés sur l’age de pierre des traducteurs sont souvent partagés. Globalement il y a très peu de réutilisation de la mémoire collective des traducteurs, les outils sont très disparates, les contributeurs ont du mal à savoir où aller, les distributions du mal à trouver la bonne démarche avec les projets, et il n’existe presque aucun outil permettant de nous aider à piloter la qualité.

Le cas le plus incroyable : un utilisateur n’aimant pas avoir les erreurs de GCC en français, avait configuré tout son système en anglais et en conséquence des difficultés dans les autres applications, notamment les raccourcis de LibreOffice… Quel bonheur pour lui d’apprendre l’existence de « LC_ALL » ou des différentes variables disponibles dans le terminal (commande « locale ») ! Pour ceux l’ignorant, ça permet de définir la locale à utiliser par le logiciel et donc sa langue !

Merci à tous pour cette expérience pour mon premier salon !

Je reviendrai bientôt ici pour vous parler de quelques sujets et idées évoqués. Mais sachez collègues traducteurs que nous avons l'air d'être nombreux à partager les mêmes difficultés, et que peut-être que nous allons réussir à nous structurer et les résoudre progressivement !

Fedora Hubs and Meetbot: A Recursive Tale

Posted by Máirín Duffy on November 15, 2016 08:25 PM

Fedora Hubs

Hubs and Chat Integration Basics

One of the planned features of Fedora Hubs that I am most excited about is chat integration with Fedora development chat rooms. As a mentor and onboarder of designers and other creatives into the Fedora project, I’ve witnessed IRC causing a lot of unnecessary pain and delay in the onboarding experience. The idea we have for Hubs is to integrate Fedora’s IRC channels into the Hubs web UI, requiring no IRC client installation and configuration on the part of users in order to be able to participate. The model is meant to be something like this:

Diagram showing individual hubs mapping to individual IRC channels / privmsgs.

By default, any given hub won’t have an IRC chat window. And whether or not a chat window appears on the hub is configurable by the hub admin (they can choose to not display the chat widget.) However, the hub admin may map their hub to a specific channel – whatever is appropriate for their team / project / self – and the chat widget on their hub will give visitors the possibility to interact with that team via chat, right in the web interface. Early mockups depict this feature looking something like this, for inclusion on a team or project hub (a PM window for user hubs):

mockup showing an irc widget for #fedora-design on the design team hub

Note this follows our general principle of enabling new contributors while not uprooting our existing ones. We followed this with HyperKitty – if you prefer to interact with mailing lists on the web, you can, but if you’ve got your own email-based workflow and client that you don’t want to change at all, HyperKitty doesn’t affect you. Same principle here: if you’ve got an IRC client you like, no change for you. This is just an additional interface by which new folks can interact with you in the same places you already are.

Implementation is planned to be based on waartaa, for which the lead Hubs developer Sayan Chowdhury is also an upstream developer.

Long-term, we (along with waartaa upstream) have been thinking about matrix as a better chat protocol that waartaa could support or be ported to in the future. (I personally have migrated from HexChat to Riot.im – popular matrix web + smartphone client – as my only client to connect to Freenode. The experiment has gone quite well. I access my usual freenode channels using Riot.im’s IRC bridges.) So when we think about implementing chat, we also keep in mind the protocol underneath may change at some point.

That’s a high-level explanation of how we’re thinking about integrating chat into Hubs.

Next Level: HALP!!1

As of late, Aurélien Bompard has been investigating the “Help/Halp” feature of feature hubs. (https://pagure.io/fedora-hubs/issue/98)

The general idea is to have a widget that aggregates all help requests (created using the meetbot #help command while meeting minutes are being recorded) across all teams / meetings and have a single place to sort through them. Folks (particularly new contributors) looking for things they can help out with can refer to it as a nice, timely bucket of tasks that are needed with clear suggestions for how to get started. (Timely, because new contributors want to help with tasks that are needed now and not waste their time on requests that are stale and are no longer needed or already fixed. On the other side, the widget helps bring some attention to the requests people in need of help are making, hopefully increasing the chances they’ll get the help they are looking for.

The mechanism for generating the list of help requests is to gather #help requests from meeting minutes and display them from most recent to least recent. The chances you’ll find a task that is actually needed now are high. As the requests age, they scroll further and further back into the backlog until they are no longer displayed (the idea being, if enough time has passed, the help is likely no longer needed or has already been provided.) The contact point for would-be helpers is easy – the person who ran the #help command in the meeting is listed as a contact for you to sync up with to get started.)

The mockups are available in the ticket, but are shown below as well for purposes of illustration:

Main help widget, showing active help requests across various Fedora teams

Main help widget, showing active help requests across various Fedora teams

Mockup showing UI panel where someone can volunteer to help someone with a request.

Mockup showing UI panel where someone can volunteer to help someone with a request.

An issue that came up has to do with the mapping we talked about earlier. Many Fedora team meetings occur in #fedora-meeting-*; e.g., #fedora-meeting, #fedora-meeting-1, etc. Occasionally, Fedora meetings occur in a team channel (e.g., #fedora-design) that may not map up with the team’s ‘namespace’ in other applications (e.g., our mailing list is design-team. Our pagure.io repo is ‘/design’.) Based on how Fedora teams use IRC and how meetbot works, we cannot rely on the channel name to get the correct namespace / hub name for a team making a request during a meeting using the meetbot #help command.

Meetbot does also have a mechanism to set a topic for a meeting, and many teams use this to identify the team meeting – in fact, it’s required to start a meeting now – but depending on who is running the meeting, this freeform field can vary. (For instance – the design team has meetings marked fedora_design, fedora-design, designteam, design-team, design, etc. etc.) So the topic field in the fedmsg meetbot puts out may also not be reliable for pointing to a hub / team.

One idea we talked about in our meeting a couple of weeks ago as well as last week’s meeting was having some kind of lookup table to map a team to all of its various namespaces in different applications. The problem with this is that because meetbot issues the fedmsgs used to generate the halp widget list of requests as soon as the #help command is issued – it is meetbot itself that would need to lookup the mapping so that it had the correct team name issued in its fedmsg. We couldn’t write some kind of script or something to reconcile things after the meeting concluded. Meetbot itself needs to be changed for this to work – for the #help requests put out on fedmsg by meetbot to have the correct team names associated with them.

Which Upstream is Less Decomposed?

Do you see dead upstreams? Zombie image

Zombie artwork credit: Zombies Silhouette by GDJ on OpenClipArt.

We determined we needed to make a change to meetbot. meetbot is a plugin to an IRC bot called supybot. Fedora infrastructure doesn’t actually use supybot to run meetbot, though. (There haven’t been any commits to supybot for about 2 years.) Instead, we use a fork called limnoria that is Python 3-based and has various enhancements applied to it.

How about meetbot? Well, meetbot hasn’t been touched by its upstream since 2009 (7 years ago.) I believe Fedora carries some local patches to it. In talking with Kevin Fenzi, we discovered there is a newer fork of meetbot maintained by the upstream OpenStack team. That hadn’t seen activity in 3 years, according to github.

Aurélien contacted the upstream OpenStack folks and discovered that, pending a modification to implement file-based configs to enable deployment using tools like Ansible, they were looking to port their supybot plugins (including meetbot) to errbot and migrate to that. So we had a choice – we could implement what we needed on top of their newer meetbot as is and they would be willing to work with us, or we could join their team in migrating to errbot, participate in the meetbot porting process, and use errbot going forward. Errbot appears to have a very active upstream with many plugins available already.

How Far Down the Spiral Do We Go?

To unravel ourselves a bit from the spiral of recursion here… remember, we’re trying to implement a simple Help widget for Fedora Hubs. As we’ve discovered, the technology upon which the features we need to interact with to make the feature happen are a bit zombiefied. What to do?

We agreed that the overall mission of Fedora Hubs as a project is to make collaboration in Fedora more efficient and easy for everyone. In this situation specifically, we decided that migrating to errbot and upgrading a ported meetbot to allow for mapping team namespaces to meeting minutes would be the right way to go. It’s definitely not the easy way, but we think it’s the right way.

It’s our hope in general that as we work our way through implementing Hubs as a unified interface for collaboration in Fedora, we expose deficiencies present in the underlying apps and are able to identify and correct them as we go. This hopefully will result in a better experience for everyone using those apps, whether or not they are Hubs users.

Want to Help?

we need your help!

Does this sound interesting? Want to help us make it happen? Here’s what you can do:

  • Come say hi on the hubs-devel mailing list, introduce yourself, read up on our past meeting minutes.
  • Join us during our weekly meetings on Tuesdays at 15:00 UTC in #fedora-hubs on irc.freenode.net.
  • Reach out to Aurélien and coordinate with him if you’d like to help with the meetbot porting effort to errbot. You may want to check out those codebases as well.
  • Reach out to Sayan if you’d like to help with the implementation of waartaa to provide IRC support in Fedora Hubs!
  • Hit me up if you’ve got ideas or would like to help out with any of the UX involved!

Ideas, feedback, questions, etc. provided in a respectful manner are welcome in the comments.

[Xfce] Gnome Keyring automatisch entsperren

Posted by Fedora-Blog.de on November 15, 2016 06:46 PM
Bitte beachtet auch die Anmerkungen zu den HowTos!

Wer den Gnome Keyring zur Speicherung von Passwörtern verwendet und unter Xfce (oder anderen Desktops) das Problem hat, das der Login-Keyring nicht standardmäßig nach dem Login entsperrt wird, der sollte mal mittels

dnf list gnome-keyring-pam

schauen, ob das Paket gnome-keyring-pam installiert ist.

Sofern dies nicht der Fall ist, kann dies ganz einfach mittels

su -c'dnf install gnome-keyring-pam'

nachgeholt werden. Ab dem nächsten Login sollte dann auch wieder der Login-Keyring automatisch entsperr werden.

 Normalerweise solltedas Problem nur Leute betreffen, die von Gnome auf Xfce oder einen anderen GTK-Desktop umgestiegen sind.