Feed aggregator

ComputerMinds.co.uk: Drupal 8 Event Subscribers - the successor to alter hooks

Planet Drupal - Tue, 14/06/2016 - 14:00

In Drupal 7 if you wanted to tweak the functionality of an existing function then an alter hook was your best friend, but in Drupal 8 it's "all change!"

With the introduction of Symphony, your new BFF is an Event Subscriber. Alter hooks still exist, but it is recommended that we all move towards Events to fall in line with Symphony.

If you are interested in the comparison between alter hooks and events then I recommend this article from PreviousNext.

Categories: Elsewhere

Code Enigma: Doing more with Drush sql-sanitize

Planet Drupal - Tue, 14/06/2016 - 13:38
Doing more with Drush sql-sanitize Language English Doing more with Drush sql-sanitize

Support team lead Dan Smith shows us how to anonymise personal data in Drupal using Drush.

Tue, 2016-06-14 12:38By galooph


The sites that we build very often end up containing large amounts of user data, much of which allows individual people to be identified. Not just names, but social media accounts, telephone numbers, addresses, occupation details etc. In the UK, user data comes under the Data Protection Act, particularly personal data, which the Act defines as "data which relate to a living individual who can be identified".

So, your site contains lots of personal data, but you want to give a database dump to a Drupal developer so that she can code some new feature for you. How can you handle this without getting on the wrong side of the Information Commissioner's Office (ICO)? You could manually delete all the personal data before you created the database dump, but then your developer won't have any realistic data to work with. Fortunately, there are ways of sanitising the personal data, a process that the ICO refers to as anonymisation. The ICO has a useful code of practice that is worth reading – Anonymisation: managing data protection risk code of practice.

The Drupal command line tool, Drush, comes with a command to sanitise the users table, drush sql-sanitize. While this is better than nothing, it only sanitises user passwords and email addresses. Obviously, it doesn't know about all of the additional fields storing personal data that you added when you built your site.

Note: Drush sql-sanitize will sanitise data in the current database – you do not want to play with this on a live or production server!

With that caveat out of the way, assume I have a site with profile fields set up for a user to enter a LinkedIn url (field_profile_linkedin_page), a telephone number (field_profile_telephone_number), and a twitter username (field_profile_twitter_handle). How can I tell Drush to sanitise these fields too?

Thankfully, Drush is kind enough to provide a hook, hook_drush_sql_sync_sanitize(), which makes this straightforward. Assuming you’ve got a custom module that you’re using already, my_module, you would add a drush include file, /my_module/my_module.drush.inc, containing:

/** * Implements hook_drush_sql_sync_sanitize. */ function my_module_drush_sql_sync_sanitize($source) { // The query to sanitise field_data_field_profile_linkedin_page $linkedin_page_query = "UPDATE field_data_field_profile_linkedin_page SET field_profile_linkedin_page_value = CONCAT('http://uk.linkedin.com/user-name/', FLOOR(100000 + (RAND() * 900000)));";   // The query to sanitise field_revision_field_profile_linkedin_page $linkedin_page_query .= "UPDATE field_revision_field_profile_linkedin_page SET field_profile_linkedin_page_value = CONCAT('http://uk.linkedin.com/user-name/', FLOOR(100000 + (RAND() * 900000)));";   drush_sql_register_post_sync_op('sanitise_linkedin_page', dt('Sanitise field_profile_linkedin_page'), $linkedin_page_query);   // The query to sanitise field_data_field_profile_telephone_number $telephone_number_query = "UPDATE field_data_field_profile_telephone_number SET field_profile_telephone_number_value = CONCAT('+44', FLOOR(1000000000 + (RAND() * 100000000)));";   // The query to sanitise field_data_field_profile_telephone_number $telephone_number_query .= "UPDATE field_revision_field_profile_telephone_number SET field_profile_telephone_number_value = CONCAT('+44', FLOOR(1000000000 + (RAND() * 100000000)));";   drush_sql_register_post_sync_op('sanitise_telephone_number', dt('Sanitise field_profile_telephone_number'), $telephone_number_query);   // The query to sanitise field_data_field_profile_twitter_handle $twitter_query = "UPDATE field_data_field_profile_twitter_handle SET field_profile_twitter_handle_value = SUBSTRING(MD5(RAND()) FROM 1 FOR 8);";   // The query to sanitise field_revision_field_profile_twitter_handle $twitter_query .= "UPDATE field_revision_field_profile_twitter_handle SET field_profile_twitter_handle_value = SUBSTRING(MD5(RAND()) FROM 1 FOR 8);";   drush_sql_register_post_sync_op('sanitise_twitter_handle', dt('Sanitise field_profile_twitter_handle'), $twitter_query); }

The hook works by allowing you to specify database queries that will be run as part of the Drush sql-sanitize process.

The first query added is used to sanitise the LinkedIn url:

$linkedin_page_query = "UPDATE field_data_field_profile_linkedin_page SET field_profile_linkedin_page_value = CONCAT('http://uk.linkedin.com/user-name/', FLOOR(100000 + (RAND() * 900000)));";

The database table storing the LinkedIn field data is field_data_field_profile_linkedin_page, and the column containing the actual url string is field_profile_linkedin_page_value. The query will step through each entry and replace the url with the output of CONCAT('http://uk.linkedin.com/user-name/', FLOOR(100000 + (RAND() * 900000))).

CONCAT is the SQL command to concatenate strings together, RAND returns a random floating point number between 0 and 1, and FLOOR returns the largest integer value not greater than the value it’s passed. Putting that together, the real LinkedIn urls are replaced with ‘http://uk.linkedin.com/user-name/’.

LinkedIn seem to use a few different url formats, and this is just the one that I picked as an example.

Don’t forget that Drupal stores revisions of data, so as well as sanitising the field_data_field_profile_linkedin_page table, we need to repeat the query on the field_revision_field_profile_linkedin_page table too. This is easy to overlook!

Now that we have a query built to sanitise both of the LinkedIn tables, we let Drush know about it by calling drush_sql_register_post_sync_op().

drush_sql_register_post_sync_op('sanitise_linkedin_page', dt('Sanitise field_profile_linkedin_page'), $linkedin_page_query);

The first parameter isn’t actually used for anything at the moment. The second parameter is the text that Drush will display when the the sql-sanitize command is run, and the third parameter is the SQL query that you want to run.

Moving on to the telephone number field, we need a new sanitisation query:

$telephone_number_query = "UPDATE field_data_field_profile_telephone_number SET field_profile_telephone_number_value = CONCAT('+44', FLOOR(1000000000 + (RAND() * 100000000)));";

This is very similar to the LinkedIn query above, replacing all user telephone numbers with ‘+44’. Again, don’t forget to do the same on the corresponding revision table before calling drush_sql_register_post_sync_op().

The final example is the twitter username field. This one is a little different as instead of a random number, I’ll generate a random 8 character string. One way to do this is to use the SUBSTRING, MD5 and RAND SQL functions.

$twitter_query = "UPDATE field_data_field_profile_twitter_handle SET field_profile_twitter_handle_value = SUBSTRING(MD5(RAND()) FROM 1 FOR 8);";

This generates an MD5 hash of a random value, which we then take the first 8 characters from. Yet again, don’t forget to do the same thing on the corresponding revision table!

With our hook_drush_sql_sync_sanitize() implementation complete, we can try running it with Drush sql-sanitize. Don’t forget – you do not want to be running this on a production server!

$ drush sql-sanitize   The following post-sync operations will be done on the destination: * Reset passwords and email addresses in users table * Truncate Drupal's sessions table * Sanitize field_profile_linkedin_page * Sanitize field_profile_telephone_number * Sanitize field_profile_twitter_handle   Do you really want to sanitize the current database? (y/n):

All being well, you should see a new item in the bullet list for each call to drush_sql_register_post_sync_op() that you made in your hook.

After answering ‘y’, I checked my database. For the LinkedIn tables, I had entries like:

For the telephone values, I had entries like:

  • +441007009394
  • +441058298812
  • +441070465880

And for the twitter values, I had entries like:

  • 8845fb7e
  • 9af12ccd
  • 43df577c

Not the best twitter usernames in the world, but adequate for testing.

Now that you’ve got a sanitised database, you can export it using Drush sql-dump. Before you do that, though, you should be aware that Drupal’s cache tables in the database can also potentially leak information. To protect against this, you can instruct Drush sql-dump to export just the structure of certain tables, omitting the actual data.

You can specify these structure-only tables directly on the command line, using the --structure-tables-list option (see the sql-dump documentation for more information). Alternatively, you can add a list of tables to the $options['structure-tables'][‘your_ref’] array in your drushrc.php file. That way, you don’t have to type the list each time, just use the --structure-tables-key=your_ref option with sql-dump.

So, with the addition of a small chunk of code, we can generate a completely anonymised database dump very easily. If you keep this in mind during development and add a sanitisation query every time you add a new field which stores personal data, it’s even easier.


Main image by Mike Mozart, released on Flickr.com under the Creative Commons Attribution 2.0 Generic license.

BlogDenial of Service, what you need to know BlogDesign and build a website in a day FAQMy site doesn't load for me, is it down? BlogDrupal Migrate Tricks: Disabling rules before running a migration.
Categories: Elsewhere

Into my Galaxy: GSoC’ 16: Port Search Configuration module; coding weeek #3

Planet Drupal - Tue, 14/06/2016 - 09:56

Google Summer of Code (GSoC’ 16) is entering into the mid-Term evaluation stage. I have been working on the porting search configuration module for Drupal for the past three weeks.

Search configuration module helps to configure the search functionality in Drupal. This is really an important feature when it comes to a content management system like Drupal. I am almost mid-way in the port process as indicated in the timeline of Google Summer of Code.

It is really a great feeling to learn the Drupal concepts this summer. I would like to take this opportunity to share with you some key aspects I had to deal with in the past week.

Once a module is installed and later on if some changes are amended, we need not rewrite the Drupal code. Instead, Drupal gives up the option to make use of a hook, function hook_update_N which helps us to write the update needed and the database schema gets updated accordingly. Currently, since my module is just going into its first release after this port process, I need not write an update function. I just have to make this update in connection with the earlier code. The same hook works for both Drupal 7 and 8.

Another feature is the hook_node_insert, this hook is invoked to insert a new node into the database. So, here we are writing into the database a drupal record. In Drupal 7, this insertion was done by the drupal_write_record(). But,in D8, it has been replaced by the merge query and the entity API. The merge queries support the insert and update options to the database.

In connection with the nodes, another hook function is the hook_node_update. This functionality updates the node contents which has been inserted into the Drupal record (database). This takes in an argument, obviously,  the node has to be passed, for which the updating is intended.

The hook_uninstall gets invoked as the name suggests, in the uninstall process of the modules. The hook removes the variable used by the module so as to free the memory. It also modifies the existing tables if required. The D7 version of Drupal used the  variable_del for removing the variables.

For instance,


// Drupal 7 code

This has been replaced by the delete() of the configuration API.



search_config.settings is the default configuration file.

I will post the updates on this port process regularly. Please wait for the future posts.

Categories: Elsewhere

OpenLucius: Don’t ask what the blockchain can do for you…. Ask what you can do for the blockchain!

Planet Drupal - Tue, 14/06/2016 - 09:50

The title is the abstract. The article is aimed at current reputable CMS web-based frameworks like Drupal, Wordpress, Joomla, Hippo, Rails, Django, etc.

Why this blog post?

Dries Buytaert creator of Drupal raised a simple, yet extensive question on twitter (‘@Dries’):

“What could the Blockchain mean for a CMS like Drupal? #brainstorm”

Let us analyse this question step by step. And then come to a surprising conclusion: it is much more interesting for Drupal to change the question.

Categories: Elsewhere

Simon McVittie: GTK versioning and distributions

Planet Debian - Tue, 14/06/2016 - 03:56

Allison Lortie has provoked a lot of comment with her blog post on a new proposal for how GTK is versioned. Here's some more context from the discussion at the GTK hackfest that prompted that proposal: there's actually quite a close analogy in how new Debian versions are developed.

The problem we're trying to address here is the two sides of a trade-off:

  • Without new development, a library (or an OS) can't go anywhere new
  • New development sometimes breaks existing applications

Historically, GTK has aimed to keep compatible within a major version, where major versions are rather far apart (GTK 1 in 1998, GTK 2 in 2002, GTK 3 in 2011, GTK 4 somewhere in the future). Meanwhile, fixing bugs, improving performance and introducing new features sometimes results in major changes behind the scenes. In an ideal world, these behind-the-scenes changes would never break applications; however, the world isn't ideal. (The Debian analogy here is that as much as we aspire to having the upgrade from one stable release to the next not break anything at all, I don't think we've ever achieved that in practice - we still ask users to read the release notes, even though ideally that wouldn't be necessary.)

In particular, the perceived cost of doing a proper ABI break (a fully parallel-installable GTK 4) means there's a strong temptation to make changes that don't actually remove or change C symbols, but are clearly an ABI break, in the sense that an application that previously worked and was considered correct no longer works. A prominent recent example is the theming changes in GTK 3.20: the ABI in terms of functions available didn't change, but what happens when you call those functions changed in an incompatible way. This makes GTK hard to rely on for applications outside the GNOME release cycle, which is a problem that needs to be fixed (without stopping development from continuing).

The goal of the plan we discussed today is to decouple the latest branch of development, which moves fast and sometimes breaks API, from the API-stable branches, which only get bug fixes. This model should look quite familiar to Debian contributors, because it's a lot like the way we release Debian and Ubuntu.

In Debian, at any given time we have a development branch (testing/unstable) - currently "stretch", the future Debian 9. We also have some stable branches, of which the most recent are Debian 8 "jessie" and Debian 7 "wheezy". Different users of Debian have different trade-offs that lead them to choose one or the other of these. Users who value stability and want to avoid unexpected changes, even at a cost in terms of features and fixes for non-critical bugs, choose to use a stable release, preferably the most recent; they only need to change what they run on top of Debian for OS API changes (for instance webapps, local scripts, or the way they interact with the GUI) approximately every 2 years, or perhaps less often than that with the Debian-LTS project supporting non-current stable releases. Meanwhile, users who value the latest versions and are willing to work with a "moving target" as a result choose to use testing/unstable.

The GTK analogy here is really quite close. In the new versioning model, library users who value stability over new things would prefer to use a stable-branch, ideally the latest; library users who want the latest features, the latest bug-fixes and the latest new bugs would use the branch that's the current focus of development. In practice we expect that the latter would be mostly GNOME projects. There's been some discussion at the hackfest about how often we'd have a new stable-branch: the fastest rate that's been considered is a stable-branch every 2 years, similar to Ubuntu LTS and Debian, but there's no consensus yet on whether they will be that frequent in practice.

How many stable versions of GTK would end up shipped in Debian depends on how rapidly projects move from "old-stable" to "new-stable" upstream, how much those projects' Debian maintainers are willing to patch them to move between branches, and how many versions the release team will tolerate. Once we reach a steady state, I'd hope that we might have 1 or 2 stable-branched versions active at a time, packaged as separate parallel-installable source packages (a lot like how we handle Qt). GTK 2 might well stay around as an additional active version just from historical inertia. The stable versions are intended to be fully parallel-installable, just like the situation with GTK 1.2, GTK 2 and GTK 3 or with the major versions of Qt.

For the "current development" version, I'd anticipate that we'd probably only ship one source package, and do ABI transitions for one version active at a time, a lot like how we deal with libgnome-desktop and the evolution-data-server family of libraries. Those versions would have parallel-installable runtime libraries but non-parallel-installable development files, again similar to libgnome-desktop.

At the risk of stretching the Debian/Ubuntu analogy too far, the intermediate "current development" GTK releases that would accompany a GNOME release are like Ubuntu's non-LTS suites: they're more up to date than the fully stable releases (Ubuntu LTS, which has a release schedule similar to Debian stable), but less stable and not supported for as long.

Hopefully this plan can meet both of its goals: minimize breakage for applications, while not holding back the development of new APIs.

Categories: Elsewhere

Plethora Design Blog: Populate a term reference field with data from another

Planet Drupal - Tue, 14/06/2016 - 02:00

We had added a new term reference field to one of our content types, but it already had an term reference field in place, and had data in it. We needed to populate the new term reference field with the data from the old field, so that we could then delete the old field. 

Categories: Elsewhere

Talha Paracha: GSoC’16 – Pubkey Encrypt – Week 3 Report

Planet Drupal - Tue, 14/06/2016 - 02:00

The basic idea behind my project Pubkey Encrypt is to encrypt data using users’ login credentials. A tight integration with the Key module is one of the most important parts in my project. So I started the week analyzing that module’s architecture. It deals with administering keys which could be used for the purposes of encryption, authentication etc. Anyone can modify the key handling logic as per the business needs since the module allows for much extensibility via these three plugin systems:

Categories: Elsewhere

Hook 42: Montreal or Bust! Hook 42 is going to Drupal North!

Planet Drupal - Tue, 14/06/2016 - 00:39
Monday, June 13, 2016

The fabulous duo of K2 (Kristin Bradham) and Lindsay (Lindsay Gaudinier) are off on another trip to get their Drupal on! After having such a great time meeting up with other Drupalers and listening to ghost stories at DrupalCon in New Orleans, K2 and Lindsay are heading up north to the gorgeous multilingual city of Montreal.

Kicking things off, K2 will present her “Conversational Drupal” session that was a hit at BADCamp and Stanford Drupal Camp. Grab a coffee and bagel, and enjoy the eye-opener session on Friday morning.  This session is aimed for new Drupalers, although not necessarily new web developers.  K2 will give clear and simple explanations of frequently used Drupal terms. This session is great to start off a Drupal Convention because it will familiarize you with Drupal and encourage you to meet a few other attendees.

Later on Friday, Lindsay and K2 will lead a session on Drupal and SEO. Search Engine Optimization (SEO) is vital to websites that want to increase their visibility and get to the top rank on search engines. Navigating the sea of Drupal SEO modules can be daunting when all you want to do is get the basics covered effectively. They will go over SEO terms and terminology, modules and their default configuration, and tips and tricks on how to make your Drupal site rank higher with the search engines.   

But K2 and Lindsay aren’t just there to present, they’re also looking forward to learning from other Drupalers. They look forward to collaborating with friends and peers at Evolving Web, Lingotek, Kafei Interactive, and Digital Echidna. K2 is looking forward to Cathy Theys’ keynote speech: “Thoughtfulness and Drupal”.  Other great sessions K2 is looking forward to attending include: “Embracing Open-source Thinking for Better Sustainability”, “Object Oriented Programming Design Patterns in Drupal 8”, and “One Drupal to Rule Them All” just to name a few.

Lindsay is excited about attending the following sessions: “Speed up your front-end drupal development using partials”, “Planning a real-life D8 migration”, and “Lessons Learned: Drupal 8 Module Porting”.

So why should you go? Be a part of the Drupal community. Let's make Drupal great now and in the future. Music, culture, bagels, smoked-meat, coffee, and poutine?! If you can’t go, Sprints are being held on Thursday and Sunday - you can join and contribute remotely.  Check the Drupal North website for information.

We hope to see you there! Montreal or bust!

Kristin Bradham - K2 Lindsay Gaudinier Topics: Services:
Categories: Elsewhere

DrupalCon News: Drupal: Faster & Stronger Than Ever

Planet Drupal - Tue, 14/06/2016 - 00:39

When trying to resolve an issue in Drupal, the most common question you’ll hear is, “Have you cleared the cache?” The question is so ubiquitous that we often forget that caching – and more importantly performance – has been an important part of Drupal for a long time. As Drupal has matured, many sites have started to employ additional performance and scaling techniques: utilizing CDNs for additional caching, making optimizations in the theme layer for faster interaction and automating infrastructure to respond to changing demands.

Categories: Elsewhere

Reproducible builds folks: First alpha release of reprotest

Planet Debian - Tue, 14/06/2016 - 00:15

Author: ceridwen

The first, very-alpha release of reprotest is now out at PyPi. It should hit Debian experimental later this week. While it only builds on an existing system (as I'm still working on support for virtualization), it can now check its own reproducibility, which it does in its own tests, both using setuptools and debuild. Unfortunately, setuptools seems to generate file-order-dependent binaries, meaning python setup.py bdist creates unreproducible binaries. With debuild, reprotest probably would be reproducible with the modified packages from the Reproducible Builds project, though I haven't tested that yet. It tests 'captures_environment', 'fileordering' (renamed from 'filesystem'), 'home', 'kernel', 'locales', 'path', 'time', 'timezone', and 'umask'. The other variations require superuser privileges and modifications that would be unsafe to make to a running system, so they will only be enabled in the containers.

The next major part of the project is integrating autopkgtests's container management system into reprotest. For the curious, autopkgtest is composed of a main program, adt-run, which then calls other command-line programs, adt-virt-chroot, adt-virt-lxd, adt-virt-schroot, adt-virt-null, adt-virt-schroot, and adt-virt-qemu, that communicate with the containers. (The autopkgtest maintainer has since renamed the programs, but the underlying structure remains the same.) I think this is a bit of an odd design but it works well for my purposes since the container programs already have existing CLIs that reprotest can use.

Categories: Elsewhere

Drupal @ Penn State: Building conversational interfaces in Drupal

Planet Drupal - Mon, 13/06/2016 - 22:56

I know Dreis caused a lot of smiles when he used Amazon Echo and Drupal 8 to be notified about “Awesome Sauce” going on sale. The future is bright and requires increasingly more ways of engaging with technology. But what if you wanted to start to have a conversation without Echo to do it? What if we wanted to progressively enhance the browser experience to include lessons learned from conversational input technologies.

Categories: Elsewhere

Chapter Three: The Slice Template

Planet Drupal - Mon, 13/06/2016 - 20:17

For the past two to three years, we’ve been evolving a flexible design solution for marketing pages. We call it the Slice Template.

What is the Slice Template?

The Slice Template is kind of like a layer cake. It’s  a design structure that enables site authors  to create web pages out of modular, horizontal components that span the width of the browser. Popularized by responsive design, this pattern has become a web standard. That’s because it can support a myriad of content.

Our team started calling these components slices early on. You could call them that too. We can make it our little thing :)

Categories: Elsewhere

Pantheon Blog: Performing Drupal Content Migrations on Pantheon

Planet Drupal - Mon, 13/06/2016 - 20:11
As a developer or site builder, there will come a time when you have a lot of content to import into your Pantheon site—a need that will go beyond Feeds and will perhaps have related content, entity references and the like—that will make importing content a challenge. This path will lead you to Drupal’s Migrate module. In Drupal 8, this module is in core.
Categories: Elsewhere

Satyam Zode: GSoC 2016 Week 2 and 3: Reproducible Builds in Debian

Planet Debian - Mon, 13/06/2016 - 19:22

This is report on my previous week activities with Debian Reproducible-Builds.

In last 10 days, I had build different Debain packages at my own using prebuilder to experience the reproducibility issues. I am thankful to deki and Lunar for suggesting me to do that task. Based on this experience, I managed to find more use cases for –hide=profiles specification.

I also researched differences of different unreproducible Debian packages on http://tests.reproducible-builds.org . There are many packages available for examination.

In brief I did following tasks:

  • I worked on –hide=profiles specification. Mostly, I tried to find use cases.
  • I made changes to https://wiki.debian.org/ReproducibleBuilds/HideProfilesSpecification added detailed information in each use case.
  • Read documentation on argcomplete python module and had some hands on experience with module. Purpose of doing this was to add argument completion feature to Diffoscope. pabs had filed bug report for this #826711. I am implementing this feature and discussing issues with pabs as well as researching diffs side-by-side to generate more use cases. Here, Thanks to pabs for guidance and support :)
  • I went through different software to see how they are ignoring the stuff. Those are following:

Upcoming week will be an important as well as fun week because I will be implementing the use cases. Right now, I am currently looking at different softwares which ignores stuff and taking notes of it. So that, it will help me during implementing solution of use cases. I am also looking forward to feedback from community on use cases and CLI interfaces. Have a great week :)

Categories: Elsewhere

Appnovation Technologies: 8 Things to look for in a Managed Services Provider

Planet Drupal - Mon, 13/06/2016 - 19:19


This is the executive guide to Managed Services.

Categories: Elsewhere

Olivier Grégoire: Third week at GSoC

Planet Debian - Mon, 13/06/2016 - 18:57

I begin this week by finish my QT tutorial. With that new knowledge, I was able to implemet my method launchSmartInfo(int) on LRC


After that, I needed to implement the gnome client too. I followed the tutorial on QT so I thought I can just learn GTK+ by reading the code. Finally, I just lost a lot of time by doing that and I didn't learn a lot. In response to that problem I finally use an GTK+ tutorial.

I began to try to show an transparente window with some text in front of the call view. To do that, I want to use clutter library


Conclusion: as you can see, I lost a lot of time in this GUI learning. Now it's done, I can move forward! :)

Categories: Elsewhere

Olivier Grégoire: Third week at GSoC

Planet Debian - Mon, 13/06/2016 - 18:57

I begin this week by finish my QT tutorial. With that new knowledge, I was able to implemet my method launchSmartInfo(int) on LRC


After that, I needed to implement the gnome client too. I followed the tutorial on QT so I thought I can just learn GTK+ by reading the code. Finally, I just lost a lot of time by doing that and I didn't learn a lot. In response to that problem I finally use an GTK+ tutorial.

I began to try to show n transparente window with some text in front of the call view. To do that, I want to use clutter library


Conclusion: as you can see, I lost a lot of time in this GUI learning. Now it's done, I can move forward! :)

Categories: Elsewhere

Kevin Avignon: GSOC 2016 : The end

Planet Debian - Mon, 13/06/2016 - 18:48
Hi guys, Well because of health problems, I won’t be able to meet the expectation for the midterm evaluation coming next week and I will have to step down from the program. It pains me to do so since the project was taking me out of my comfort zone and forcing to adapt to a … Continue reading GSOC 2016 : The end →
Categories: Elsewhere

Scarlett Clark: Debian: KDE: Reproducible Builds week 3, Randa Platforms Equals Busy times!

Planet Debian - Mon, 13/06/2016 - 18:41


I am a smidgen late on post due to travel, sorry!


For this I was able to come up with a patch for kconfig_compiler to encode generated files to utf-8.
Review request is here:

This has been approved and I will be pushing it as soon as I patch the qt5 frameworks version.


WIP this has been a steep learning curve, according to the notes it was an easy embedded kernel version, that was not the case! After grueling hours of
trying to sort out randomness in debug output I finally narrowed it down to cases where QStringLiteral was used and there were non letter characters eg. (” <") These were causing debug symbols to generate with ( lambda() ) which caused unreproducible symbol/debug files. It is now a case of fixing all of these in the code to use QString::fromUtf8 seems to fix this. I am working on a mega patch for upstream and it should be ready early in the week.

This last week I spent a large portion making my through a mega patch for kxmlgui, when it was suggested to me to write a small qt app
to test QStringLiteral isolated and sure enough two build were byte for byte identical. So this means that QStringLiteral may not be the issue at all. With some
more assistance I am to expand my test app with several QStringLiterals of varying lengths, we have suspicion it is a padding issue, which complicates things.

On the KDE front, I have arrived safe and sound in Randa and aside from some major jetlag, reproducible builds, I have been quite busy with the KDE CI. I am reworking
my DSL to use friendly yaml files to generate jobs for all platforms ( linux, android, osx, windows, snappy, flatpak ) and can easily be extended later.
Major workpoints so far for Randa:

  • I have delegated the windows backend to Hannah
  • Andreas has provided a docker build for Android, and upon initial testing it will work great.
  • I have recruited several nice folks to assist me with my snappy efforts.


  • Add all the nodes to sandbox
  • Finish yaml CI files
  • OSX re-setup with new macmini

Have a great day.

Categories: Elsewhere

Drupal core announcements: Drupal core security release window on Wednesday, June 15, 2016

Planet Drupal - Mon, 13/06/2016 - 18:40
Start:  2016-06-15 00:00 - 23:30 America/Chicago Organizers:  xjm catch David_Rothstein mlhess Event type:  Online meeting (eg. IRC meeting)

The monthly security release window for Drupal 8 and 7 core will take place on Wednesday, June 15.

This does not mean that a Drupal core security release will necessarily take place on that date for any of the Drupal 8 or 7 branches, only that you should watch for one (and be ready to update your Drupal sites in the event that the Drupal security team decides to make a release).

There will be no bug fix or feature release on this date. The next window for a Drupal core patch (bug fix) release for all branches is Wednesday, July 06. The next scheduled minor (feature) release for Drupal 8 will be on Wednesday, October 5.

Drupal 6 is end-of-life and will not receive further security releases.

For more information on Drupal core release windows, see the documentation on release timing and security releases, and the discussion that led to this policy being implemented.

Categories: Elsewhere


Subscribe to jfhovinne aggregator