aboutsummaryrefslogtreecommitdiffhomepage
path: root/infra/base-images/base-msan-builder/packages/systemd.py
blob: 5cb6d60bedc5787f4cb5e4df8f61887bdfe5aad6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env python
# Copyright 2017 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
################################################################################

from __future__ import print_function
import glob
import os
import subprocess

import package
import wrapper_utils


class Package(package.Package):
  """systemd package."""

  def __init__(self, apt_version):
    super(Package, self).__init__('systemd', apt_version)

  def PreBuild(self, source_directory, env, custom_bin_dir):
    # Hide msan symbols from nm. the systemd build system uses this to find
    # undefined symbols and errors out if it does.
    nm_wrapper = (
        '#!/bin/bash\n'
        '/usr/bin/nm "$@" | grep -E -v "U (__msan|memset)"\n'
        'exit ${PIPESTATUS[0]}\n')

    wrapper_utils.InstallWrapper(custom_bin_dir, 'nm', nm_wrapper,
                                 [wrapper_utils.DpkgHostArchitecture() + '-nm'])