subject fixed, hopefully. :)
On 9/28/19 7:05 PM, cc wrote:
>
> Hello,
>
>
> I recently started to study openbsd. I am a computer major student. How can I contribute to openbsd?
>
while ! dead; do
DoSomething.
submission="sucks" # Accept this. It's probably true.
while [[ $submission == "sucks" ]]; do
SubmitIt
AcceptCriticism
learn
if [[ $criticism == "no way" ]]; do
break # not everything is appropriate.
fi
reviseBasedOnCriticism
done # Congrats, your submission was accepted!
done # not dead yet.
People usually screw up on accepting that their first
submission sucks. And they really get confused
when they are told what to fix and resubmit it, "why
doesn't the committer just do it?" That's where the
"learn" step comes in -- the committer is trying to
help you get a point your submissions DON'T suck
initially.
Find something you want to fix or improve...do it,
and enter the loop. :)
Nick.
Monday, September 30, 2019
unbreak firefox-esr and thunderbird
Hi,
The update of lang/rust unintentionally broke mail/mozilla-thunderbird,
www/firefox-esr and www/tor-browser.
My test script for checking breakable doesn't worked as intented, and I miss the
failures. My bad.
The following patch corrects mail/mozilla-thunderbird and www/firefox-esr, by
backporting cssparser crate diff from upstream.
The change is composed of two parts:
- the patch on third_party/rust/cssparser/src/parser.rs
- a sed trick on post-patch target to "hide" the file change to cargo and let's
it building without complaining
For www/tor-browser, I will just mark it as BROKEN. The esr version used by
tor-browser is just too old for easily backport the patch, and I would be
reluctant to spend time on it as the www/tor-browser version we have in port is
just too outdated. An update of the port would be preferable.
Please note I only quickly test the patch on firefox-esr. I intent to let's
finish a full build of mail/mozilla-thunderbird and www/firefox-esr before
commiting if ok.
Thanks.
--
Sebastien Marie
Index: mail/mozilla-thunderbird/Makefile
===================================================================
RCS file: /cvs/ports/mail/mozilla-thunderbird/Makefile,v
retrieving revision 1.296
diff -u -p -r1.296 Makefile
--- mail/mozilla-thunderbird/Makefile 22 Sep 2019 17:19:07 -0000 1.296
+++ mail/mozilla-thunderbird/Makefile 30 Sep 2019 11:58:09 -0000
@@ -89,6 +89,10 @@ GUIDS = gdata-provider {a62ef8ec-5fdc-40
EXTDIR = ${PREFIX}/lib/${MOZILLA_PROJECT}/distribution/extensions/
+post-patch:
+ sed -i 's/"files":{[^}]*}/"files":{}/' \
+ ${WRKSRC}/third_party/rust/cssparser/.cargo-checksum.json
+
post-install:
.for xpi guid in ${GUIDS}
cp ${WRKBUILD}/dist/xpi-stage/${xpi}*.xpi ${EXTDIR}/${guid}.xpi
Index: mail/mozilla-thunderbird/patches/patch-third_party_rust_cssparser_src_parser_rs
===================================================================
RCS file: mail/mozilla-thunderbird/patches/patch-third_party_rust_cssparser_src_parser_rs
diff -N mail/mozilla-thunderbird/patches/patch-third_party_rust_cssparser_src_parser_rs
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mail/mozilla-thunderbird/patches/patch-third_party_rust_cssparser_src_parser_rs 30 Sep 2019 11:58:09 -0000
@@ -0,0 +1,65 @@
+$OpenBSD$
+backport https://github.com/servo/rust-cssparser/pull/245/commits/3c98d22c5de3b696bf1fde2b6c90069812312aa6
+to avoid hard failure due to rustc 1.38.0
+
+Index: third_party/rust/cssparser/src/parser.rs
+--- third_party/rust/cssparser/src/parser.rs.orig
++++ third_party/rust/cssparser/src/parser.rs
+@@ -567,30 +567,34 @@ impl<'i: 't, 't> Parser<'i, 't> {
+ }
+
+ let token_start_position = self.input.tokenizer.position();
+- let token;
+- match self.input.cached_token {
+- Some(ref cached_token) if cached_token.start_position == token_start_position => {
+- self.input.tokenizer.reset(&cached_token.end_state);
+- match cached_token.token {
+- Token::Function(ref name) => self.input.tokenizer.see_function(name),
+- _ => {}
+- }
+- token = &cached_token.token
++ let using_cached_token = self
++ .input
++ .cached_token
++ .as_ref()
++ .map_or(false, |cached_token| {
++ cached_token.start_position == token_start_position
++ });
++ let token = if using_cached_token {
++ let cached_token = self.input.cached_token.as_ref().unwrap();
++ self.input.tokenizer.reset(&cached_token.end_state);
++ match cached_token.token {
++ Token::Function(ref name) => self.input.tokenizer.see_function(name),
++ _ => {}
+ }
+- _ => {
+- let new_token = self
+- .input
+- .tokenizer
+- .next()
+- .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
+- self.input.cached_token = Some(CachedToken {
+- token: new_token,
+- start_position: token_start_position,
+- end_state: self.input.tokenizer.state(),
+- });
+- token = self.input.cached_token_ref()
+- }
+- }
++ &cached_token.token
++ } else {
++ let new_token = self
++ .input
++ .tokenizer
++ .next()
++ .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
++ self.input.cached_token = Some(CachedToken {
++ token: new_token,
++ start_position: token_start_position,
++ end_state: self.input.tokenizer.state(),
++ });
++ self.input.cached_token_ref()
++ };
+
+ if let Some(block_type) = BlockType::opening(token) {
+ self.at_start_of = Some(block_type);
Index: www/firefox-esr/Makefile
===================================================================
RCS file: /cvs/ports/www/firefox-esr/Makefile,v
retrieving revision 1.106
diff -u -p -r1.106 Makefile
--- www/firefox-esr/Makefile 22 Sep 2019 17:19:06 -0000 1.106
+++ www/firefox-esr/Makefile 30 Sep 2019 11:58:09 -0000
@@ -66,6 +66,10 @@ CONFIGURE_ARGS += --enable-sandbox --ena
CONFIGURE_ARGS += --with-libclang-path=${LOCALBASE}/lib
CONFIGURE_ARGS += --with-clang-path=${LOCALBASE}/bin/clang
+post-patch:
+ sed -i 's/"files":{[^}]*}/"files":{}/' \
+ ${WRKSRC}/third_party/rust/cssparser/.cargo-checksum.json
+
post-install:
# install prefs
${INSTALL_DATA_DIR} ${PREFIX}/lib/${MOZILLA_PROJECT}-esr/browser/defaults/preferences
Index: www/firefox-esr/patches/patch-old-configure
===================================================================
RCS file: /cvs/ports/www/firefox-esr/patches/patch-old-configure,v
retrieving revision 1.1
diff -u -p -r1.1 patch-old-configure
--- www/firefox-esr/patches/patch-old-configure 6 Sep 2019 17:13:22 -0000 1.1
+++ www/firefox-esr/patches/patch-old-configure 30 Sep 2019 11:58:09 -0000
@@ -5,7 +5,7 @@ https://bugzilla.mozilla.org/show_bug.cg
Index: old-configure
--- old-configure.orig
+++ old-configure
-@@ -10113,7 +10113,7 @@ fi
+@@ -10191,7 +10191,7 @@ fi
case "$OS_TARGET" in
Index: www/firefox-esr/patches/patch-third_party_rust_cssparser_src_parser_rs
===================================================================
RCS file: www/firefox-esr/patches/patch-third_party_rust_cssparser_src_parser_rs
diff -N www/firefox-esr/patches/patch-third_party_rust_cssparser_src_parser_rs
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ www/firefox-esr/patches/patch-third_party_rust_cssparser_src_parser_rs 30 Sep 2019 11:58:09 -0000
@@ -0,0 +1,65 @@
+$OpenBSD$
+backport https://github.com/servo/rust-cssparser/pull/245/commits/3c98d22c5de3b696bf1fde2b6c90069812312aa6
+to avoid hard failure due to rustc 1.38.0
+
+Index: third_party/rust/cssparser/src/parser.rs
+--- third_party/rust/cssparser/src/parser.rs.orig
++++ third_party/rust/cssparser/src/parser.rs
+@@ -567,30 +567,34 @@ impl<'i: 't, 't> Parser<'i, 't> {
+ }
+
+ let token_start_position = self.input.tokenizer.position();
+- let token;
+- match self.input.cached_token {
+- Some(ref cached_token) if cached_token.start_position == token_start_position => {
+- self.input.tokenizer.reset(&cached_token.end_state);
+- match cached_token.token {
+- Token::Function(ref name) => self.input.tokenizer.see_function(name),
+- _ => {}
+- }
+- token = &cached_token.token
++ let using_cached_token = self
++ .input
++ .cached_token
++ .as_ref()
++ .map_or(false, |cached_token| {
++ cached_token.start_position == token_start_position
++ });
++ let token = if using_cached_token {
++ let cached_token = self.input.cached_token.as_ref().unwrap();
++ self.input.tokenizer.reset(&cached_token.end_state);
++ match cached_token.token {
++ Token::Function(ref name) => self.input.tokenizer.see_function(name),
++ _ => {}
+ }
+- _ => {
+- let new_token = self
+- .input
+- .tokenizer
+- .next()
+- .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
+- self.input.cached_token = Some(CachedToken {
+- token: new_token,
+- start_position: token_start_position,
+- end_state: self.input.tokenizer.state(),
+- });
+- token = self.input.cached_token_ref()
+- }
+- }
++ &cached_token.token
++ } else {
++ let new_token = self
++ .input
++ .tokenizer
++ .next()
++ .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
++ self.input.cached_token = Some(CachedToken {
++ token: new_token,
++ start_position: token_start_position,
++ end_state: self.input.tokenizer.state(),
++ });
++ self.input.cached_token_ref()
++ };
+
+ if let Some(block_type) = BlockType::opening(token) {
+ self.at_start_of = Some(block_type);
Index: www/tor-browser/browser/Makefile
===================================================================
RCS file: /cvs/ports/www/tor-browser/browser/Makefile,v
retrieving revision 1.36
diff -u -p -r1.36 Makefile
--- www/tor-browser/browser/Makefile 22 Sep 2019 17:19:06 -0000 1.36
+++ www/tor-browser/browser/Makefile 30 Sep 2019 11:58:09 -0000
@@ -6,6 +6,8 @@
COMMENT = modified version of Firefox ESR for browsing over Tor
ONLY_FOR_ARCHS = amd64 i386
+BROKEN = (unintentionally) broken by lang/rust 1.38.0
+
MOZILLA_VERSION = ${TB_VERSION}
MOZILLA_PROJECT = ${BROWSER_NAME}
MOZILLA_CODENAME = browser
The update of lang/rust unintentionally broke mail/mozilla-thunderbird,
www/firefox-esr and www/tor-browser.
My test script for checking breakable doesn't worked as intented, and I miss the
failures. My bad.
The following patch corrects mail/mozilla-thunderbird and www/firefox-esr, by
backporting cssparser crate diff from upstream.
The change is composed of two parts:
- the patch on third_party/rust/cssparser/src/parser.rs
- a sed trick on post-patch target to "hide" the file change to cargo and let's
it building without complaining
For www/tor-browser, I will just mark it as BROKEN. The esr version used by
tor-browser is just too old for easily backport the patch, and I would be
reluctant to spend time on it as the www/tor-browser version we have in port is
just too outdated. An update of the port would be preferable.
Please note I only quickly test the patch on firefox-esr. I intent to let's
finish a full build of mail/mozilla-thunderbird and www/firefox-esr before
commiting if ok.
Thanks.
--
Sebastien Marie
Index: mail/mozilla-thunderbird/Makefile
===================================================================
RCS file: /cvs/ports/mail/mozilla-thunderbird/Makefile,v
retrieving revision 1.296
diff -u -p -r1.296 Makefile
--- mail/mozilla-thunderbird/Makefile 22 Sep 2019 17:19:07 -0000 1.296
+++ mail/mozilla-thunderbird/Makefile 30 Sep 2019 11:58:09 -0000
@@ -89,6 +89,10 @@ GUIDS = gdata-provider {a62ef8ec-5fdc-40
EXTDIR = ${PREFIX}/lib/${MOZILLA_PROJECT}/distribution/extensions/
+post-patch:
+ sed -i 's/"files":{[^}]*}/"files":{}/' \
+ ${WRKSRC}/third_party/rust/cssparser/.cargo-checksum.json
+
post-install:
.for xpi guid in ${GUIDS}
cp ${WRKBUILD}/dist/xpi-stage/${xpi}*.xpi ${EXTDIR}/${guid}.xpi
Index: mail/mozilla-thunderbird/patches/patch-third_party_rust_cssparser_src_parser_rs
===================================================================
RCS file: mail/mozilla-thunderbird/patches/patch-third_party_rust_cssparser_src_parser_rs
diff -N mail/mozilla-thunderbird/patches/patch-third_party_rust_cssparser_src_parser_rs
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mail/mozilla-thunderbird/patches/patch-third_party_rust_cssparser_src_parser_rs 30 Sep 2019 11:58:09 -0000
@@ -0,0 +1,65 @@
+$OpenBSD$
+backport https://github.com/servo/rust-cssparser/pull/245/commits/3c98d22c5de3b696bf1fde2b6c90069812312aa6
+to avoid hard failure due to rustc 1.38.0
+
+Index: third_party/rust/cssparser/src/parser.rs
+--- third_party/rust/cssparser/src/parser.rs.orig
++++ third_party/rust/cssparser/src/parser.rs
+@@ -567,30 +567,34 @@ impl<'i: 't, 't> Parser<'i, 't> {
+ }
+
+ let token_start_position = self.input.tokenizer.position();
+- let token;
+- match self.input.cached_token {
+- Some(ref cached_token) if cached_token.start_position == token_start_position => {
+- self.input.tokenizer.reset(&cached_token.end_state);
+- match cached_token.token {
+- Token::Function(ref name) => self.input.tokenizer.see_function(name),
+- _ => {}
+- }
+- token = &cached_token.token
++ let using_cached_token = self
++ .input
++ .cached_token
++ .as_ref()
++ .map_or(false, |cached_token| {
++ cached_token.start_position == token_start_position
++ });
++ let token = if using_cached_token {
++ let cached_token = self.input.cached_token.as_ref().unwrap();
++ self.input.tokenizer.reset(&cached_token.end_state);
++ match cached_token.token {
++ Token::Function(ref name) => self.input.tokenizer.see_function(name),
++ _ => {}
+ }
+- _ => {
+- let new_token = self
+- .input
+- .tokenizer
+- .next()
+- .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
+- self.input.cached_token = Some(CachedToken {
+- token: new_token,
+- start_position: token_start_position,
+- end_state: self.input.tokenizer.state(),
+- });
+- token = self.input.cached_token_ref()
+- }
+- }
++ &cached_token.token
++ } else {
++ let new_token = self
++ .input
++ .tokenizer
++ .next()
++ .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
++ self.input.cached_token = Some(CachedToken {
++ token: new_token,
++ start_position: token_start_position,
++ end_state: self.input.tokenizer.state(),
++ });
++ self.input.cached_token_ref()
++ };
+
+ if let Some(block_type) = BlockType::opening(token) {
+ self.at_start_of = Some(block_type);
Index: www/firefox-esr/Makefile
===================================================================
RCS file: /cvs/ports/www/firefox-esr/Makefile,v
retrieving revision 1.106
diff -u -p -r1.106 Makefile
--- www/firefox-esr/Makefile 22 Sep 2019 17:19:06 -0000 1.106
+++ www/firefox-esr/Makefile 30 Sep 2019 11:58:09 -0000
@@ -66,6 +66,10 @@ CONFIGURE_ARGS += --enable-sandbox --ena
CONFIGURE_ARGS += --with-libclang-path=${LOCALBASE}/lib
CONFIGURE_ARGS += --with-clang-path=${LOCALBASE}/bin/clang
+post-patch:
+ sed -i 's/"files":{[^}]*}/"files":{}/' \
+ ${WRKSRC}/third_party/rust/cssparser/.cargo-checksum.json
+
post-install:
# install prefs
${INSTALL_DATA_DIR} ${PREFIX}/lib/${MOZILLA_PROJECT}-esr/browser/defaults/preferences
Index: www/firefox-esr/patches/patch-old-configure
===================================================================
RCS file: /cvs/ports/www/firefox-esr/patches/patch-old-configure,v
retrieving revision 1.1
diff -u -p -r1.1 patch-old-configure
--- www/firefox-esr/patches/patch-old-configure 6 Sep 2019 17:13:22 -0000 1.1
+++ www/firefox-esr/patches/patch-old-configure 30 Sep 2019 11:58:09 -0000
@@ -5,7 +5,7 @@ https://bugzilla.mozilla.org/show_bug.cg
Index: old-configure
--- old-configure.orig
+++ old-configure
-@@ -10113,7 +10113,7 @@ fi
+@@ -10191,7 +10191,7 @@ fi
case "$OS_TARGET" in
Index: www/firefox-esr/patches/patch-third_party_rust_cssparser_src_parser_rs
===================================================================
RCS file: www/firefox-esr/patches/patch-third_party_rust_cssparser_src_parser_rs
diff -N www/firefox-esr/patches/patch-third_party_rust_cssparser_src_parser_rs
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ www/firefox-esr/patches/patch-third_party_rust_cssparser_src_parser_rs 30 Sep 2019 11:58:09 -0000
@@ -0,0 +1,65 @@
+$OpenBSD$
+backport https://github.com/servo/rust-cssparser/pull/245/commits/3c98d22c5de3b696bf1fde2b6c90069812312aa6
+to avoid hard failure due to rustc 1.38.0
+
+Index: third_party/rust/cssparser/src/parser.rs
+--- third_party/rust/cssparser/src/parser.rs.orig
++++ third_party/rust/cssparser/src/parser.rs
+@@ -567,30 +567,34 @@ impl<'i: 't, 't> Parser<'i, 't> {
+ }
+
+ let token_start_position = self.input.tokenizer.position();
+- let token;
+- match self.input.cached_token {
+- Some(ref cached_token) if cached_token.start_position == token_start_position => {
+- self.input.tokenizer.reset(&cached_token.end_state);
+- match cached_token.token {
+- Token::Function(ref name) => self.input.tokenizer.see_function(name),
+- _ => {}
+- }
+- token = &cached_token.token
++ let using_cached_token = self
++ .input
++ .cached_token
++ .as_ref()
++ .map_or(false, |cached_token| {
++ cached_token.start_position == token_start_position
++ });
++ let token = if using_cached_token {
++ let cached_token = self.input.cached_token.as_ref().unwrap();
++ self.input.tokenizer.reset(&cached_token.end_state);
++ match cached_token.token {
++ Token::Function(ref name) => self.input.tokenizer.see_function(name),
++ _ => {}
+ }
+- _ => {
+- let new_token = self
+- .input
+- .tokenizer
+- .next()
+- .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
+- self.input.cached_token = Some(CachedToken {
+- token: new_token,
+- start_position: token_start_position,
+- end_state: self.input.tokenizer.state(),
+- });
+- token = self.input.cached_token_ref()
+- }
+- }
++ &cached_token.token
++ } else {
++ let new_token = self
++ .input
++ .tokenizer
++ .next()
++ .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
++ self.input.cached_token = Some(CachedToken {
++ token: new_token,
++ start_position: token_start_position,
++ end_state: self.input.tokenizer.state(),
++ });
++ self.input.cached_token_ref()
++ };
+
+ if let Some(block_type) = BlockType::opening(token) {
+ self.at_start_of = Some(block_type);
Index: www/tor-browser/browser/Makefile
===================================================================
RCS file: /cvs/ports/www/tor-browser/browser/Makefile,v
retrieving revision 1.36
diff -u -p -r1.36 Makefile
--- www/tor-browser/browser/Makefile 22 Sep 2019 17:19:06 -0000 1.36
+++ www/tor-browser/browser/Makefile 30 Sep 2019 11:58:09 -0000
@@ -6,6 +6,8 @@
COMMENT = modified version of Firefox ESR for browsing over Tor
ONLY_FOR_ARCHS = amd64 i386
+BROKEN = (unintentionally) broken by lang/rust 1.38.0
+
MOZILLA_VERSION = ${TB_VERSION}
MOZILLA_PROJECT = ${BROWSER_NAME}
MOZILLA_CODENAME = browser
Subscribe to:
Posts (Atom)