Show a cover letter.

GET /api/covers/14731/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 14731,
    "url": "https://patchwork.libcamera.org/api/covers/14731/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/14731/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20211123224015.3619282-1-kieran.bingham@ideasonboard.com>",
    "date": "2021-11-23T22:40:00",
    "name": "[libcamera-devel,00/15] Use pragma once",
    "submitter": {
        "id": 4,
        "url": "https://patchwork.libcamera.org/api/people/4/?format=api",
        "name": "Kieran Bingham",
        "email": "kieran.bingham@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/14731/mbox/",
    "series": [
        {
            "id": 2749,
            "url": "https://patchwork.libcamera.org/api/series/2749/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2749",
            "date": "2021-11-23T22:40:00",
            "name": "Use pragma once",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/2749/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/14731/comments/",
    "headers": {
        "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>",
        "X-Original-To": "parsemail@patchwork.libcamera.org",
        "Delivered-To": "parsemail@patchwork.libcamera.org",
        "Received": [
            "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 26D17BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 23 Nov 2021 22:40:25 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1FACF603F9;\n\tTue, 23 Nov 2021 23:40:23 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BDF2260121\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 23 Nov 2021 23:40:20 +0100 (CET)",
            "from Monstersaurus.ksquared.org.uk.beta.tailscale.net\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 44E7AA1B;\n\tTue, 23 Nov 2021 23:40:20 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"fkgI9Axj\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1637707220;\n\tbh=8QM14fT99iVDbuVw8QSo8F9bUNQCfDhJeDn67WynikE=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=fkgI9AxjHhPBE3g1OEA0Au4z2pxE51FEBYaKyEfkKMWC/rF0TNeE8sI1WkKmR75YA\n\tjXq36PaJKBFziPn0F+fAn8PKhw/kaYOOkSqvMB0ehMLMZsaHMVkihAnacyls6c+QFX\n\tEIwj+tha8E8JxSHNJHZOrTREnSr+u986ElJicIeQ=",
        "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>",
        "To": "libcamera devel <libcamera-devel@lists.libcamera.org>",
        "Date": "Tue, 23 Nov 2021 22:40:00 +0000",
        "Message-Id": "<20211123224015.3619282-1-kieran.bingham@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.30.2",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH 00/15] Use pragma once",
        "X-BeenThere": "libcamera-devel@lists.libcamera.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "<libcamera-devel.lists.libcamera.org>",
        "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>",
        "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>",
        "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>",
        "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "We've always used the following pattern to maintain idempotency with\nheaders:\n\n #ifndef __PATH_TO_FILE_H__\n #define __PATH_TO_FILE_H__\n ..\n #endif // __PATH_TO_FILE_H__\n\nThis is fine, and long established, but makes for awkward names in cases\nsuch as:\n  src/ipa/ipu3/algorithm/algorithm.h\n\nrequiring duplication, and constant concern over updating these names\nwhen files are moved or renamed.\n\nRemove all ifndef usages and ensure consistency across the project using\n\n #pragma once\n\nThe changes are broken down into grouped components to ease review.\n\n\nKieran Bingham (15):\n  libcamera: Convert to pragma once\n  libcamera: base: Convert to pragma once\n  libcamera: internal: Convert to pragma once\n  libcamera: ipa: Convert to pragma once\n  libcamera: pipeline: Convert to pragma once\n  android: Convert to pragma once\n  cam: Convert to pragma once\n  gstreamer: Convert to pragma once\n  ipa: ipu3: Convert to pragma once\n  ipa: libipa: Convert to pragma once\n  lc-compliance: Convert to pragma once\n  qcam: Convert to pragma once\n  test: Convert to pragma once\n  utils: Convert to pragma once\n  v4l2: Convert to pragma once\n\n include/libcamera/base/backtrace.h                       | 6 ++----\n include/libcamera/base/bound_method.h                    | 6 ++----\n include/libcamera/base/class.h                           | 6 ++----\n include/libcamera/base/event_dispatcher.h                | 6 ++----\n include/libcamera/base/event_dispatcher_poll.h           | 6 ++----\n include/libcamera/base/event_notifier.h                  | 6 ++----\n include/libcamera/base/file.h                            | 6 ++----\n include/libcamera/base/flags.h                           | 6 ++----\n include/libcamera/base/log.h                             | 6 ++----\n include/libcamera/base/message.h                         | 6 ++----\n include/libcamera/base/object.h                          | 6 ++----\n include/libcamera/base/semaphore.h                       | 6 ++----\n include/libcamera/base/signal.h                          | 6 ++----\n include/libcamera/base/span.h                            | 5 +----\n include/libcamera/base/thread.h                          | 6 ++----\n include/libcamera/base/timer.h                           | 6 ++----\n include/libcamera/base/utils.h                           | 6 ++----\n include/libcamera/camera.h                               | 6 ++----\n include/libcamera/camera_manager.h                       | 6 ++----\n include/libcamera/compiler.h                             | 6 ++----\n include/libcamera/control_ids.h.in                       | 5 +----\n include/libcamera/controls.h                             | 5 +----\n include/libcamera/file_descriptor.h                      | 6 ++----\n include/libcamera/formats.h.in                           | 6 ++----\n include/libcamera/framebuffer.h                          | 6 ++----\n include/libcamera/framebuffer_allocator.h                | 6 ++----\n include/libcamera/geometry.h                             | 5 +----\n include/libcamera/internal/bayer_format.h                | 6 ++----\n include/libcamera/internal/byte_stream_buffer.h          | 6 ++----\n include/libcamera/internal/camera.h                      | 6 ++----\n include/libcamera/internal/camera_controls.h             | 6 ++----\n include/libcamera/internal/camera_sensor.h               | 6 ++----\n include/libcamera/internal/camera_sensor_properties.h    | 6 ++----\n include/libcamera/internal/control_serializer.h          | 6 ++----\n include/libcamera/internal/control_validator.h           | 6 ++----\n include/libcamera/internal/delayed_controls.h            | 6 ++----\n include/libcamera/internal/device_enumerator.h           | 6 ++----\n include/libcamera/internal/device_enumerator_sysfs.h     | 6 ++----\n include/libcamera/internal/device_enumerator_udev.h      | 6 ++----\n include/libcamera/internal/formats.h                     | 5 +----\n include/libcamera/internal/framebuffer.h                 | 6 ++----\n include/libcamera/internal/ipa_data_serializer.h         | 6 ++----\n include/libcamera/internal/ipa_manager.h                 | 6 ++----\n include/libcamera/internal/ipa_module.h                  | 6 ++----\n include/libcamera/internal/ipa_proxy.h                   | 6 ++----\n include/libcamera/internal/ipc_pipe.h                    | 6 ++----\n include/libcamera/internal/ipc_pipe_unixsocket.h         | 6 ++----\n include/libcamera/internal/ipc_unixsocket.h              | 5 +----\n include/libcamera/internal/mapped_framebuffer.h          | 6 ++----\n include/libcamera/internal/media_device.h                | 6 ++----\n include/libcamera/internal/media_object.h                | 6 ++----\n include/libcamera/internal/pipeline_handler.h            | 6 ++----\n include/libcamera/internal/process.h                     | 6 ++----\n include/libcamera/internal/pub_key.h                     | 6 ++----\n include/libcamera/internal/source_paths.h                | 6 ++----\n include/libcamera/internal/sysfs.h                       | 6 ++----\n include/libcamera/internal/tracepoints.h.in              | 6 ++----\n include/libcamera/internal/v4l2_device.h                 | 6 ++----\n include/libcamera/internal/v4l2_pixelformat.h            | 6 ++----\n include/libcamera/internal/v4l2_subdevice.h              | 6 ++----\n include/libcamera/internal/v4l2_videodevice.h            | 6 ++----\n include/libcamera/ipa/ipa_controls.h                     | 6 ++----\n include/libcamera/ipa/ipa_interface.h                    | 6 ++----\n include/libcamera/ipa/ipa_module_info.h                  | 6 ++----\n include/libcamera/ipa/raspberrypi.h                      | 6 ++----\n include/libcamera/logging.h                              | 6 ++----\n include/libcamera/pixel_format.h                         | 6 ++----\n include/libcamera/property_ids.h.in                      | 5 +----\n include/libcamera/request.h                              | 6 ++----\n include/libcamera/stream.h                               | 6 ++----\n include/libcamera/transform.h                            | 5 +----\n include/libcamera/version.h.in                           | 6 ++----\n src/android/camera_buffer.h                              | 5 ++---\n src/android/camera_capabilities.h                        | 6 ++----\n src/android/camera_device.h                              | 6 ++----\n src/android/camera_hal_config.h                          | 5 ++---\n src/android/camera_hal_manager.h                         | 6 ++----\n src/android/camera_metadata.h                            | 6 ++----\n src/android/camera_ops.h                                 | 6 ++----\n src/android/camera_request.h                             | 6 ++----\n src/android/camera_stream.h                              | 6 ++----\n src/android/camera_worker.h                              | 6 ++----\n src/android/jpeg/encoder.h                               | 6 ++----\n src/android/jpeg/encoder_libjpeg.h                       | 6 ++----\n src/android/jpeg/exif.h                                  | 6 ++----\n src/android/jpeg/post_processor_jpeg.h                   | 6 ++----\n src/android/jpeg/thumbnailer.h                           | 6 ++----\n src/android/post_processor.h                             | 6 ++----\n src/android/yuv/post_processor_yuv.h                     | 6 ++----\n src/cam/camera_session.h                                 | 6 ++----\n src/cam/drm.h                                            | 6 ++----\n src/cam/event_loop.h                                     | 6 ++----\n src/cam/file_sink.h                                      | 6 ++----\n src/cam/frame_sink.h                                     | 6 ++----\n src/cam/image.h                                          | 6 ++----\n src/cam/kms_sink.h                                       | 6 ++----\n src/cam/main.h                                           | 6 ++----\n src/cam/options.h                                        | 6 ++----\n src/cam/stream_options.h                                 | 6 ++----\n src/gstreamer/gstlibcamera-utils.h                       | 5 +----\n src/gstreamer/gstlibcameraallocator.h                    | 5 +----\n src/gstreamer/gstlibcamerapad.h                          | 5 +----\n src/gstreamer/gstlibcamerapool.h                         | 6 +-----\n src/gstreamer/gstlibcameraprovider.h                     | 6 +-----\n src/gstreamer/gstlibcamerasrc.h                          | 5 +----\n src/ipa/ipu3/algorithms/agc.h                            | 6 ++----\n src/ipa/ipu3/algorithms/algorithm.h                      | 6 ++----\n src/ipa/ipu3/algorithms/awb.h                            | 5 ++---\n src/ipa/ipu3/algorithms/blc.h                            | 6 ++----\n src/ipa/ipu3/algorithms/tone_mapping.h                   | 6 ++----\n src/ipa/ipu3/ipa_context.h                               | 6 ++----\n src/ipa/libipa/camera_sensor_helper.h                    | 6 ++----\n src/ipa/libipa/histogram.h                               | 6 ++----\n src/lc-compliance/environment.h                          | 6 ++----\n src/lc-compliance/simple_capture.h                       | 6 ++----\n src/libcamera/pipeline/ipu3/cio2.h                       | 6 ++----\n src/libcamera/pipeline/ipu3/frames.h                     | 6 ++----\n src/libcamera/pipeline/ipu3/imgu.h                       | 6 ++----\n src/libcamera/pipeline/raspberrypi/dma_heaps.h           | 6 ++----\n src/libcamera/pipeline/raspberrypi/rpi_stream.h          | 6 ++----\n src/libcamera/pipeline/rkisp1/rkisp1_path.h              | 6 ++----\n src/libcamera/pipeline/simple/converter.h                | 5 +----\n src/qcam/dng_writer.h                                    | 6 ++----\n src/qcam/format_converter.h                              | 6 ++----\n src/qcam/main_window.h                                   | 6 ++----\n src/qcam/message_handler.h                               | 6 ++----\n src/qcam/viewfinder.h                                    | 6 ++----\n src/qcam/viewfinder_gl.h                                 | 6 ++----\n src/qcam/viewfinder_qt.h                                 | 6 ++----\n src/v4l2/v4l2_camera.h                                   | 5 +----\n src/v4l2/v4l2_camera_file.h                              | 5 +----\n src/v4l2/v4l2_camera_proxy.h                             | 5 +----\n src/v4l2/v4l2_compat_manager.h                           | 5 +----\n test/gstreamer/gstreamer_test.h                          | 5 +----\n test/libtest/buffer_source.h                             | 6 ++----\n test/libtest/camera_test.h                               | 6 ++----\n test/libtest/test.h                                      | 6 ++----\n test/media_device/media_device_test.h                    | 6 ++----\n test/serialization/serialization_test.h                  | 6 ++----\n test/v4l2_subdevice/v4l2_subdevice_test.h                | 5 +----\n test/v4l2_videodevice/v4l2_videodevice_test.h            | 6 ++----\n utils/gen-header.sh                                      | 9 ++-------\n .../libcamera_templates/core_ipa_interface.h.tmpl        | 5 +----\n .../libcamera_templates/core_ipa_serializer.h.tmpl       | 5 +----\n .../libcamera_templates/module_ipa_interface.h.tmpl      | 5 +----\n .../libcamera_templates/module_ipa_proxy.h.tmpl          | 5 +----\n .../libcamera_templates/module_ipa_serializer.h.tmpl     | 5 +----\n 147 files changed, 268 insertions(+), 590 deletions(-)"
}