Compare commits
93 Commits
Author | SHA256 | Date | |
---|---|---|---|
0c09bc2888 | |||
|
e19a023a4c | ||
|
7ac50ff8df | ||
afd808a5cc | |||
|
5d0a3d7add | ||
4ac88dfeac | |||
797d599da6 | |||
|
eb38341a77 | ||
cca665be35 | |||
|
19437b4dc3 | ||
00c0d44912 | |||
|
d1e2d8755c | ||
c382ac7bd4 | |||
|
dbc62ecbe2 | ||
|
19beb5ecdd | ||
6d429ab011 | |||
|
92ae362332 | ||
58c601d3c9 | |||
|
1c7ffb263a | ||
8253462219 | |||
|
2fbda5ada7 | ||
|
3ccfc640c0 | ||
6f542e757e | |||
|
d3d0b3ac87 | ||
a7156071ee | |||
|
94f2199ad6 | ||
f2bca36280 | |||
d4859c0c39 | |||
|
8feb252b1a | ||
744bb163d0 | |||
|
84c3d94539 | ||
805deaa8d5 | |||
|
a0e0e80503 | ||
181844c71f | |||
|
9873083219 | ||
0475060287 | |||
|
af148bfe92 | ||
1d2d4daec6 | |||
|
c208db6317 | ||
4355999b15 | |||
|
f86dd33d2a | ||
f8cb06242b | |||
|
82b56757b6 | ||
c89be0e753 | |||
|
3849940e62 | ||
c76a4b406f | |||
|
9e83c717b1 | ||
32f8610898 | |||
|
5aca04f181 | ||
|
d15e015a7e | ||
9d966ba074 | |||
|
dbaad9eaa3 | ||
ba80110d41 | |||
|
8ef133491d | ||
16b64efc4a | |||
|
aba48c0758 | ||
11e8618b6d | |||
|
c3400574a6 | ||
a45bff4dd7 | |||
|
3c3e0f5248 | ||
|
cd49e7c003 | ||
99a5adff8c | |||
|
95f3dc5ca1 | ||
cae6ecba1b | |||
|
eddf136477 | ||
2d4f992658 | |||
|
eea54e3002 | ||
dc852b1a72 | |||
|
c70bd4f3aa | ||
6403832ed3 | |||
|
d8ec984f15 | ||
|
80cb318e06 | ||
|
1837b2cc6f | ||
8289c88f59 | |||
|
1de33e5ed7 | ||
71025617af | |||
|
ed96fbc263 | ||
406ce2f2f8 | |||
|
592ff6fe71 | ||
|
05b518f6f2 | ||
|
8bc61fbac8 | ||
9356f96906 | |||
|
ef023c47d5 | ||
841df7191b | |||
|
5a38704633 | ||
81562fb113 | |||
|
60ec12d0da | ||
cd53c573be | |||
|
d31abd614c | ||
75a2c77b5a | |||
|
7f57bf9d38 | ||
|
d8c1e8b230 | ||
|
c99db130a3 |
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3d029110e7eddb895a70e0ee146e160ea2952005e18be71f49cdd7f3c04bbb79
|
||||
size 13419252
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2422e824dbec0cb268d3741dcbf3f2b23a477437052300f181fa7b6c7c364fef
|
||||
size 252310768
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a9c7d6aff6cb0c084c14aa8c1261b80b2b32c7f03e8910658db037671b893e25
|
||||
size 13430044
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a6c9a44d2a167f04fff5d4175ad61e934c6177852ab8ab56c319f242a73146e2
|
||||
size 249145892
|
91
seamonkey-2.53.20-system-av1.patch
Normal file
91
seamonkey-2.53.20-system-av1.patch
Normal file
@@ -0,0 +1,91 @@
|
||||
diff -Nrup mozilla/config/external/moz.build mozilla-OK/config/external/moz.build
|
||||
--- mozilla/config/external/moz.build 2024-12-11 23:05:11.000000000 +0300
|
||||
+++ mozilla-OK/config/external/moz.build 2024-12-18 22:25:57.015364278 +0300
|
||||
@@ -32,8 +32,9 @@ if not CONFIG['MOZ_SYSTEM_LIBVPX']:
|
||||
external_dirs += ['media/libvpx']
|
||||
|
||||
if CONFIG['MOZ_AV1']:
|
||||
- external_dirs += ['media/libaom']
|
||||
- external_dirs += ['media/libdav1d']
|
||||
+ if not CONFIG['MOZ_SYSTEM_AV1']:
|
||||
+ external_dirs += ['media/libaom']
|
||||
+ external_dirs += ['media/libdav1d']
|
||||
|
||||
if not CONFIG['MOZ_SYSTEM_PNG']:
|
||||
external_dirs += ['media/libpng']
|
||||
diff -Nrup mozilla/config/system-headers.mozbuild mozilla-OK/config/system-headers.mozbuild
|
||||
--- mozilla/config/system-headers.mozbuild 2024-12-11 23:05:11.000000000 +0300
|
||||
+++ mozilla-OK/config/system-headers.mozbuild 2024-12-18 22:25:57.015364278 +0300
|
||||
@@ -1289,6 +1289,14 @@ if CONFIG['MOZ_ENABLE_LIBPROXY']:
|
||||
'proxy.h',
|
||||
]
|
||||
|
||||
+if CONFIG['MOZ_SYSTEM_AV1']:
|
||||
+ system_headers += [
|
||||
+ 'aom/aom_decoder.h',
|
||||
+ 'aom/aomdx.h',
|
||||
+ 'aom/aom_image.h',
|
||||
+ 'dav1d/dav1d.h',
|
||||
+ ]
|
||||
+
|
||||
if CONFIG['MOZ_SYSTEM_LIBVPX']:
|
||||
system_headers += [
|
||||
'vpx_mem/vpx_mem.h',
|
||||
diff -Nrup mozilla/dom/media/platforms/moz.build mozilla-OK/dom/media/platforms/moz.build
|
||||
--- mozilla/dom/media/platforms/moz.build 2024-12-11 23:05:11.000000000 +0300
|
||||
+++ mozilla-OK/dom/media/platforms/moz.build 2024-12-18 22:25:57.016364270 +0300
|
||||
@@ -74,6 +74,11 @@ if CONFIG['MOZ_AV1']:
|
||||
'agnostic/AOMDecoder.cpp',
|
||||
'agnostic/DAV1DDecoder.cpp',
|
||||
]
|
||||
+ if CONFIG['MOZ_SYSTEM_AV1']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS']
|
||||
+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS']
|
||||
+ CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS']
|
||||
+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS']
|
||||
|
||||
if CONFIG['MOZ_APPLEMEDIA']:
|
||||
EXPORTS += [
|
||||
diff -Nrup mozilla/toolkit/moz.configure mozilla-OK/toolkit/moz.configure
|
||||
--- mozilla/toolkit/moz.configure 2024-12-11 23:05:11.000000000 +0300
|
||||
+++ mozilla-OK/toolkit/moz.configure 2024-12-18 22:35:00.174271221 +0300
|
||||
@@ -414,8 +414,23 @@ def av1(value):
|
||||
if value:
|
||||
return True
|
||||
|
||||
+option('--with-system-av1',
|
||||
+ help="Use system av1 (located with pkgconfig)")
|
||||
|
||||
-@depends(target, when=av1 & compile_environment)
|
||||
+system_libaom_info = pkg_check_modules('MOZ_SYSTEM_LIBAOM', 'aom >= 1.0.0',
|
||||
+ when='--with-system-av1')
|
||||
+
|
||||
+system_libdav1d_info = pkg_check_modules('MOZ_SYSTEM_LIBDAV1D', 'dav1d >= 0.1.1',
|
||||
+ when='--with-system-av1')
|
||||
+
|
||||
+@depends(system_libaom_info, system_libdav1d_info)
|
||||
+def system_av1(system_libaom_info, system_libdav1d_info):
|
||||
+ has_av1_libs = False
|
||||
+ if system_libaom_info and system_libdav1d_info:
|
||||
+ has_av1_libs = True
|
||||
+ return has_av1_libs
|
||||
+
|
||||
+@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment)
|
||||
def dav1d_asm(target):
|
||||
if target.cpu in ("aarch64", "x86", "x86_64"):
|
||||
return True
|
||||
@@ -431,6 +446,7 @@ set_config('MOZ_DAV1D_ASM', dav1d_asm)
|
||||
set_define('MOZ_DAV1D_ASM', dav1d_asm)
|
||||
set_config('MOZ_AV1', av1)
|
||||
set_define('MOZ_AV1', av1)
|
||||
+set_config('MOZ_SYSTEM_AV1', depends_if(system_av1)(lambda _: True))
|
||||
|
||||
# Built-in fragmented MP4 support.
|
||||
# ==============================================================
|
||||
@@ -1745,4 +1761,4 @@ def android_package_name(value, moz_app_
|
||||
return 'org.mozilla.fennec_aurora'
|
||||
return 'org.mozilla.%s' % moz_app_name
|
||||
|
||||
-set_config('ANDROID_PACKAGE_NAME', android_package_name)
|
||||
\ No newline at end of file
|
||||
+set_config('ANDROID_PACKAGE_NAME', android_package_name)
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0806539ebce8ffe4bba0efd856d3fbb19ef69118e338335b890533ca7d075c5a
|
||||
size 13727360
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c64a3e8e9082c71ed46a962a96c6a937932a466a6487ffc575a9ba9688f66c5b
|
||||
size 248121808
|
307
seamonkey-2.53.21-bmo1332139.patch
Normal file
307
seamonkey-2.53.21-bmo1332139.patch
Normal file
@@ -0,0 +1,307 @@
|
||||
diff -Nrup -U 8 a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc
|
||||
--- a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc 2020-02-18 02:37:58.000000000 +0300
|
||||
+++ b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc 2020-03-02 00:34:19.000000000 +0300
|
||||
@@ -79,17 +79,19 @@ VP9EncoderImpl::VP9EncoderImpl()
|
||||
num_temporal_layers_(0),
|
||||
num_spatial_layers_(0),
|
||||
num_cores_(0),
|
||||
is_flexible_mode_(false),
|
||||
frames_encoded_(0),
|
||||
// Use two spatial when screensharing with flexible mode.
|
||||
spatial_layer_(new ScreenshareLayersVP9(2)) {
|
||||
memset(&codec_, 0, sizeof(codec_));
|
||||
+#ifdef LIBVPX_SVC
|
||||
memset(&svc_params_, 0, sizeof(vpx_svc_extra_cfg_t));
|
||||
+#endif
|
||||
uint32_t seed = rtc::Time32();
|
||||
srand(seed);
|
||||
}
|
||||
|
||||
VP9EncoderImpl::~VP9EncoderImpl() {
|
||||
Release();
|
||||
}
|
||||
|
||||
@@ -115,55 +117,66 @@ int VP9EncoderImpl::Release() {
|
||||
}
|
||||
inited_ = false;
|
||||
return WEBRTC_VIDEO_CODEC_OK;
|
||||
}
|
||||
|
||||
bool VP9EncoderImpl::ExplicitlyConfiguredSpatialLayers() const {
|
||||
// We check target_bitrate_bps of the 0th layer to see if the spatial layers
|
||||
// (i.e. bitrates) were explicitly configured.
|
||||
+#ifdef LIBVPX_SVC
|
||||
return num_spatial_layers_ > 1 &&
|
||||
codec_.spatialLayers[0].target_bitrate_bps > 0;
|
||||
+#else
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
bool VP9EncoderImpl::SetSvcRates() {
|
||||
uint8_t i = 0;
|
||||
|
||||
if (ExplicitlyConfiguredSpatialLayers()) {
|
||||
+#ifdef LIBVPX_SVC
|
||||
if (num_temporal_layers_ > 1) {
|
||||
LOG(LS_ERROR) << "Multiple temporal layers when manually specifying "
|
||||
"spatial layers not implemented yet!";
|
||||
return false;
|
||||
}
|
||||
int total_bitrate_bps = 0;
|
||||
for (i = 0; i < num_spatial_layers_; ++i)
|
||||
total_bitrate_bps += codec_.spatialLayers[i].target_bitrate_bps;
|
||||
// If total bitrate differs now from what has been specified at the
|
||||
// beginning, update the bitrates in the same ratio as before.
|
||||
for (i = 0; i < num_spatial_layers_; ++i) {
|
||||
config_->ss_target_bitrate[i] = config_->layer_target_bitrate[i] =
|
||||
static_cast<int>(static_cast<int64_t>(config_->rc_target_bitrate) *
|
||||
codec_.spatialLayers[i].target_bitrate_bps /
|
||||
total_bitrate_bps);
|
||||
}
|
||||
+#endif
|
||||
} else {
|
||||
float rate_ratio[VPX_MAX_LAYERS] = {0};
|
||||
float total = 0;
|
||||
|
||||
+#ifdef LIBVPX_SVC
|
||||
for (i = 0; i < num_spatial_layers_; ++i) {
|
||||
if (svc_params_.scaling_factor_num[i] <= 0 ||
|
||||
svc_params_.scaling_factor_den[i] <= 0) {
|
||||
LOG(LS_ERROR) << "Scaling factors not specified!";
|
||||
return false;
|
||||
}
|
||||
rate_ratio[i] =
|
||||
static_cast<float>(svc_params_.scaling_factor_num[i]) /
|
||||
svc_params_.scaling_factor_den[i];
|
||||
total += rate_ratio[i];
|
||||
}
|
||||
+#else
|
||||
+ rate_ratio[0] = 1;
|
||||
+ total = 1;
|
||||
+#endif
|
||||
|
||||
for (i = 0; i < num_spatial_layers_; ++i) {
|
||||
config_->ss_target_bitrate[i] = static_cast<unsigned int>(
|
||||
config_->rc_target_bitrate * rate_ratio[i] / total);
|
||||
if (num_temporal_layers_ == 1) {
|
||||
config_->layer_target_bitrate[i] = config_->ss_target_bitrate[i];
|
||||
} else if (num_temporal_layers_ == 2) {
|
||||
config_->layer_target_bitrate[i * num_temporal_layers_] =
|
||||
@@ -390,16 +403,17 @@ int VP9EncoderImpl::NumberOfThreads(int
|
||||
return 2;
|
||||
} else {
|
||||
// 1 thread less than VGA.
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
int VP9EncoderImpl::InitAndSetControlSettings(const VideoCodec* inst) {
|
||||
+#ifdef LIBVPX_SVC
|
||||
// Set QP-min/max per spatial and temporal layer.
|
||||
int tot_num_layers = num_spatial_layers_ * num_temporal_layers_;
|
||||
for (int i = 0; i < tot_num_layers; ++i) {
|
||||
svc_params_.max_quantizers[i] = config_->rc_max_quantizer;
|
||||
svc_params_.min_quantizers[i] = config_->rc_min_quantizer;
|
||||
}
|
||||
config_->ss_number_layers = num_spatial_layers_;
|
||||
if (ExplicitlyConfiguredSpatialLayers()) {
|
||||
@@ -413,37 +427,41 @@ int VP9EncoderImpl::InitAndSetControlSet
|
||||
for (int i = num_spatial_layers_ - 1; i >= 0; --i) {
|
||||
// 1:2 scaling in each dimension.
|
||||
svc_params_.scaling_factor_num[i] = scaling_factor_num;
|
||||
svc_params_.scaling_factor_den[i] = 256;
|
||||
if (codec_.mode != kScreensharing)
|
||||
scaling_factor_num /= 2;
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (!SetSvcRates()) {
|
||||
return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
|
||||
}
|
||||
|
||||
if (vpx_codec_enc_init(encoder_, vpx_codec_vp9_cx(), config_, 0)) {
|
||||
return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
|
||||
}
|
||||
vpx_codec_control(encoder_, VP8E_SET_CPUUSED, cpu_speed_);
|
||||
vpx_codec_control(encoder_, VP8E_SET_MAX_INTRA_BITRATE_PCT,
|
||||
rc_max_intra_target_);
|
||||
vpx_codec_control(encoder_, VP9E_SET_AQ_MODE,
|
||||
inst->VP9().adaptiveQpMode ? 3 : 0);
|
||||
|
||||
+#ifdef LIBVPX_SVC
|
||||
vpx_codec_control(
|
||||
encoder_, VP9E_SET_SVC,
|
||||
(num_temporal_layers_ > 1 || num_spatial_layers_ > 1) ? 1 : 0);
|
||||
if (num_temporal_layers_ > 1 || num_spatial_layers_ > 1) {
|
||||
vpx_codec_control(encoder_, VP9E_SET_SVC_PARAMETERS,
|
||||
&svc_params_);
|
||||
}
|
||||
+#endif
|
||||
+
|
||||
// Register callback for getting each spatial layer.
|
||||
vpx_codec_priv_output_cx_pkt_cb_pair_t cbp = {
|
||||
VP9EncoderImpl::EncoderOutputCodedPacketCallback,
|
||||
reinterpret_cast<void*>(this)};
|
||||
vpx_codec_control(encoder_, VP9E_REGISTER_CX_CALLBACK,
|
||||
reinterpret_cast<void*>(&cbp));
|
||||
|
||||
// Control function to set the number of column tiles in encoding a frame, in
|
||||
@@ -527,16 +545,17 @@ int VP9EncoderImpl::Encode(const VideoFr
|
||||
|
||||
vpx_enc_frame_flags_t flags = 0;
|
||||
bool send_keyframe = (frame_type == kVideoFrameKey);
|
||||
if (send_keyframe) {
|
||||
// Key frame request from caller.
|
||||
flags = VPX_EFLAG_FORCE_KF;
|
||||
}
|
||||
|
||||
+#ifdef LIBVPX_SVC
|
||||
if (is_flexible_mode_) {
|
||||
SuperFrameRefSettings settings;
|
||||
|
||||
// These structs are copied when calling vpx_codec_control,
|
||||
// therefore it is ok for them to go out of scope.
|
||||
vpx_svc_ref_frame_config enc_layer_conf;
|
||||
vpx_svc_layer_id layer_id;
|
||||
|
||||
@@ -548,16 +567,17 @@ int VP9EncoderImpl::Encode(const VideoFr
|
||||
send_keyframe);
|
||||
}
|
||||
enc_layer_conf = GenerateRefsAndFlags(settings);
|
||||
layer_id.temporal_layer_id = 0;
|
||||
layer_id.spatial_layer_id = settings.start_layer;
|
||||
vpx_codec_control(encoder_, VP9E_SET_SVC_LAYER_ID, &layer_id);
|
||||
vpx_codec_control(encoder_, VP9E_SET_SVC_REF_FRAME_CONFIG, &enc_layer_conf);
|
||||
}
|
||||
+#endif
|
||||
|
||||
assert(codec_.maxFramerate > 0);
|
||||
uint32_t duration = 90000 / codec_.maxFramerate;
|
||||
if (vpx_codec_encode(encoder_, raw_, timestamp_, duration, flags,
|
||||
VPX_DL_REALTIME)) {
|
||||
return WEBRTC_VIDEO_CODEC_ERROR;
|
||||
}
|
||||
timestamp_ += duration;
|
||||
@@ -686,29 +706,31 @@ void VP9EncoderImpl::PopulateCodecSpecif
|
||||
vp9_info->p_diff[i] = p_diff_[layer_id.spatial_layer_id][i];
|
||||
}
|
||||
} else {
|
||||
vp9_info->gof_idx =
|
||||
static_cast<uint8_t>(frames_since_kf_ % gof_.num_frames_in_gof);
|
||||
vp9_info->temporal_up_switch = gof_.temporal_up_switch[vp9_info->gof_idx];
|
||||
}
|
||||
|
||||
+#ifdef LIBVPX_SVC
|
||||
if (vp9_info->ss_data_available) {
|
||||
vp9_info->spatial_layer_resolution_present = true;
|
||||
for (size_t i = 0; i < vp9_info->num_spatial_layers; ++i) {
|
||||
vp9_info->width[i] = codec_.width *
|
||||
svc_params_.scaling_factor_num[i] /
|
||||
svc_params_.scaling_factor_den[i];
|
||||
vp9_info->height[i] = codec_.height *
|
||||
svc_params_.scaling_factor_num[i] /
|
||||
svc_params_.scaling_factor_den[i];
|
||||
}
|
||||
- if (!vp9_info->flexible_mode) {
|
||||
- vp9_info->gof.CopyGofInfoVP9(gof_);
|
||||
- }
|
||||
+ }
|
||||
+#endif
|
||||
+ if (!vp9_info->flexible_mode) {
|
||||
+ vp9_info->gof.CopyGofInfoVP9(gof_);
|
||||
}
|
||||
}
|
||||
|
||||
int VP9EncoderImpl::GetEncodedLayerFrame(const vpx_codec_cx_pkt* pkt) {
|
||||
RTC_DCHECK_EQ(pkt->kind, VPX_CODEC_CX_FRAME_PKT);
|
||||
|
||||
if (pkt->data.frame.sz > encoded_image_._size) {
|
||||
delete[] encoded_image_._buffer;
|
||||
@@ -756,16 +778,17 @@ int VP9EncoderImpl::GetEncodedLayerFrame
|
||||
vpx_codec_control(encoder_, VP8E_GET_LAST_QUANTIZER, &qp);
|
||||
encoded_image_.qp_ = qp;
|
||||
encoded_complete_callback_->OnEncodedImage(encoded_image_, &codec_specific,
|
||||
&frag_info);
|
||||
}
|
||||
return WEBRTC_VIDEO_CODEC_OK;
|
||||
}
|
||||
|
||||
+#ifdef LIBVPX_SVC
|
||||
vpx_svc_ref_frame_config VP9EncoderImpl::GenerateRefsAndFlags(
|
||||
const SuperFrameRefSettings& settings) {
|
||||
static const vpx_enc_frame_flags_t kAllFlags =
|
||||
VP8_EFLAG_NO_REF_ARF | VP8_EFLAG_NO_REF_GF | VP8_EFLAG_NO_REF_LAST |
|
||||
VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_UPD_GF;
|
||||
vpx_svc_ref_frame_config sf_conf = {};
|
||||
if (settings.is_keyframe) {
|
||||
// Used later on to make sure we don't make any invalid references.
|
||||
@@ -857,16 +880,17 @@ vpx_svc_ref_frame_config VP9EncoderImpl:
|
||||
buffer_updated_at_frame_[updated_buffer] = frames_encoded_;
|
||||
sf_conf.frame_flags[layer_idx] = layer_flags;
|
||||
}
|
||||
}
|
||||
}
|
||||
++frames_encoded_;
|
||||
return sf_conf;
|
||||
}
|
||||
+#endif
|
||||
|
||||
int VP9EncoderImpl::SetChannelParameters(uint32_t packet_loss, int64_t rtt) {
|
||||
return WEBRTC_VIDEO_CODEC_OK;
|
||||
}
|
||||
|
||||
int VP9EncoderImpl::RegisterEncodeCompleteCallback(
|
||||
EncodedImageCallback* callback) {
|
||||
encoded_complete_callback_ = callback;
|
||||
diff -Nrup -U 8 a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h
|
||||
--- a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h 2020-02-18 02:37:58.000000000 +0300
|
||||
+++ b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h 2020-03-02 00:32:05.000000000 +0300
|
||||
@@ -77,24 +77,26 @@ class VP9EncoderImpl : public VP9Encoder
|
||||
|
||||
void PopulateCodecSpecific(CodecSpecificInfo* codec_specific,
|
||||
const vpx_codec_cx_pkt& pkt,
|
||||
uint32_t timestamp);
|
||||
|
||||
bool ExplicitlyConfiguredSpatialLayers() const;
|
||||
bool SetSvcRates();
|
||||
|
||||
+#ifdef LIBVPX_SVC
|
||||
// Used for flexible mode to set the flags and buffer references used
|
||||
// by the encoder. Also calculates the references used by the RTP
|
||||
// packetizer.
|
||||
//
|
||||
// Has to be called for every frame (keyframes included) to update the
|
||||
// state used to calculate references.
|
||||
vpx_svc_ref_frame_config GenerateRefsAndFlags(
|
||||
const SuperFrameRefSettings& settings);
|
||||
+#endif
|
||||
|
||||
virtual int GetEncodedLayerFrame(const vpx_codec_cx_pkt* pkt);
|
||||
|
||||
// Callback function for outputting packets per spatial layer.
|
||||
static void EncoderOutputCodedPacketCallback(vpx_codec_cx_pkt* pkt,
|
||||
void* user_data);
|
||||
|
||||
// Determine maximum target for Intra frames
|
||||
@@ -111,17 +113,19 @@ class VP9EncoderImpl : public VP9Encoder
|
||||
bool inited_;
|
||||
int64_t timestamp_;
|
||||
uint16_t picture_id_;
|
||||
int cpu_speed_;
|
||||
uint32_t rc_max_intra_target_;
|
||||
vpx_codec_ctx_t* encoder_;
|
||||
vpx_codec_enc_cfg_t* config_;
|
||||
vpx_image_t* raw_;
|
||||
+#ifdef LIBVPX_SVC
|
||||
vpx_svc_extra_cfg_t svc_params_;
|
||||
+#endif
|
||||
const VideoFrame* input_image_;
|
||||
GofInfoVP9 gof_; // Contains each frame's temporal information for
|
||||
// non-flexible mode.
|
||||
uint8_t tl0_pic_idx_; // Only used in non-flexible mode.
|
||||
size_t frames_since_kf_;
|
||||
uint8_t num_temporal_layers_;
|
||||
uint8_t num_spatial_layers_;
|
||||
uint8_t num_cores_;
|
11
seamonkey-2.53.21-bmo1662867.patch
Normal file
11
seamonkey-2.53.21-bmo1662867.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- seamonkey-2.53.21.old/python/mach/mach/commands/settings.py 2025-04-20 11:29:48.000000000 -0500
|
||||
+++ seamonkey-2.53.21/python/mach/mach/commands/settings.py 2025-08-27 14:09:03.800204529 -0500
|
||||
@@ -27,7 +27,7 @@
|
||||
description='Show available config settings.')
|
||||
@CommandArgument('-l', '--list', dest='short', action='store_true',
|
||||
help='Show settings in a concise list')
|
||||
- def settings(self, command_context, short=None):
|
||||
+ def run_settings(self, command_context, short=None):
|
||||
"""List available settings."""
|
||||
types = {v: k for k, v in TYPE_CLASSES.items()}
|
||||
wrapper = TextWrapper(initial_indent='# ', subsequent_indent='# ')
|
11
seamonkey-2.53.21-bmo1927380.patch
Normal file
11
seamonkey-2.53.21-bmo1927380.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- seamonkey-2.53.21.old/js/moz.configure 2025-04-20 11:29:48.000000000 -0500
|
||||
+++ seamonkey-2.53.21/js/moz.configure 2025-08-24 07:24:58.108230222 -0500
|
||||
@@ -403,7 +403,7 @@
|
||||
# ======================================================
|
||||
option('--with-system-icu', help='Use system ICU')
|
||||
|
||||
-system_icu = pkg_check_modules('MOZ_ICU', 'icu-i18n >= 67.1', when='--with-system-icu')
|
||||
+system_icu = pkg_check_modules('MOZ_ICU', 'icu-uc icu-i18n >= 67.1', when='--with-system-icu')
|
||||
|
||||
set_config('MOZ_SYSTEM_ICU', True, when=system_icu)
|
||||
set_define('MOZ_SYSTEM_ICU', True, when=system_icu)
|
@@ -83,6 +83,10 @@ build: $(OBJDIR)/Makefile
|
||||
$(MAKE) -C $(OBJDIR)
|
||||
|
||||
|
||||
listsettings: .mozconfig
|
||||
$(MACH_CMD) settings --list
|
||||
|
||||
|
||||
$(OBJDIR_TARGETS):
|
||||
$(MAKE) -C $(OBJDIR) $@
|
||||
|
||||
|
@@ -1,3 +1,55 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 27 23:34:52 UTC 2025 - Tristan Miller <psychonaut@nothingisreal.com>
|
||||
|
||||
- remove SUSE_ASNEEDED from spec file
|
||||
- add build options for using system jpg, png, nss, nspr, and zlib
|
||||
libraries
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 26 18:27:50 UTC 2025 - Tristan Miller <psychonaut@nothingisreal.com>
|
||||
|
||||
- refactor spec file
|
||||
- rename patches according to their source/bug and to the
|
||||
earliest version of the package they were applied to:
|
||||
seamonkey-icu.patch => seamonkey-2.53.21-bmo1927380.patch
|
||||
mozilla-bmo1862601.patch => seamonkey-2.53.21-bmo1862601.patch
|
||||
mozilla-bmo1896958.patch => seamonkey-2.53.19-bmo1896958.patch
|
||||
mach-use-python-311.patch => seamonkey-2.53.20-mach-use-python-311.patch
|
||||
reproducible.patch => seamonkey-2.53.20-boo1237231.patch
|
||||
seamonkey-man-page.patch => seamonkey-2.53.7.1-man-page.patch
|
||||
seamonkey-lto.patch => seamonkey-2.53.3-lto.patch
|
||||
mozilla-ntlm-full-path.patch => seamonkey-2.1.0-bmo634334.patch
|
||||
mozilla-nongnome-proxies.patch => seamonkey-2.0.0-nongnome-proxies.patch
|
||||
mozilla-bmo531915.patch => seamonkey-2.53.17.1-bmo531915.patch
|
||||
- remove build workarounds for Leap 15.5 (now unsupported)
|
||||
- add seamonkey-2.53.20-system-av1.patch for using system AV1
|
||||
- add seamonkey-2.53.21-bmo1332139.patch for using system VPx
|
||||
- remove spec file code specific to aarch64 and PPC; these are
|
||||
no longer supported upstream and are difficult to get to build
|
||||
- remove spec file code that since r207 had been setting an invalid
|
||||
value for the network.negotiate-auth.gsslib preference
|
||||
- remove (most probably obsolete) -fno-string-aliasing,
|
||||
-fimplicit-constexpr, fno-delete-null-pointer-checks,
|
||||
-fno-lifetime-dse, and fno-schedule-insns2 compiler options in spec
|
||||
file
|
||||
- make compiler output less chatty by removing -Wall
|
||||
- add a listsettings recipe to the GNU Makefile that runs
|
||||
mach settings --list
|
||||
- add seamonkey-2.53.21-bmo1662867.patch to allow mach settings
|
||||
to run
|
||||
- import some compiler/linker settings and syntactic sugar from
|
||||
Fedora's spec file by Dmitry Butskoy et al.
|
||||
- re-enable elf-hack since builds seem to work now
|
||||
- apply existing ICU fixes to Leap 16
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 24 15:11:18 UTC 2025 - Tristan Miller <psychonaut@nothingisreal.com>
|
||||
|
||||
- add mozilla-bmo1862601.patch and seamonkey-icu.patch to fix
|
||||
--with-system-icu builds on Tumbleweed (bmo#1864745)
|
||||
- allow Tumbleweed builds to use GCC 14 now, since this no longer
|
||||
fails (bmo#1916827)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 05 16:43:42 UTC 2025 - Tristan Miller <psychonaut@nothingisreal.com>
|
||||
|
||||
|
388
seamonkey.spec
388
seamonkey.spec
@@ -17,34 +17,100 @@
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# upstream default is clang (to use gcc for large parts set to 0)
|
||||
%define clang_build 0
|
||||
### build options
|
||||
|
||||
# Components to include/exclude
|
||||
%bcond_without dominspector
|
||||
%bcond_without irc
|
||||
%bcond_without localizations
|
||||
|
||||
# System vs. bundled libraries
|
||||
%bcond_without system_webp
|
||||
%bcond_without system_icu
|
||||
%bcond_without system_libvpx
|
||||
%bcond_without system_ffi
|
||||
%bcond_without system_nspr
|
||||
%bcond_without system_nss
|
||||
%bcond_without system_zlib
|
||||
# Disable system AV1 on Leap; as of 15.6 dav1d is not yet packaged for it
|
||||
%if 0%{?suse_version} > 1600
|
||||
%bcond_without system_av1
|
||||
%endif
|
||||
%bcond_with system_jpeg
|
||||
%bcond_with system_png
|
||||
|
||||
# Compiler/linker options
|
||||
%bcond_with clang
|
||||
%ifarch %ix86
|
||||
# As of 2.53.3 (and still in 2.53.21) i586 builds fail with LTO
|
||||
%bcond_with lto
|
||||
%else
|
||||
%bcond_without lto
|
||||
%endif
|
||||
%bcond_with gold
|
||||
|
||||
|
||||
%define progname %{name}
|
||||
%define sources_subdir %{name}-%{version}
|
||||
%define prefix /usr
|
||||
%define progdir %_libdir/%{progname}
|
||||
### build options end
|
||||
|
||||
%define releasedate 20250605000000
|
||||
|
||||
Name: seamonkey
|
||||
Summary: An integrated web browser, composer, mail/news client, and IRC client
|
||||
Version: 2.53.21
|
||||
Release: 0
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Web/Browsers
|
||||
URL: https://www.seamonkey-project.org/
|
||||
|
||||
Source0: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source.tar.xz
|
||||
Source1: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source-l10n.tar.xz
|
||||
Source2: seamonkey-desktop.tar.bz2
|
||||
Source3: spellcheck.js
|
||||
Source4: mozilla.sh.in
|
||||
Source5: suse-default-prefs.js
|
||||
Source6: seamonkey-rpmlintrc
|
||||
Source7: seamonkey-appdata.tar.bz2
|
||||
Source8: seamonkey-GNUmakefile
|
||||
|
||||
Patch1: seamonkey-2.0.0-nongnome-proxies.patch
|
||||
Patch2: seamonkey-2.1.0-bmo634334.patch
|
||||
Patch3: seamonkey-2.53.3-lto.patch
|
||||
Patch4: seamonkey-2.53.7.1-man-page.patch
|
||||
Patch5: seamonkey-2.53.20-boo1237231.patch
|
||||
Patch6: seamonkey-2.53.17.1-bmo531915.patch
|
||||
Patch7: seamonkey-2.53.19-bmo1896958.patch
|
||||
Patch8: seamonkey-2.53.20-mach-use-python-311.patch
|
||||
Patch9: seamonkey-2.53.21-bmo1862601.patch
|
||||
Patch10: seamonkey-2.53.21-bmo1927380.patch
|
||||
Patch11: seamonkey-2.53.20-system-av1.patch
|
||||
Patch12: seamonkey-2.53.21-bmo1332139.patch
|
||||
Patch13: seamonkey-2.53.21-bmo1662867.patch
|
||||
|
||||
BuildRequires: Mesa-devel
|
||||
BuildRequires: alsa-devel
|
||||
BuildRequires: autoconf213
|
||||
BuildRequires: dbus-1-glib-devel
|
||||
BuildRequires: fdupes
|
||||
# Use GCC 13 on Tumbleweed because builds fail with GCC 14:
|
||||
# <https://bugzilla.mozilla.org/show_bug.cgi?id=1916827>
|
||||
%if 0%{?suse_version} > 1600
|
||||
BuildRequires: gcc13-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
BuildRequires: hunspell-devel
|
||||
# Using system AV1 decoder depends on pending patch from
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1559213
|
||||
#BuildRequires: dav1d5-devel
|
||||
%if 0%{?suse_version} > 1600 && %{with system_av1}
|
||||
BuildRequires: libaom-devel
|
||||
BuildRequires: dav1d-devel
|
||||
%endif
|
||||
BuildRequires: libiw-devel
|
||||
BuildRequires: libnotify-devel
|
||||
BuildRequires: libproxy-devel
|
||||
#BuildRequires: libvpx-devel # Compile errors with 1.10.0
|
||||
%if %{with system_libvpx}
|
||||
BuildRequires: libvpx-devel
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200 && 0%{?is_opensuse}
|
||||
BuildRequires: libwebp-devel >= 1.0.0
|
||||
# --system-icu builds are failing on Tumbleweed; see https://bugzilla.mozilla.org/show_bug.cgi?id=193317
|
||||
#BuildRequires: libicu-devel >= 63.1
|
||||
%endif
|
||||
%if %{with system_icu}
|
||||
BuildRequires: libicu-devel >= 67.1
|
||||
%endif
|
||||
BuildRequires: makeinfo
|
||||
BuildRequires: memory-constraints
|
||||
@@ -62,7 +128,9 @@ BuildRequires: pkgconfig(gtk+-2.0) >= 2.24
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.22.30
|
||||
BuildRequires: pkgconfig(gtk+-unix-print-2.0)
|
||||
BuildRequires: pkgconfig(gtk+-unix-print-3.0)
|
||||
%if %{with system_ffi}
|
||||
BuildRequires: pkgconfig(libffi) > 3.0.9
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
BuildRequires: pkgconfig(xcomposite)
|
||||
%if 0%{?suse_version} > 1600
|
||||
@@ -75,36 +143,25 @@ BuildRequires: rust >= 1.76
|
||||
BuildRequires: rust-cbindgen
|
||||
BuildRequires: git
|
||||
BuildRequires: nasm >= 2.13
|
||||
#BuildRequires: llvm-devel
|
||||
BuildRequires: clang-devel
|
||||
%if %{with clang}
|
||||
BuildRequires: clang
|
||||
%else
|
||||
# Use GCC 14 on Tumbleweed because builds of 2.53.21 fail with GCC 15
|
||||
%if 0%{?suse_version} > 1600
|
||||
%define gcc_version 14
|
||||
%endif
|
||||
BuildRequires: gcc%{?gcc_version:%gcc_version}-c++
|
||||
%if %{with gold}
|
||||
BuildRequires: binutils-gold
|
||||
%endif
|
||||
%endif
|
||||
|
||||
PreReq: /bin/sh coreutils
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
Provides: web_browser
|
||||
Provides: browser(npapi)
|
||||
Version: 2.53.21
|
||||
Release: 0
|
||||
%define releasedate 20250605000000
|
||||
Summary: An integrated web browser, composer, mail/news client, and IRC client
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Web/Browsers
|
||||
Url: https://www.seamonkey-project.org/
|
||||
Source: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source.tar.xz
|
||||
Source1: seamonkey-desktop.tar.bz2
|
||||
Source2: spellcheck.js
|
||||
Source3: mozilla.sh.in
|
||||
Source4: suse-default-prefs.js
|
||||
Source5: https://archive.mozilla.org/pub/seamonkey/releases/%{version}/source/seamonkey-%{version}.source-l10n.tar.xz
|
||||
Source7: seamonkey-rpmlintrc
|
||||
Source11: seamonkey-appdata.tar.bz2
|
||||
Source12: seamonkey-GNUmakefile
|
||||
Patch1: mozilla-nongnome-proxies.patch
|
||||
Patch2: mozilla-ntlm-full-path.patch
|
||||
Patch3: seamonkey-lto.patch
|
||||
Patch4: seamonkey-man-page.patch
|
||||
Patch5: reproducible.patch
|
||||
Patch6: mozilla-bmo531915.patch
|
||||
Patch7: mozilla-bmo1896958.patch
|
||||
Patch8: mach-use-python-311.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
PreReq: /bin/sh coreutils
|
||||
Provides: seamonkey-mail = %{version}
|
||||
Obsoletes: seamonkey-mail <= 2.0
|
||||
Provides: seamonkey-spellchecker = %{version}
|
||||
@@ -119,42 +176,35 @@ Recommends: libpulse0
|
||||
# therefore the Packman version is required
|
||||
# minimum version of libavcodec is 53
|
||||
Recommends: libavcodec-full >= 0.10.16
|
||||
%define progname %{name}
|
||||
%define sources_subdir %{name}-%{version}
|
||||
%define prefix /usr
|
||||
%define progdir %_libdir/%{progname}
|
||||
%define libgssapi libgssapi_krb5.so.2
|
||||
### build options
|
||||
%define has_system_cairo 0
|
||||
%define localize 1
|
||||
%define with_chatzilla 1
|
||||
%define with_domi 1
|
||||
### build options end
|
||||
# It no longer makes sense to include separate language packs because these
|
||||
# apply only to the main SeaMonkey suite, but not to the integrated Chatzilla
|
||||
# or Calendar
|
||||
%if %localize
|
||||
%if %{with localizations}
|
||||
Provides: seamonkey-translations-common = %{version}
|
||||
Obsoletes: seamonkey-translations-common < 2.53.6
|
||||
Provides: seamonkey-translations-other = %{version}
|
||||
Obsoletes: seamonkey-translations-other < 2.53.6
|
||||
Provides: locale(%{name}:cs;de;el;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;ka;nb_NO;nl;pl;pt_BR;pt_PT;ru;sk;sv_SE;zh_CN;zh_TW)
|
||||
%endif
|
||||
%if 0%{?with_chatzilla} == 0
|
||||
%if %{with irc}
|
||||
Provides: seamonkey-irc = %{version}
|
||||
%endif
|
||||
%if 0%{?with_domi} == 0
|
||||
%if %{with dominspector}
|
||||
Provides: seamonkey-dom-inspector = %{version}
|
||||
%endif
|
||||
%define __provides_exclude ^lib.*\\.so.*$
|
||||
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libld.*|libprldap.*)$
|
||||
# the following conditions are always met in Factory by definition
|
||||
%if %{with system_nspr}
|
||||
BuildRequires: mozilla-nspr-devel >= 4.13.1
|
||||
PreReq: mozilla-nspr >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nspr)
|
||||
%endif
|
||||
%if %{with system_nss}
|
||||
%if 0%{?sle_version} != 150500 && 0%{?is_opensuse}
|
||||
BuildRequires: mozilla-nss-devel >= 3.28.6
|
||||
PreReq: mozilla-nss >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nss)
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%description
|
||||
SeaMonkey is an all-in-one Internet application suite containing a web
|
||||
@@ -166,6 +216,7 @@ Firefox and Thunderbird) retains Mozilla's more traditional-looking
|
||||
interface. Many Thunderbird and (legacy) Firefox extensions are
|
||||
compatible with SeaMonkey.
|
||||
|
||||
|
||||
%package irc
|
||||
Summary: IRC for SeaMonkey
|
||||
Group: Productivity/Networking/IRC
|
||||
@@ -193,8 +244,8 @@ This is a tool that allows you to inspect the DOM for web pages in
|
||||
SeaMonkey. This is of great use to people who are doing SeaMonkey
|
||||
chrome development or web page development.
|
||||
|
||||
%if %localize
|
||||
|
||||
%if %{with localizations}
|
||||
%package translations-common
|
||||
Summary: Common translations for SeaMonkey
|
||||
Group: System/Localization
|
||||
@@ -217,20 +268,21 @@ This package contains several optional languages for the user interface
|
||||
of SeaMonkey.
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
|
||||
%setup -q -b 1 -b 11 -c
|
||||
%setup -q -b 2 -b 7 -c
|
||||
|
||||
mv %{sources_subdir} mozilla
|
||||
|
||||
%if %localize
|
||||
%setup -q -T -D -c -n %{name}-%{version}/l10n -a 5
|
||||
%if %{with localizations}
|
||||
%setup -q -T -D -c -n %{name}-%{version}/l10n -a 1
|
||||
%setup -q -T -D
|
||||
%endif
|
||||
|
||||
cd mozilla
|
||||
|
||||
cp %{SOURCE12} GNUmakefile
|
||||
cp %{SOURCE8} GNUmakefile
|
||||
|
||||
%patch -P 1 -p1
|
||||
%patch -P 2 -p2
|
||||
@@ -241,85 +293,102 @@ cp %{SOURCE12} GNUmakefile
|
||||
%patch -P 7 -p1
|
||||
%patch -P 8 -p1
|
||||
|
||||
%if %{with system_icu}
|
||||
%if 0%{?suse_version} >= 1600
|
||||
%patch -P 9 -p1
|
||||
%patch -P 10 -p1
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} > 1600 && %{with system_av1}
|
||||
%patch -P 11 -p1
|
||||
%endif
|
||||
|
||||
%if %{with system_libvpx}
|
||||
%patch -P 12 -p1
|
||||
%endif
|
||||
|
||||
%patch -P 13 -p1
|
||||
|
||||
%define with_sys() ac_add_options --with%%{!?with_system_%1:out}-system-%1
|
||||
%define endis_sys() ac_add_options --%%{?with_system_%1:enable}%%{!?with_system_%1:disable}-system-%1
|
||||
%define endis() ac_add_options --%%{?with_%1:enable}%%{!?with_%1:disable}-%1
|
||||
|
||||
cat << EOF > .mozconfig
|
||||
### Various build options
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
mk_add_options MOZ_MILESTONE_RELEASE=1
|
||||
mk_add_options MOZ_MAKE_FLAGS=%{?_smp_mflags}
|
||||
#mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
|
||||
ac_add_options --enable-application=comm/suite
|
||||
ac_add_options --libdir=%{_libdir}
|
||||
ac_add_options --prefix=%{_prefix}
|
||||
ac_add_options --mandir=%{_mandir}
|
||||
%if %localize
|
||||
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/seamonkey-%{version}/l10n
|
||||
%endif
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-install-strip
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
|
||||
# Removed for SeaMonkey 2.53.20
|
||||
#ac_add_options --disable-gconf
|
||||
|
||||
# Elfhack fails on ix86: https://bugzilla.mozilla.org/show_bug.cgi?id=1706264
|
||||
%ifarch aarch64 ppc %arm %ix86
|
||||
ac_add_options --disable-elf-hack
|
||||
%if %{with localizations}
|
||||
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/seamonkey-%{version}/l10n
|
||||
%endif
|
||||
|
||||
#ac_add_options --disable-elf-hack
|
||||
|
||||
%{expand:%endis gold}
|
||||
|
||||
%ifarch %ix86
|
||||
ac_add_options --disable-debug-symbols
|
||||
%endif
|
||||
ac_add_options --disable-debug
|
||||
ac_add_options --enable-alsa
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
ac_add_options --enable-libproxy
|
||||
|
||||
ac_add_options --with-system-nspr
|
||||
%if 0%{?sle_version} != 150500 && 0%{?is_opensuse}
|
||||
ac_add_options --with-system-nss
|
||||
|
||||
### Features
|
||||
|
||||
### Components to include
|
||||
ac_add_options --enable-application=comm/suite
|
||||
%{expand:%endis dominspector}
|
||||
%{expand:%endis irc}
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
|
||||
# Calendar is always enabled as it's required to build various
|
||||
# components and addons
|
||||
ac_add_options --enable-calendar
|
||||
|
||||
|
||||
### System vs. bundled libraries
|
||||
|
||||
%{expand:%with_sys nspr}
|
||||
%{expand:%with_sys nss}
|
||||
%{expand:%with_sys zlib}
|
||||
%{expand:%with_sys icu}
|
||||
%{expand:%with_sys libvpx}
|
||||
%{expand:%with_sys webp}
|
||||
%{expand:%endis_sys ffi}
|
||||
%if 0%{?suse_version} > 1600
|
||||
%{expand:%with_sys av1}
|
||||
%endif
|
||||
ac_add_options --with-system-zlib
|
||||
# Removed for SeaMonkey 2.53.20
|
||||
#ac_add_options --with-system-bz2
|
||||
|
||||
%if 0%{?suse_version} > 1600 || 0%{?sle_version} >= 150200 && 0%{?is_opensuse}
|
||||
ac_add_options --with-system-webp
|
||||
|
||||
# --system-icu builds are failing on Tumbleweed; see https://bugzilla.mozilla.org/show_bug.cgi?id=193317
|
||||
#ac_add_options --with-system-icu
|
||||
%endif
|
||||
|
||||
# Compile errors with system libvpx-1.10.0
|
||||
#ac_add_options --with-system-libvpx
|
||||
|
||||
# Using system AV1 decoder depends on pending patch from
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1559213
|
||||
# ac_add_options --with-system-av1
|
||||
|
||||
# Mozilla's internal JPEG library is used because of the "turbo" patches
|
||||
# that make it more efficient than the stock system libjpeg:
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=573948
|
||||
#ac_add_options --with-system-jpeg
|
||||
%{expand:%with_sys jpeg}
|
||||
|
||||
# The stock system libpng lacks support for APNG, whereas Mozilla's
|
||||
# internal version suports APNG
|
||||
#ac_add_options--with-system-png
|
||||
%{expand:%with_sys png}
|
||||
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
# Removed for SeaMonkey 2.53.20
|
||||
#ac_add_options --enable-startup-notification
|
||||
ac_add_options --enable-alsa
|
||||
%if %has_system_cairo
|
||||
ac_add_options --enable-system-cairo
|
||||
%endif
|
||||
ac_add_options --enable-libproxy
|
||||
%if 0%{?with_chatzilla}
|
||||
ac_add_options --with-irc
|
||||
%endif
|
||||
%if %with_domi
|
||||
ac_add_options --with-dominspector
|
||||
%endif
|
||||
ac_add_options --enable-calendar
|
||||
EOF
|
||||
|
||||
|
||||
%build
|
||||
|
||||
export MOZ_BUILD_DATE=%{releasedate}
|
||||
export MOZILLA_OFFICIAL=1
|
||||
export BUILD_OFFICIAL=1
|
||||
|
||||
# no need to add build time to binaries
|
||||
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
|
||||
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
|
||||
@@ -327,66 +396,60 @@ TIME="\"$(date -d "${modified}" "+%%R")\""
|
||||
find . -regex ".*\.c\|.*\.cpp\|.*\.h" \
|
||||
-exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
|
||||
|
||||
# As of 2.53.3, i586 builds are failing due to out-of-memory issues,
|
||||
# so we disable LTO. (This workaround is still necessary as of
|
||||
# 2.53.7.1.)
|
||||
# Compiler settings
|
||||
|
||||
MOZ_OPT_FLAGS=$RPM_OPT_FLAGS
|
||||
|
||||
# Make compiler output less chatty
|
||||
MOZ_OPT_FLAGS=$(echo $MOZ_OPT_FLAGS | sed -e 's/-Wall//g')
|
||||
|
||||
%if %{without clang}
|
||||
export CC=gcc%{?gcc_version:-%gcc_version}
|
||||
export CXX=g++%{?gcc_version:-%gcc_version}
|
||||
%endif
|
||||
|
||||
# Linker settings
|
||||
|
||||
%define _lto_cflags %{nil}
|
||||
MOZ_LD_FLAGS=$RPM_LD_FLAGS
|
||||
|
||||
# Reduce memory consumption when building for i586
|
||||
%ifarch %ix86
|
||||
%define _lto_cflags %{nil}
|
||||
%if %{without gold}
|
||||
MOZ_LD_FLAGS="$MOZ_LD_FLAGS -Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--no-map-whole-files -Wl,--hash-size=31"
|
||||
%endif
|
||||
#
|
||||
# As of 2.53.13, Tumbleweed builds are failing due to the linker
|
||||
# issue <https://bugzilla.mozilla.org/show_bug.cgi?id=1778981>
|
||||
# so we disable LTO.
|
||||
%if 0%{?suse_version} > 1600
|
||||
%define _lto_cflags %{nil}
|
||||
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -g1"
|
||||
%endif
|
||||
export SUSE_ASNEEDED=0
|
||||
export MOZ_BUILD_DATE=%{releasedate}
|
||||
export MOZILLA_OFFICIAL=1
|
||||
export BUILD_OFFICIAL=1
|
||||
|
||||
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
||||
%if 0%{?clang_build} == 0
|
||||
# Use GCC 13 on Tumbleweed because builds fail with GCC 14:
|
||||
# <https://bugzilla.mozilla.org/show_bug.cgi?id=1916827>
|
||||
%if 0%{?suse_version} > 1600
|
||||
export CC=gcc-13
|
||||
export CXX=g++-13
|
||||
# LTO settings
|
||||
# TODO: Perhaps just let SeaMonkey do this via --enable-lto?
|
||||
%if %{with lto}
|
||||
MOZ_LD_FLAGS=$(echo $MOZ_LD_FLAGS | sed -e 's/-flto\b//g')
|
||||
%if %{with clang}
|
||||
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -flto=thin"
|
||||
MOZ_LD_FLAGS="$MOZ_LD_FLAGS -flto=thin -fuse-ld=lld -Wl,-plugin-opt=-import-instr-limit=10"
|
||||
export AR=llvm-ar
|
||||
export RANLIB=llvm-ranlib
|
||||
%else
|
||||
export CC=gcc
|
||||
export CXX=g++
|
||||
%endif
|
||||
%if 0%{?gcc_version:%{gcc_version}} >= 12
|
||||
export CFLAGS="$CFLAGS -fimplicit-constexpr"
|
||||
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -flto=auto -flifetime-dse=1"
|
||||
MOZ_LD_FLAGS="$MOZ_LD_FLAGS -flto=auto -flifetime-dse=1"
|
||||
export AR=gcc-ar%{?gcc_version:-%gcc_version}
|
||||
export RANLIB=gcc-ranlib%{?gcc_version:-%gcc_version}
|
||||
%endif
|
||||
%endif
|
||||
|
||||
if [ $(gcc -dumpversion | awk -F. '{print $1}') -ge 6 ]; then
|
||||
export CFLAGS+=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
|
||||
fi
|
||||
%ifarch %arm
|
||||
export CFLAGS="${CFLAGS/-g / }"
|
||||
%endif
|
||||
%ifarch %arm %ix86
|
||||
# Limit RAM usage during link
|
||||
export LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
|
||||
%endif
|
||||
%ifarch ppc64 ppc64le
|
||||
%if 0%{?clang_build} == 0
|
||||
export CFLAGS="$CFLAGS -mminimal-toc"
|
||||
%endif
|
||||
%endif
|
||||
export CXXFLAGS="$CFLAGS"
|
||||
export CFLAGS=$MOZ_OPT_FLAGS
|
||||
export CXXFLAGS=$MOZ_OPT_FLAGS
|
||||
export LDFLAGS=$MOZ_LD_FLAGS
|
||||
|
||||
#
|
||||
%limit_build -m 2000
|
||||
cd mozilla
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%if %localize
|
||||
%if %{with localizations}
|
||||
make -j1 locales
|
||||
%endif
|
||||
#
|
||||
|
||||
|
||||
%install
|
||||
|
||||
@@ -407,16 +470,15 @@ mkdir --parents $RPM_BUILD_ROOT%{_bindir}
|
||||
sed "s:%%PREFIX:%{prefix}:g
|
||||
s:%%PROGDIR:%{progdir}:g
|
||||
s:%%APPNAME:seamonkey:g" \
|
||||
%{SOURCE3} > $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
|
||||
%{SOURCE4} > $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
|
||||
chmod 755 $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
|
||||
ln -sf ../..%{progdir}/%{progname}.sh $RPM_BUILD_ROOT%{_bindir}/%{progname}
|
||||
# apply SUSE defaults
|
||||
sed -e 's,RPM_VERSION,%{version}-%{release},g
|
||||
#s,GSSAPI,%{libgssapi},g' \
|
||||
%{SOURCE4} > suse-default-prefs
|
||||
sed -e 's,RPM_VERSION,%{version}-%{release},g' \
|
||||
%{SOURCE5} > suse-default-prefs
|
||||
cp suse-default-prefs $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-openSUSE.js
|
||||
rm suse-default-prefs
|
||||
install -m 644 %{SOURCE2} %{buildroot}%{progdir}/defaults/pref/
|
||||
install -m 644 %{SOURCE3} %{buildroot}%{progdir}/defaults/pref/
|
||||
# Desktop definition
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||
install -m 644 $RPM_BUILD_DIR/*.desktop \
|
||||
@@ -480,13 +542,13 @@ install -m0644 -t %{buildroot}%{_datadir}/appdata/ $RPM_BUILD_DIR/*.appdata.xml
|
||||
%{_datadir}/appdata/*.appdata.xml
|
||||
%{_mandir}/*/*
|
||||
|
||||
%if 0%{?with_chatzilla}
|
||||
%if %{with irc}
|
||||
%files irc
|
||||
%defattr(-,root,root)
|
||||
%{progdir}/extensions/{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}.xpi
|
||||
%endif
|
||||
|
||||
%if 0%{?with_domi}
|
||||
%if %{with dominspector}
|
||||
%files dom-inspector
|
||||
%defattr(-,root,root)
|
||||
%{progdir}/extensions/inspector*.xpi
|
||||
|
@@ -2,7 +2,6 @@ pref("browser.display.use_system_colors", true);
|
||||
pref("browser.startup.homepage_override.mstone", "ignore");
|
||||
pref("general.smoothScroll", true);
|
||||
pref("font.default", "sans-serif");
|
||||
pref("network.negotiate-auth.gsslib", "GSSAPI");
|
||||
pref("print.print_edge_top", 14); // 1/100 of an inch
|
||||
pref("print.print_edge_left", 16); // 1/100 of an inch
|
||||
pref("print.print_edge_right", 16); // 1/100 of an inch
|
||||
|
Reference in New Issue
Block a user